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:
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.
yo aun no lo tengo completamente integrado con Asterisk. La idea si que es integrarlo... cuando tenga completa la integración lo postearé
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!
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
¿no les da problemas el uso de acentos?
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
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
"| 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
hacer un comentario en esta entrada