### 10.5 Using Sable ¶

Support in Festival for Sable is as a text mode. In the command mode use the following to process an Sable file

    (tts "file.sable" 'sable)

Also the automatic selection of mode based on file type has been set up such that files ending `.sable` will be automatically synthesized in this mode. Thus

    festival --tts fred.sable

Will render `fred.sable` as speech in Sable mode.

Another way of using Sable is through the Emacs interface. The say-buffer command will send the Emacs buffer mode to Festival as its tts-mode. If the Emacs mode is stml or sgml the file is treated as an sable file. See Emacs interface.

Many people experimenting with Sable (and TTS in general) often want all the waveform output to be saved to be played at a later date. The simplest way to do this is using the `text2wave` script, It respects the audo mode selection so

    text2wave fred.sable -o fred.wav

Note this renders the file a single waveform (done by concatenating the waveforms for each utterance in the Sable file).

If you wish the waveform for each utterance in a file saved you can cause the tts process to save the waveforms during synthesis. A call to

    festival> (save_waves_during_tts)

Any future call to `tts` will cause the waveforms to be saved in a file `tts_file_xxx.wav` where `xxx` is a number. A call to `(save_waves_during_tts_STOP)` will stop saving the waves. A message is printed when the waveform is saved otherwise people forget about this and wonder why their disk has filled up.

This is done by inserting a function in `tts_hooks` which saves the wave. To do other things to each utterances during TTS (such as saving the utterance structure), try redefining the function `save_tts_output` (see `festival/lib/tts.scm`).