festival en fedora

6 de junio de 2008

Como comenté en otro post, Festival es un sintetizador de voz open source para Linux. En este post explicaré como instalar Festival con las voces en castellano (el objetivo es integrarlo con Asterisk). Previamente hay que instalar las voces en castellano tal como indico en un post anterior a este.

Para instalarlo crearemos la carpeta /festival-1.96 y copiaremos los siguientes archivos: festival-1.96-beta.tar.gz, festvox-2.1-release.tar.gz, speech_tools-1.2.96-beta.tar.gz, multisyn_build-1.10.tgz, festvox_ellpc11k.tar.gz.

Realizamos la instalación en este orden:

+ Instalaremos speech-tools que son unas herramientas extras para Festival.

#festival-1.96/speech_tools> ./configure
#festival-1.96/speech_tools> make

+ Instalamos el Festvox.

#festival-1.96/festvox> ./configure
#festival-1.96/festvox> make 

+ Instalamos el Festival.

#festival-1.96/festival> ./configure
#festival-1.96/festival> make

Los ejecutables más importantes que utilizaremos son /festival-1.96/festival/bin/festival y festival-1.96/festival/bin/text2wave.

+ Finalmente instalamos las voces en castellano que hay por defecto, pero como he dicho no utilizaremos estas. Simplemente descomprimimos festvox_ellpc11k.tar.gz desde la carpeta /festivales-1.96. Al finalizar tenemos que tener las voces en castellano en /festival-1.96/festival/lib/voices/spanish/el_diphone.

+ Ahora tenemos que enlazar las voces en castellano que instalamos en el anterior post con Festival. Las voces en castellano se se instalaron en /usr/share/festival/voices/spanish/JuntaDeAndalucia_es_pa_diphone. Por tanto solo tenemos que crear un link desde la carpeta de voces de Festival:

# ln -s /usr/share/festival/voices/spanish/JuntaDeAndalucia_es_pa_diphone
/festival-1.96/festival/lib/voices/spanish/JuntaDeAndalucia_es_pa_diphone

En la carpeta voces tenemos tener las carpetas: el_diphone y JuntaDeAndalucia_es_pa_diphone.

+ Probamos ahora si nos funcionan las voces. Para ello cargamos Festival y le decimos que utilice las voces en castellano nuevas.

#festival-1.96/festival/bin> ./festival
festival$ (voice_JuntaDeAndalucia_es_pa_diphone)
festival$ (SayText "hola, esto es una prueba de festival")

Naturalmente tenemos que tener los altavoces de nuestro Linux conectados.

Ahora queremos utilizar la aplicación text2wave para pasarle un archivo de texto y convertirlo en voz. Editamos el archivo text2wave y colocamos en la linea 46 la siguiente cadena "(voice_JuntaDeAndalucia_es_pa_diphone)". Con esto conseguimos que cargue las voces en castellano, de lo contrario leería el texto en ingles.

#festival-1.96/festival/bin>./text2wave -F 5000 eltexto.txt -o eltexto.wav

Dentro de eltexto.txt pondremos el parrafo que queramos reproducir. Es muy importante poner sus acentos, sus comas, sus puntos, etc. Las fechas tendran el formatico dd/mm/aaaa y las horas en formato hh:mm:ss. El comando text2wave no es más que un script que llama al comando festival.

Os dejo un par de ejemplos de archivos Wav para veáis como suena (ejemplo 1 y ejemplo 2). Como podéis ver es capaz de reconocer las fechas,las horas, las direcciones URL o las direcciones de correo electrónico.

8 comentarios:

HV Ing Juan Carlos Monroy dijo...

Lo primero es agradecer por este articulo, lo segui al pie de la linea y la prueba de festival me funciona, sin embargo no logro integrarlo con asterisk.

Al agregar a mi archivo extensions_custom.conf estas lineas
exten => 111,1,Answer
exten => 111,2,Festival('esto es una prueba de festival')
exten => 111,3,Hangup

simplemente no me responde la llamada.

Agradezco si me informan que error puedo estar cometiendo.

amperis dijo...

yo aun no lo tengo completamente integrado con Asterisk. La idea si que es integrarlo... cuando tenga completa la integración lo postearé

Anónimo dijo...

Muchas gracias por la información sobre la instalación de las voces.
He estado toda la mañana de un web a otro, haciendo pruebas como loco en Asterisk hasta que finalmente con tu web he podido dar el puntito final al tema de voz y ya puedo decir que mi Asterisk habla y en español.
Ha costado!

Raul Ramirez dijo...

hola, podrias ser mas fijo al momento de decir que en la linea 46 poner JuntaDeAndalucia_es_sf_diphone
no podrias decir antes de que o despues de que, para hacerlo mas facil, muchas gracias, al momento de cambiar las voces del festival al espanol, de todas maneras gracias

Anónimo dijo...

¿no les da problemas el uso de acentos?

Anónimo dijo...

Saludos disculpen como pudieron integrar el festival con el asterisk, porque utilizando SayText si funciona, pero desde las extensiones no, necesito su ayuda de urgencia

Anónimo dijo...

que tal yo ya lo tengo al 100 con asterisk me costo bastante pero quedo de lujo, tu problema se debe principalmente a la compilacion e instalacion de festival fijate bien site falta un addon de festival, en cuanto verifique eso entra a la consola de asteris y teclea show applications, te saldra una lista con las apps que reconoce asterisk lo mismo con mysql un saludo

Anónimo dijo...

"| iconv -f utf-8 -t iso-8859-1" esto sirve para que festival no se lié con los acentos. ejemplo

echo "El miércoles es el cuarto día de la semana." | iconv -f utf-8 -t iso-8859-1 | festival --tts