Integracion de un sistema de TTS (Text to Speech) en Asterisk - Cepstral

user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN node_access na ON na.nid = node.nid WHERE (na.grant_view >= 1 AND ((n' at line 8 query: SELECT DISTINCT (((1 * (MATCH(node_revisions.title) AGAINST('Integracion de un sistema de TTS Text to Speech en Asterisk - Cepstral Actualizado 11 Septiembre 2009 Un programa TTS (Text to Speech), entre otras cosas, transforma un texto en voz. En el caso de Asterisk esto es posible usando Festival.&nbsp; Para que el modulo venga correctamente instalado, antes de compilar asterisk tenemos que instalar el programa y sus fuentes. yum install festival festival-devel Compilamos y ya. No se si alguien logr&oacute; alcanzar un nivel de s&iacute;ntesis vocal bueno. Yo la verdad no. Es por eso que prefer&iacute; probar Cepstral, otro sistema de TTS que se puede integrar en asterisk (versi&oacute;n 1.4 y 1.6) gracias a un modulo dedicado. Antes que nada hay que decir que Cepstral no es un programa gratuito y que cada voz cuesta 29,99 d&oacute;lares. El modulo para la integraci&oacute;n de Cepstral en Asterisk lo escribi&oacute; y lo actualiza Darren Sessions. Primero descargamos una voz de prueba en el sitio de Cepstral (en mi caso para Linux 64bit) cd /opt wget http://downloads.cepstral.com/cepstral/x86-64-linux/Cepstral_Marta-8kHz_x86-64-linux_5.1.0.tar.gz La descomprimimos tar -xf Cepstral_Marta-8kHz_x86-64-linux_5.1.0.tar.gz y la instalamos cd Cepstral_Marta-8kHz_x86-64-linux_5.1.0 ./install.sh Aceptamos la licencia, escogemos la carpeta /opt/swift para la instalaci&oacute;n y confirmamos los datos. Ahora tenemos que decirle a Linux donde buscar las librer&iacute;as del programa. abrimos el archivo ld.so.conf nano /etc/ld.so.conf a&ntilde;adimos una l&iacute;nea /opt/swift/lib Guardamos y actualizamos ldconfig -v Listo. Ahora tenemos que instalar el modulo para asterisk cd /usr/src Para asterisk 1.4.X wget http://www.voztovoice.org/tmp/app_swift-1.4.2.tar.gz Para Asterisk 1.6.X wget http://www.voztovoice.org/tmp/app_swift-1.6.2.tar.gz lo descomprimimos tar -xf app_swift-1.6.2.tar.gz Entramos en la carpeta: cd app_swift-1.6.2 compilamos y instalamos make make install Paramos y volvemos a arrancar asterisk /etc/init.d/asterisk stop /etc/init.d/asterisk start y averiguamos que el modulo est&eacute; cargado asterisk -rvvvvvvvvvvv CLI> module show like app_s Module&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Use Count app_sayunixtime.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Say time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_sendtext.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Send Text Applications&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_senddtmf.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Send DTMF digits Application&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_swift.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cepstral Swift TTS Application&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_setcallerid.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set CallerID Presentation Application&nbsp;&nbsp;&nbsp; 0 app_system.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Generic System() application&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_softhangup.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hangs up the requested channel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_saycountpl.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Say polish counting words&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_sms.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SMS/PSTN handler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_speech_utils.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dialplan Speech Applications&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_stack.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dialplan subroutines (Gosub, Return, etc 0 11 modules loaded La sinopsis del comando CLI> core show application swift &nbsp; -= Info about application \'Swift\' =- [Synopsis] Speak text through Swift text-to-speech engine. [Description] Syntax: Swift(text[|timeout in ms|maximum digits]) Example: Swift(Hello World|5000|5) = 5 second delay between 5 digits This application operates in two modes. One is processing text-to-speech while listening for DTMF and the other just processes the text-to-speech while ignoring DTMF entirely. Unless the timeout and maximum digits options are BOTH specified, the application will automatically ignore DTMF. Returns -1 on hangup or 0 otherwise. salimos de la consola: CLI> quit En la carpeta donde est&aacute;n los archivos de configuraci&oacute;n de asterisk encontraremos un nuevo archivo: swift.conf. Tenemos que modificarlo para terminar la integraci&oacute;n de Cepstral en Asterisk nano /etc/asterisk/swift.conf [general] buffer_size=65535 goto_exten=yes voice=Marta-8kHz Guardamos los cambios y actualizamos asterisk /etc/init.d/asterisk reload Quitamos y volvemos a cargar el modulo (por las moscas) asterisk -rvvvvvvvvvvvvvvvvvvvvvv *CLI> module unload app_swift &nbsp; == Unregistered application \'Swift\' CLI> module load app_swift &nbsp; == Registered application \'Swift\' &nbsp; == Parsing \'/etc/asterisk/swift.conf\':&nbsp;&nbsp; == Found [Oct 25 17:05:15] DEBUG[11038]: app_swift.c:545 load_module: Config buffer_size is 65535 [Oct 25 17:05:15] DEBUG[11038]: app_swift.c:552 load_module: Config goto_exten is 1 [Oct 25 17:05:15] DEBUG[11038]: app_swift.c:557 load_module: Config voice is Miguel-8kHz Loaded app_swift => (Cepstral Swift TTS Application) Salimos de la consola: CLI>&nbsp;quit Ahora probamos la instalaci&oacute;n en nuestra centralita. Creamos estas l&iacute;neas en extension.conf (en el contexto donde llegan todas las llamadas externas) nano /etc/asterisk/extensions.conf exten => s,1,Answer() exten => s,n,Playback(welcome) exten => s,n,Swift(En el centro de comunicaciones de VoztoVoice. Espere mientras lo conectamos con una operadora) exten => s,n,Wait(2) exten => s,n,Hangup Guardamos y actualizamos el dialplan asterisk -rvvvvvvvv CLI> dialplan reload Ahora desde su softphone hagan sus pruebas y me comentan.'))) + (1 * (MATCH(node_revisions.body) AGAINST('Integracion de un sistema de TTS Text to Speech en Asterisk - Cepstral Actualizado 11 Septiembre 2009 Un programa TTS (Text to Speech), entre otras cosas, transforma un texto en voz. En el caso de Asterisk esto es posible usando Festival.&nbsp; Para que el modulo venga correctamente instalado, antes de compilar asterisk tenemos que instalar el programa y sus fuentes. yum install festival festival-devel Compilamos y ya. No se si alguien logr&oacute; alcanzar un nivel de s&iacute;ntesis vocal bueno. Yo la verdad no. Es por eso que prefer&iacute; probar Cepstral, otro sistema de TTS que se puede integrar en asterisk (versi&oacute;n 1.4 y 1.6) gracias a un modulo dedicado. Antes que nada hay que decir que Cepstral no es un programa gratuito y que cada voz cuesta 29,99 d&oacute;lares. El modulo para la integraci&oacute;n de Cepstral en Asterisk lo escribi&oacute; y lo actualiza Darren Sessions. Primero descargamos una voz de prueba en el sitio de Cepstral (en mi caso para Linux 64bit) cd /opt wget http://downloads.cepstral.com/cepstral/x86-64-linux/Cepstral_Marta-8kHz_x86-64-linux_5.1.0.tar.gz La descomprimimos tar -xf Cepstral_Marta-8kHz_x86-64-linux_5.1.0.tar.gz y la instalamos cd Cepstral_Marta-8kHz_x86-64-linux_5.1.0 ./install.sh Aceptamos la licencia, escogemos la carpeta /opt/swift para la instalaci&oacute;n y confirmamos los datos. Ahora tenemos que decirle a Linux donde buscar las librer&iacute;as del programa. abrimos el archivo ld.so.conf nano /etc/ld.so.conf a&ntilde;adimos una l&iacute;nea /opt/swift/lib Guardamos y actualizamos ldconfig -v Listo. Ahora tenemos que instalar el modulo para asterisk cd /usr/src Para asterisk 1.4.X wget http://www.voztovoice.org/tmp/app_swift-1.4.2.tar.gz Para Asterisk 1.6.X wget http://www.voztovoice.org/tmp/app_swift-1.6.2.tar.gz lo descomprimimos tar -xf app_swift-1.6.2.tar.gz Entramos en la carpeta: cd app_swift-1.6.2 compilamos y instalamos make make install Paramos y volvemos a arrancar asterisk /etc/init.d/asterisk stop /etc/init.d/asterisk start y averiguamos que el modulo est&eacute; cargado asterisk -rvvvvvvvvvvv CLI> module show like app_s Module&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Description&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Use Count app_sayunixtime.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Say time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_sendtext.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Send Text Applications&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_senddtmf.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Send DTMF digits Application&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_swift.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Cepstral Swift TTS Application&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_setcallerid.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set CallerID Presentation Application&nbsp;&nbsp;&nbsp; 0 app_system.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Generic System() application&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_softhangup.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Hangs up the requested channel&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_saycountpl.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Say polish counting words&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_sms.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SMS/PSTN handler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_speech_utils.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dialplan Speech Applications&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 app_stack.so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dialplan subroutines (Gosub, Return, etc 0 11 modules loaded La sinopsis del comando CLI> core show application swift &nbsp; -= Info about application \'Swift\' =- [Synopsis] Speak text through Swift text-to-speech engine. [Description] Syntax: Swift(text[|timeout in ms|maximum digits]) Example: Swift(Hello World|5000|5) = 5 second delay between 5 digits This application operates in two modes. One is processing text-to-speech while listening for DTMF and the other just processes the text-to-speech while ignoring DTMF entirely. Unless the timeout and maximum digits options are BOTH specified, the application will automatically ignore DTMF. Returns -1 on hangup or 0 otherwise. salimos de la consola: CLI> quit En la carpeta donde est&aacute;n los archivos de configuraci&oacute;n de asterisk encontraremos un nuevo archivo: swift.conf. Tenemos que modificarlo para terminar la integraci&oacute;n de Cepstral en Asterisk nano /etc/asterisk/swift.conf [general] buffer_size=65535 goto_exten=yes voice=Marta-8kHz Guardamos los cambios y actualizamos asterisk /etc/init.d/asterisk reload Quitamos y volvemos a cargar el modulo (por las moscas) asterisk -rvvvvvvvvvvvvvvvvvvvvvv *CLI> module unload app_swift &nbsp; == Unregistered application \'Swift\' CLI> module load app_swift &nbsp; == Registered application \'Swift\' &nbsp; == Parsing \'/etc/asterisk/swift.conf\':&nbsp;&nbsp; == Found [Oct 25 17:05:15] DEBUG[11038]: app_swift.c:545 load_module: Config buffer_size is 65535 [Oct 25 17:05:15] DEBUG[11038]: app_swift.c:552 load_module: Config goto_exten is 1 [Oct 25 17:05:15] DEBUG[11038]: app_swift.c:557 load_module: Config voice is Miguel-8kHz Loaded app_swift => (Cepstral Swift TTS Application) Salimos de la consola: CLI>&nbsp;quit Ahora probamos la instalaci&oacute;n en nuestra centralita. Creamos estas l&iacute;neas en extension.conf (en el contexto donde llegan todas las llamadas externas) nano /etc/asterisk/extensions.conf exten => s,1,Answer() exten => s,n,Playback(welcome) exten => s,n,Swift(En el centro de comunicaciones de VoztoVoice. Espere mientras lo conectamos con una operadora) exten => s,n,Wait(2) exten => s,n,Hangup Guardamos y actualizamos el dialplan asterisk -rvvvvvvvv CLI> dialplan reload Ahora desde su softphone hagan sus pruebas y me comentan.')))) / 2) AS score, node.title AS node_title, node.nid AS nid, node.language AS node_language FROM node node LEFT JOIN node_revisions node_revisions ON node.vid = node_revisions.vid WHERE (node.status = 1) AND (node_revisions.nid <> 61) INNER JOIN node_access na ON na.nid = node.nid WHERE (na.grant_view >= 1 AND ((na.gid = 0 AND na.realm = 'all') OR (na.gid = 0 AND na.realm = 'content_access_author') OR (na.gid = 1 AND na.realm = 'content_access_rid'))) GROUP BY score, node_title, nid, node_language HAVING score > (1) ORDER BY score DESC LIMIT 0, 8 in /home/voztovoice/public_html/modules/views/plugins/views_plugin_query_default.inc on line 1150.
Versión para impresiónSend by emailVersión PDF

Actualizado 11 Septiembre 2009

Un programa TTS (Text to Speech), entre otras cosas, transforma un texto en voz. En el caso de Asterisk esto es posible usando Festival.  Para que el modulo venga correctamente instalado, antes de compilar asterisk tenemos que instalar el programa y sus fuentes.

yum install festival festival-devel

Compilamos y ya. No se si alguien logró alcanzar un nivel de síntesis vocal bueno. Yo la verdad no. Es por eso que preferí probar Cepstral, otro sistema de TTS que se puede integrar en asterisk (versión 1.4 y 1.6) gracias a un modulo dedicado. Antes que nada hay que decir que Cepstral no es un programa gratuito y que cada voz cuesta 29,99 dólares. El modulo para la integración de Cepstral en Asterisk lo escribió y lo actualiza Darren Sessions.

Primero descargamos una voz de prueba en el sitio de Cepstral (en mi caso para Linux 64bit)

cd /opt

wget http://downloads.cepstral.com/cepstral/x86-64-linux/Cepstral_Marta-8kHz_x86-64-linux_5.1.0.tar.gz

La descomprimimos

tar -xf Cepstral_Marta-8kHz_x86-64-linux_5.1.0.tar.gz

y la instalamos

cd Cepstral_Marta-8kHz_x86-64-linux_5.1.0

./install.sh

Aceptamos la licencia, escogemos la carpeta /opt/swift para la instalación y confirmamos los datos.

Ahora tenemos que decirle a Linux donde buscar las librerías del programa. abrimos el archivo ld.so.conf

nano /etc/ld.so.conf

añadimos una línea

/opt/swift/lib

Guardamos y actualizamos

ldconfig -v

Listo. Ahora tenemos que instalar el modulo para asterisk

cd /usr/src

Para asterisk 1.4.X

wget http://www.voztovoice.org/tmp/app_swift-1.4.2.tar.gz

Para Asterisk 1.6.X

wget http://www.voztovoice.org/tmp/app_swift-1.6.2.tar.gz

lo descomprimimos

tar -xf app_swift-1.6.2.tar.gz

Entramos en la carpeta:

cd app_swift-1.6.2

compilamos y instalamos

make

make install

Paramos y volvemos a arrancar asterisk

/etc/init.d/asterisk stop

/etc/init.d/asterisk start

y averiguamos que el modulo esté cargado

asterisk -rvvvvvvvvvvv

CLI> module show like app_s

Module                         Description                              Use Count
app_sayunixtime.so               Say time                                 0
app_sendtext.so                    Send Text Applications                   0
app_senddtmf.so                   Send DTMF digits Application             0
app_swift.so                         Cepstral Swift TTS Application           0
app_setcallerid.so                 Set CallerID Presentation Application    0
app_system.so                      Generic System() application             0
app_softhangup.so               Hangs up the requested channel           0
app_saycountpl.so               Say polish counting words                0
app_sms.so                          SMS/PSTN handler                         0
app_speech_utils.so            Dialplan Speech Applications             0
app_stack.so                       Dialplan subroutines (Gosub, Return, etc 0
11 modules loaded

La sinopsis del comando

CLI> core show application swift

  -= Info about application 'Swift' =-

[Synopsis]
Speak text through Swift text-to-speech engine.

[Description]
Syntax: Swift(text[|timeout in ms|maximum digits])
Example: Swift(Hello World|5000|5) = 5 second delay between 5 digits
This application operates in two modes. One is processing text-to-speech while
listening for DTMF and the other just processes the text-to-speech while ignoring
DTMF entirely.
Unless the timeout and maximum digits options are BOTH specified, the application
will automatically ignore DTMF.
Returns -1 on hangup or 0 otherwise.

salimos de la consola:

CLI> quit

En la carpeta donde están los archivos de configuración de asterisk encontraremos un nuevo archivo: swift.conf. Tenemos que modificarlo para terminar la integración de Cepstral en Asterisk

nano /etc/asterisk/swift.conf

[general]

buffer_size=65535

goto_exten=yes

voice=Marta-8kHz

Guardamos los cambios y actualizamos asterisk

/etc/init.d/asterisk reload

Quitamos y volvemos a cargar el modulo (por las moscas)

asterisk -rvvvvvvvvvvvvvvvvvvvvvv

*CLI> module unload app_swift
  == Unregistered application 'Swift'

CLI> module load app_swift
  == Registered application 'Swift'
  == Parsing '/etc/asterisk/swift.conf':   == Found
[Oct 25 17:05:15] DEBUG[11038]: app_swift.c:545 load_module: Config buffer_size is 65535
[Oct 25 17:05:15] DEBUG[11038]: app_swift.c:552 load_module: Config goto_exten is 1
[Oct 25 17:05:15] DEBUG[11038]: app_swift.c:557 load_module: Config voice is Miguel-8kHz
Loaded app_swift => (Cepstral Swift TTS Application)

Salimos de la consola:

CLI> quit

Ahora probamos la instalación en nuestra centralita. Creamos estas líneas en extension.conf (en el contexto donde llegan todas las llamadas externas)

nano /etc/asterisk/extensions.conf

exten => s,1,Answer()
exten => s,n,Playback(welcome)
exten => s,n,Swift(En el centro de comunicaciones de VoztoVoice. Espere mientras lo conectamos con una operadora)
exten => s,n,Wait(2)

exten => s,n,Hangup

Guardamos y actualizamos el dialplan

asterisk -rvvvvvvvv

CLI> dialplan reload

Ahora desde su softphone hagan sus pruebas y me comentan.

Comentarios

Hola. Has probado Verbio? El

Hola.

Has probado Verbio?

El reconocimiento de voz y sus locutores son muy buenos. Eso sí, no es gratuito.

Verbio

No lo he probado todavía.

Si me regalan una demo prometo probarlo :)

Chao

Problemas al compilar

Ante todo muchas gracias por el tutorial. Estaba intentando seguirlo pero cuando llego a la parte de compilar el app_swift me tira muchisimos errores del tipo "/usr/include/string.h:67: error: declaration for parameter âmemchrâ but no such parameter"

Pareceria como si me faltase instalar el source de "algo" :)

Saludos,
AiZ

Re: Problemas al compilar

Hola,

en el Makefile de la carpeta app_swift aparecen estas lineas:

SWIFT_DIR=/opt/swift
CFLAGS=-I${SWIFT_DIR}/include -g -Wall -D_REENTRANT -D_GNU_SOURCE -fPIC
LDFLAGS=-L${SWIFT_DIR}/lib -lswift -lm -lswift $(patsubst ${SWIFT_DIR}/lib/lib%.so,-l%,$(wildcard ${SWIFT_DIR}/lib/libcep*.so))
SOLINK=-shared -Xlinker -x

Al compilar el programa busca en la carpeta /opt/swift/include y /opt/swift/lib.

Si tienes las carpeta configuradas bien mira si tienes instalado el paquete gcc-c++ (en Centos)

yum install gcc-c++

Si esto tampoco te funcionara intenta instalar bison:

yum install bison bison-devel

Si tampoco te funciona copia y pega la linea 67 del archivo /usr/include/string.h

Seria mejor saber:
- Distribucion Linux
- Version Asterisk
- Version Cepstral

Chao

Error al compilar app_swift.c

Engo instaldo el centos 5.3 y el asterisk 1.6.1.6

al ejecutar el make app_swit.c obtengo estos errores

[root@rex-ast-01 app_swift-1.6.2]# make
gcc -I/opt/swift/include -g -Wall -D_REENTRANT -D_GNU_SOURCE -fPIC -c -o app_swift.o app_swift.c
app_swift.c: In function ‘engine’:
app_swift.c:396: error: incompatible types in assignment
app_swift.c: In function ‘load_module’:
app_swift.c:540: error: ‘AST_MODULE’ undeclared (first use in this function)
app_swift.c:540: error: (Each undeclared identifier is reported only once
app_swift.c:540: error: for each function it appears in.)
make: *** [app_swift.o] Error 1

Tines alguna idea , como solucionar esto?

Saludos!
Jesus

Re: Error al compilar app_swift.c

Controla che tenga esta linea en este archivo:

nano /etc/ld.so.conf

la linea es:

/opt/swift/lib

Guarda los cambios y escribe el comando:

ldconfig -v

Luego intenta compilar otra vez app_swift

Cuéntame

Re: Error al compilar app_swift.c

Si tenia la linea en el ld.so.conf
ejecute el ldconfig -v

y luego el make , y sigue arrojando el mismo error.

App_swift

La verdad me parece muy raro. Creo que es mejor que visites la pagina del desarrollador del modulo para ver si hay actualizaciones.
Chao

SI esta raro, la página esta

SI esta raro, la página esta offline, pero ay le mande un correo.

Aunque me gustaria utilizar el modulo aap_swift.
Ya lo solucione por medio de AGI.

http://www.voip-info.org/wiki/view/swift.agi

○ Install agi Script
§ Copy swift.agi to /var/lib/asterisk/agi-bin
§ Change permission
□ chown -v asterisk:asterisk /var/lib/asterisk/agi-bin/swift.agi
□ chmod -v 755 /var/lib/asterisk/agi-bin/swift.agi
○ Dialplan Example
§ exten => 511,1,Answer
§ exten => 511,2,Wait(1)
§ exten => 511,3,agi(swift.agi, Esto es una prueba)
§ exten => 511,4,Hangup

Saludos y Gracias!

Hola a todos ! Aquí os dejo

Hola a todos !

Aquí os dejo el enlace de un parche para compilar app_swift

http://jeremy.kister.net/code/app_swift-1.6.2.patch

Un saludo

Mandar texto al servidor y que responda el archivo de audio

Hola a todos, llevo dos días navegando buscando una solucón que me convezca para lo que quiero hacer y me he topado con este post, de entrada decir que ni conocía Asterisk, pero me parece muy muy interesante. Al lío:

 

Lo que busco es un motor de TTS para a través de mi web enviarle texto  y que responda con un archivo de audio para el usuario en cuestión que esté visitando la página, busco algo que pueda usar sin limitaciones (sería una web gratuita y sin fines comerciales). Podría utilizar Asterisk para ello? Implica mucho trabajo de desarrollo?

Gracias por adelantado, necesito alguien que sepa sobre el tema para que me pueda dar un par de apuntes sobre el tema. Ya que por internet es complicado de buscar debido a que hay muchos tipos de servicios de TTS, pero no acabo de encontrar lo que me haría falta para mi aplicación.

 

Un saludo

Integrar festival a una BD

Hola quisiera saber si se puede configurar festival para que atravez de una IVR el usuario pueda obtener informacion de una base de datos

Re: Integrar festival a una BD

Hola,

se puede hacer perfectamente. Mira este articulo: http://www.voztovoice.org/?q=node/187

en lugar de Flite pones Festival

Saludos

PicoTTS

PicoTTS es de codigo abierto y no habla mal del todo.

Yo lo estoy utilizando y estoy contento con el.

Para simplificar, hay una aplicación compatible en formato con app_swft.

https://github.com/rampa069/app_picotts

Distribuir contenido Distribuir contenido