Sintesis de voz en la Beaglebone black

Para hablar de GNU/Linux o software libre en general.
kurtsik
Mensajes: 124
Registrado: 30 Ene 2015 11:29

Sintesis de voz en la Beaglebone black

Mensaje por kurtsik » 31 Ene 2015 22:59

Con estas instrucciones conseguiremos que nuestro sistema GNU/Linux sea capaz de sintetizar texto que le proporcionemos, para ello utilizaremos la aplicacion Espeak.
robot.jpg
robot.jpg (30.52 KiB) Visto 4682 veces

El procedimiento esta dirigido a realizarlo en la Beaglebone pero con minimos ajustes deberia funcionar en cualquier otra distribucion.

El primer paso es comprobar que la tarjeta de sonido esta correctamente configurada y si no es asi hacerlo. La Beaglebone no tiene una tarjeta de sonido propiamente dicha (tiene un dispositivo de audio asociado al interfaz HDMI) por lo que sera necesario adquirir una USB.

Para empezar instalaremos los paquetes necesarios (es posible que esten instalados por defecto):

Código: Seleccionar todo

# apt-get install alsa-base alsa-utils libasound2-dev espeak
Ahora utilizaremos una aplicacion llamada alsamixer para controlar el volumen y la activacion de la salida y entrada de la tarjeta USB.

Código: Seleccionar todo

$ alsamixer
Que nos mostrara una pantalla similar a esta:
alsamixer.jpg
alsamixer.jpg (21.98 KiB) Visto 4683 veces

Tenemos que seleccionar la tarjeta de sonido que queremos configurar, para ello presionamos F6 y seleccionamos el dispositivo USB.

Para desplazarnos en la nueva pantalla que aparecera solo necitamos las teclar de flechas. Estableceremos el volumen deseado, tanto para el altavoz como para el micro, y nos aseguraremos que los dispositivos esten activados (situandonos encima de los circulos rojos de la captura de mas abajo y pulsando M). El aspecto debe ser igual que el de la captura.
volumen.jpg
volumen.jpg (38.31 KiB) Visto 4682 veces

Con esto tendremos lista la tarjeta de sonido. Si ejecutamos el siguiente comando:

Código: Seleccionar todo

$ aplay –l
Podremos ver que aparecen dos dispositivos (el USB y el HDMI), para indicarle al sistema que siempre utilice por defecto el USB debemos crear el siguiente archivo: /etc/asound.conf y añadirle el siguiente contenido:

Código: Seleccionar todo

pcm.!default sysdefault:Device
Para comprobar que todo es correcto trataremos de grabar sonido por el micro. Este comando grabara 10 segundos de audio y lo guardara en un archivo llamado prueba.wav:

Código: Seleccionar todo

arecord -d 10 -r 48000 prueba.wav
Y trataremos de reproducirlo:

Código: Seleccionar todo

aplay test.wav
Vamos entonces con la configuracion del sintetizador de voz. Es una aplicacion muy facil de utilizar, para comprobar que todo es correcto solo debemos teclear:

Código: Seleccionar todo

$ espeak "kaixo laguna"
Y podremos disfrutar del euskera con una curiosa entonacion de Idaho ;-)

La aplicacion tiene muchas opciones como coger el texto de un archivo o cambiar las voces a un monton de idiomas, pera ver las basicas solo hay que teclear:

Código: Seleccionar todo

$ espeak -h
Parece ser que hay un problema con los paquetes que provee en este momento la version de Debian para Beaglebone: kernel 3.14.26, espeak 1.46.02 y jackd 5, al ejecutar espeak da un error. No he encontrado ninguna manera de solventar el problema por lo que en este momento el sintetizador de voz esta roto en la Beaglebone.
En las distribuciones comunes el procedimiento es mucho mas sencillo: solo tenemos que instalar la aplicacion y ejecutarla normalmente:

# apt-get install espeak
$ espeak -v europe/es "luk, soy tu padre"

Responder