Instalación de Festival - sintetizador de voz

De Manuais Informática - IES San Clemente.
Ir a la navegación Ir a la búsqueda

Para instalar o sintetizador de voz para poder usalo no Asterisk faremos dende CentOS:

yum install festival

Para arrancar o sintetizador en modo debug:

festival --server

Cando nos aseguremos de que Festival acepta as solicitudes sen problemas poderemos arrancalo con:

festival_server 2>&1 >/dev/null &

Chamando a Festival dende o dialplan

Agora que xa temos configurado Festival e o servidor está funcionando, llamaremos directamente a Festival dende o dialplan:

exten => 123,1,Answer()
exten => 123,2,Festival(Asterisk e Festival estan traballando xuntos)

Sempre temos que chamar a aplicación Answer() antes de chamar a Festival(), para asegurarnos de que o canal está establecido.

Cando Asterisk conecta a Festival, deberíamos ver unha saída como a seguinte:

festival --server
server Sun May 1 18:38:51 2005 : Festival server started on port 1314
client(1) Sun May 1 18:39:20 2005 : accepted from voip.local
client(1) Sun May 1 18:39:21 2005 : disconnected

Si vemos unha saída como a seguinte, isto quere dicir que temos que engadir ó arquivo festival.scm o noso host:

festival --server
server Sun May 1 18:30:52 2005 : Festival server started on port 1314
client(1) Sun May 1 18:32:32 2005 : rejected from voip.local not in access list

Outro xeito de empregar Festival con Asterisk

Algunha xente da comunidade Asterisk reportou casos de éxito enviando texto á utilidade text2wave de Festival. Por exemplo:

exten => 124,1,Answer()
exten => 124,2,System(echo "This is a test of Festival" | /usr/bin/text2wave
-scale 1.5 -F 8000 -o /tmp/festival.wav)
exten => 124,3,Playback(/tmp/festival)
exten => 124,4,System(rm /tmp/festival.wav)
exten => 124,5,Hangup()

Este método tamén permite chamar a outro tipo de sintetizadores como por exemplo o popular Cepstral http://www.cepstral.com, que é un derivado comercial non demasiado caro con voces de boa calidade. Para o seguinte exemplo asumimos que cepstral está instalado en /usr/local/cepstral/:

exten => 125,1,Answer()
exten => 125,2,System(/usr/local/cepstral/bin/swift -o /tmp/swift.wav
"This is a test of Cepstral")
exten => 125,3,Playback(/tmp/swift)
exten => 125,4,System(rm /tmp/swift.wav)
exten => 125,5,Hangup()