Para que Festival se integre en asterisk, antes de compilar la centralita tenemos que instalar dos paquetes:
sudo apt-get install festival festival-dev
#instalamos los parlantes en español e ingles
sudo apt-get install festvox-ellpc11k festvox-kallpc16k festvox-kallpc8k festvox-kdlpc8k
para averiguar que el modulo de festival esté correctamente cargado en asterisk, desde la consola de la centralita:
asterisk -rvvvvvvvvvvvvvvv
CLI> module unload app_festival
== Unregistered application 'Festival'
CLI> module load app_festival
== Parsing '/etc/asterisk/festival.conf': == Found
== Registered application 'Festival'
Loaded app_festival => (Simple Festival Interface)
Si aparece algún tipo de error significa que el modulo no ha sido compilado y tenemos que volver a la compilación de Asterisk.
Festival viene con predefinido el idioma ingles. Para agregarle el idioma español hay que seguir estos pasos:
cd /usr/share/festival/voices
wget http://www.voztovoice.org/tmp/festival-spanish.zip
unzip festival-spanish.zip
Ahora modificamos el archivo de configuración de festival
vim /usr/share/festival/festival.scm
añadimos estas líneas
;(language__spanish)
(set! voice_default 'voice_el_diphone)
(define (tts_textasterisk string mode)
"(tts_textasterisk STRING MODE)
Apply tts to STRING. This function is specifically designed for
use in server mode so a single function call may synthesize the string.
This function name may be added to the server safe functions."
(let ((wholeutt (utt.synth (eval (list 'Utterance 'Text string)))))
(utt.wave.resample wholeutt 8000)
(utt.wave.rescale wholeutt 5)
(utt.send.wave.client wholeutt)))
Guardamos el archivo y modificamos el archivo de configuración de festival en asterisk:
vim /etc/asterisk/festival.conf
Estas son la líneas que hay que modificar/activar
[general]
host=localhost
port=1314
festivalcommand=(tts_textasterisk "%s" 'file)(quit)\n
Guardamos el archivo
Reiniciamos asterisk
/etc/init.d/asterisk reload
Para arrancar el servidor de Festival en automático ponemos esta línea en el archivo rc.local
vim /etc/rc.local
/usr/bin/festival --server
Ahora reiniciamos el servidor linux
reboot
Controlamos que el servidor festival esté corriendo:
Ahora vamos a añadir unas cuantas líneas en extensions.conf
vim /etc/asterisk/extensions.conf
exten => 650,1,Answer()
exten => 650,n,Festival(Asterisk y Festival trabajan junto. Chevere!!!)
exten => 650,n,Hangup()
Actualizamos el dialplan desde la consola
asterisk -rvvvvvvvvvvvvvvvvv
CLI> dialplan reload
Para que Festival se integre en asterisk, antes de compilar la centralita tenemos que instalar dos paquetes:
sudo apt-get install festival festival-dev#instalamos los parlantes en español e inglessudo apt-get install festvox-ellpc11k festvox-kallpc16k festvox-kallpc8k festvox-kdlpc8k
para averiguar que el modulo de festival esté correctamente cargado en asterisk, desde la consola de la centralita:
asterisk -rvvvvvvvvvvvvvvv
CLI> module unload app_festival == Unregistered application 'Festival'
CLI> module load app_festival == Parsing '/etc/asterisk/festival.conf': == Found == Registered application 'Festival' Loaded app_festival => (Simple Festival Interface)
Si aparece algún tipo de error significa que el modulo no ha sido compilado y tenemos que volver a la compilación de Asterisk.
Festival viene con predefinido el idioma ingles. Para agregarle el idioma español hay que seguir estos pasos:cd /usr/share/festival/voices
wget http://www.voztovoice.org/tmp/festival-spanish.zipunzip festival-spanish.zipAhora modificamos el archivo de configuración de festivalvim /usr/share/festival/festival.scm
añadimos estas líneas
;(language__spanish) (set! voice_default 'voice_el_diphone)
(define (tts_textasterisk string mode) "(tts_textasterisk STRING MODE) Apply tts to STRING. This function is specifically designed for use in server mode so a single function call may synthesize the string. This function name may be added to the server safe functions." (let ((wholeutt (utt.synth (eval (list 'Utterance 'Text string))))) (utt.wave.resample wholeutt 8000) (utt.wave.rescale wholeutt 5) (utt.send.wave.client wholeutt)))
Guardamos el archivo y modificamos el archivo de configuración de festival en asterisk:
vim /etc/asterisk/festival.conf
Estas son la líneas que hay que modificar/activar
[general] host=localhost port=1314 festivalcommand=(tts_textasterisk "%s" 'file)(quit)\n
Guardamos el archivo
Reiniciamos asterisk
/etc/init.d/asterisk reload
Para arrancar el servidor de Festival en automático ponemos esta línea en el archivo rc.local
vim /etc/rc.local
/usr/bin/festival --server
Ahora reiniciamos el servidor linux
reboot
Controlamos que el servidor festival esté corriendo:
Ahora vamos a añadir unas cuantas líneas en extensions.conf
vim /etc/asterisk/extensions.conf
exten => 650,1,Answer() exten => 650,n,Festival(Asterisk y Festival trabajan junto. Chevere!!!) exten => 650,n,Hangup()
Actualizamos el dialplan desde la consola
asterisk -rvvvvvvvvvvvvvvvvv
CLI> dialplan reload
Hola, que tal???...
ResponderBorrarTengo un par de duda y ojalá me puedan ayudar...
De donde puedo descargar el software del Festival???, y, puedo usarlo con cualquier versión del Asterisk???...
Saludos.
Hola gracias por tu comentario, vieras que en debian ya vienen los paquetes lo podes instalar con el aptitude y configurarlos desde el el festival.conf. Saludos
ResponderBorrar