If you have never heard any audio ever on your machine then you must first work out if you have the appropriate hardware. If you do, you also need the appropriate software to drive it. Festival can directly interface with a number of audio systems or use external methods for playing audio.
The currently supported audio methods are
AUDIOSERVERenvironment variable is set (or your
DISPLAYvariable if your audio output device is the same as your X Windows display). You may set NAS as your audio output method by the command
(Parameter.set 'Audio_Method 'netaudio)
(Parameter.set 'Audio_Method 'sunaudio)
*modules*) you can select 16 bit audio output on Suns by the command
(Parameter.set 'Audio_Method 'sun16audio)Note this will send it to the local machine where the festival binary is running, this might not be the one you are sitting next to--that's why we recommend netaudio. A hacky solution to playing audio on a local machine from a remote machine without using netaudio is described in section 6 Installation
*modules*to see which audio devices are directly supported. On FreeBSD, if supported, you may select local 16 bit linear audio by the command
(Parameter.set 'Audio_Method 'freebsd16audio)While under Linux, if supported, you may use the command
(Parameter.set 'Audio_Method 'linux16audio)Some earlier (and smaller machines) only have 8bit audio even though they include a `/dev/dsp' (Soundblaster PRO for example). This was not dealt with properly in earlier versions of the system but now the support automatically checks to see the sample width supported and uses it accordingly. 8 bit at higher frequencies that 8K sounds better than straight 8k ulaw so this feature is useful.
Audio_Commandyou can select this on Windows machine with the following command
(Parameter.set 'Audio_Method 'mplayeraudio)Alternatively built-in audio output is available with
(Parameter.set 'Audio_Method 'win32audio)
(Parameter.set 'Audio_Method 'irixaudio)
SRis set to the sample rate (in Hz) and
FILEwhich, by default, is the name of an unheadered raw, 16bit file containing the synthesized waveform in the byte order of the machine Festival is running on. You can specify your audio play command and that you wish Festival to execute that command through the following command
(Parameter.set 'Audio_Command "sun16play -f $SR $FILE") (Parameter.set 'Audio_Method 'Audio_Command)On SGI machines under IRIX the equivalent would be
(Parameter.set 'Audio_Command "sfplay -i integer 16 2scomp rate $SR end $FILE") (Parameter.set 'Audio_Method 'Audio_Command)
Audio_Command method of playing waveforms Festival supports
two additional audio parameters.
Audio_Required_Rate allows you
to use Festival's internal sample rate conversion function to any desired
rate. Note this may not be as good as playing the waveform at the
sample rate it is originally created in, but as some hardware devices
are restrictive in what sample rates they support, or have naive
resample functions this could be optimal. The second additional
audio parameter is
Audio_Required_Format which can be
used to specify the desired output forms of the file. The default
is unheadered raw, but this may be any of the values supported by
the speech tools (including nist, esps, snd, riff, aiff, audlab, raw
and, if you really want it, ascii). For example suppose you
have a program that only plays sun headered files at 16000 KHz you can
set up audio output as
(Parameter.set 'Audio_Method 'Audio_Command) (Parameter.set 'Audio_Required_Rate 16000) (Parameter.set 'Audio_Required_Format 'snd) (Parameter.set 'Audio_Command "sunplay $FILE")
If Netaudio is not available and you need to play audio on a machine different from teh one Festival is running on we have had reports that `snack' (http://www.speech.kth.se/snack/) is a possible solution. It allows remote play but importnatly also supports Windows 95/NT based clients.
Because you do not want to wait for a whole file to be synthesized before you can play it, Festival also offers an audio spooler that allows the playing of audio files while continuing to synthesize the following utterances. On reasonable workstations this allows the breaks between utterances to be as short as your hardware allows them to be.
The audio spooler may be started by selecting asynchronous mode
This is switched on by default be the function
You may put Festival back into synchronous mode (i.e. the
command will wait until the audio has finished playing before returning).
by the command
Additional related commands are