个人工具

UbuntuHelp:TextToSpeech

来自Ubuntu中文

Oneleaf讨论 | 贡献2007年11月21日 (三) 17:54的版本

跳转至: 导航, 搜索
  1. title Festival - Text-to-Speech


You can take advantage of Text-To-Speech in Ubuntu by using a program called Festival. Festival doesn't work with ESD (the default sound mixer) or ALSA out of the box, so some changes are required to get it up and running.

This guide provides instructions on how to get Festival working on Ubuntu with ESD or ALSA.

If you don't use Festival with ESD, you will have to disable ESD in the Sounds preferences dialog. In that case, other multimedia applications won't be able to play audio at the same time.

Installation

Install Festival by typing the following command in a Terminal: sudo apt-get install festival

Note: Additional voices are available in the Ubuntu respositories. Type "festival" in Synaptic Package Manager for a list of packages.

Configuration for ESD

Install esdplay, which is part of the esound-clients package: sudo apt-get install esound-clients

You need to configure festival so that it sends its output through ESD. Otherwise, you will get a can't open /dev/dsp error when you try to run Festival.

  • Open the file /etc/festival.scm by typing gksudo gedit /etc/festival.scm in a Terminal.
  • Add the following lines at the end of the file:
(Parameter.set 'Audio_Command "esdplay $FILE")
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Required_Format 'snd)
    1. 3 Save the file.

Configuration for ALSA

(Note it is hard to use ALSA and ESD on the same system, if it is possible at all. Here it is assumed that you are using ALSA instead of ESD.)

Insert of the end of the file /etc/festival.scm the lines

(Parameter.set 'Audio_Command "aplay -D plug:dmix -q -c 1 -t raw -f s16 -r $SR $FILE")
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Required_Format 'snd)

Some sources leave off the -D plug:dmix ; maybe that works for older systems, but it didn't work in my Feisty.

Testing

Test your setup by typing in a Terminal festival

You will be presented with a > prompt. Type (SayText "Hello") The computer should say "hello".

To listen to a text file named FILENAME, type (tts "FILENAME" nil) Note FILENAME must be in quote marks.