From ArchWiki
Revision as of 14:11, 30 July 2009 by Whoops (talk | contribs) (Interactive Mode)
Jump to: navigation, search


Festival is a general multi-lingual speech synthesis system developed at CSTR (Centre for Speech Technology Research).

Step 1: Installation

Festival is in the extra repository so:

# pacman -S festival

You will also need to install one or more voices because by default there is no voice to speak with.

Step 2: Add voices

American English

American English male voice `kal' 16kHz version:

# pacman -S festival-kallpc16k

British English

British English male voice `rab' 16kHz version:

# pacman -S festival-rablpc16k

Other voices

Other voices are available for Festival, some of them can be found in AUR.

Step 3: Testing and debugging

To test festival lets make it speak an example text:

$ echo "This is an example. Seems like I'm working fine."|festival --tts

If your hear all the example text below: congratulations, you just installed a TTS system.

If you don't hear anything, something strange or just the beginning of the example sentence continue below.

can't open /dev/dsp

If festival returns the following error message:

Linux: can't open /dev/dsp

Switch to ALSA output by adding these lines to the end of your .festivalrc file, or to /usr/share/festival/festival.scm (source):

(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")

Alsa playing @ wrong speed

If the solution above gives you Mr. Squeaky Voice, you might want to try:

(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -Dplug:default -f S16_LE -r $SR $FILE")

... instead.

Configuration & Usage

Interactive Mode (testing voices etc.)

festival has an interactive prompt you can use for testing. Some examples (with sample output)

$ festival 

List available voices:

festival> (voice.list)
(cstr_us_awb_arctic_multisyn kal_diphone don_diphone)

Set voice:

festival> (voice_cstr_us_awb_arctic_multisyn)
#<voice 0x1545b90>


festival> (SayText '"test this is a test oh no a test bla test")
inserting pause after: t.
Inserting pause
id _63 ; name t ; 
id _65 ; name # ; 
#<Utterance 0x7f7c0c144810>


festival> help 
"The Festival Speech Synthesizer System: Help

Quit: ctrl+d or

festival> (quit)

Setting default voice

You can set a default voice by adding these lines to the end of your .festivalrc file, or to /usr/share/festival/festival.scm:

(set! default_voice 'voice_us1_mbrola)

Something about apps you can make use it perhaps

No idea yet