festtcl -
Festival Text-to-Speech Interface
package require Tcl
package require festtcl ? 1.0 ?
::festtcl::saytext text
::festtcl::text2wave text ? samplerate ?
::festtcl::text2file text filename ? samplerate ?
::festtcl::setserver host ? port ?
::festtcl::voices
::festtcl::defaultvoices
::festtcl::setvoice voicename
::festtcl::setduration duration-spec
::festtcl::setvolume volume-spec
This package provides an interface to the Festival Text-to-Speech
server.
-
::festtcl::saytext text
-
Synthesizes the text and outputs the sound via the Festival server. The
Festival server must be configured to output the sound on the desired
audio device.
-
::festtcl::text2wave text ? samplerate ?
-
Synthesizes the text and return the waveform as a binary string in WAV format.
The default sample rate is 8000 Hz.
-
::festtcl::text2file text filename ? samplerate ?
-
Synthesizes the text and write the waveform to a file. The file format
is of type WAV. The default sample rate is 8000 Hz.
-
::festtcl::setserver host ? port ?
-
Sets the server and port of the festival server to use. By default, the
server is assumed to be running on the localhost, at port 1314. Server
connections are established and released during festtcl commands.
-
::festtcl::voices
-
Return a list of known voices supported by the Festival server as a
list of lang voicename sublist pairs. Not all voices
returned may be able to synthesize text.
-
::festtcl::defaultvoices
-
Return a list of default voices by priority. The first voice that actually
works is used as the default voice by the Festival server. Unlike
::festtcl::voices, the language specification is not returned.
-
::festtcl::setvoice voicename
-
Sets the voice to use for the generated speech. If the voice is not
available, an error is raised. The voicename may either be a
simple voice name, or a two element list of language voicename
(as returned from the ::festtcl::voices command.)
-
::festtcl::setduration duration-spec
-
Sets the duration of speech, either a keyword from the list below, or
a floating point number.
duration-spec:
- fastest
-
- faster
-
- fast
-
- normal
-
- slow
-
- slower
-
- slowest
-
If the duration-spec is a floating point number, the normal duration (the
default) is 1.0, slower rate speech is less than 1.0, faster rates are
greater than 1.0. Any other duration-spec that is not a floating
point number or from the list above sets the volume as normal.
Not all festival voices may respond to the duration setting.
-
::festtcl::setvolume volume-spec
-
Sets the volume of speech, either a keyword from the list below, or
a floating point number.
volume-spec:
- loudest
-
- louder
-
- loud
-
- normal
-
- quiet
-
- quieter
-
- quietest
-
If the volume-spec is a floating point number, the normal volume (the
default) is 1.0, quieter volume speech is less than 1.0, louder volume is
greater than 1.0. Any other volume-spec that is not a floating
point number or from the list above sets the volume as normal.
Not all festival voices may respond to the volume setting.
The Festival server must have been previously started before using festtcl
(command "festival_server").
Festival employs an access control list of machines that are able to
connect to it. When running a Festival server on a remote machine, be sure
to allow access from your local machine.
Festival
Festival is available at http://www.cstr.ed.ac.uk/projects/festival/
and http://www.speech.cs.cmu.edu/festival/.
Additional Festival voices can be found at:
- http://www.cslu.ogi.edu/tts/download/index.html
- http://hts.ics.nitech.ac.jp/
- http://www.festvox.org/cmu_arctic/index.html
- http://tcts.fpms.ac.be/synthesis/mbrola.html
Snack
The Tcl Snack extension http://www.speech.kth.se/snack/ is useful
for manipulating WAV sound data, and
outputing the sound on the local machine, when the Festival server is
running on a non-local machine.
Sox
Sox ("Sound eXchange") http://sox.sourceforge.net
command suite are command-line tools
for audio format manipulation,
and includes a simple sound player ("play").
Tom Poindexter <tpoindex@nyx.net>, Denver, Colorado. Released under BSD style
license, see the file LICENSE.TXT.