El reconocimiento de voz siempre ha sido un tema complicado de resolver por los distintos matices que tiene esta.
En ubuntu no existe un buen programa de texto a voz ya que existen diferentes componentes y algunos son antiguos.
Crear sintetizadores de voz para que el ordenador hable lo que nosotros le escribamos ha sido algo más sencillo. En inglés se llaman TTS (Text to Speech).
Así que en este artículo vamos a a ver las posibilidades que tiene Ubuntu para convertir un texto en voz, y como poder mandarle comandos de voz para realizar ciertas acciones.
De texto a voz con espeak
Espeak es un sintetizador de voces para ubuntu muy sencillo.
Para instalarlo solo tenemos que ejecutar los siguientes comandos en ubuntu:
sudo apt-get install espeak
Para reproducir texto por consola:
espeak –stdout ‘Kacharreando es un blog muy chulo’ | aplay
Para reproducir el texto a medida que lo escribes por el terminal:
espeak –stdout | aplay
Reproducir un documento:
espeak –stdout -t documento.txt | aplay
Reproducir un documento y generar archivo WAV
espeak -t documento.txt -w audio_documento.wav
Listar todas las voces disponibles
espeak –voicestext
Si queremos reproducir una «voz» determinada tenemos que escribir:
espeak -v en-uk –stdout ‘Kacharreando es un blog muy chulo’ | aplay
También podemos establecer la cantidad de palabras por minuto reproducidas:
espeak -s 140 -f documento.txt | aplay
Si queremos listar las voces disponibles en un idioma en particular utilizamos el siguiente comando:
espeak –voice=es
Por último, puedes utilizar un programa para el entorno gráfico que te ahorrará todos estos comandos. El comando se llama GUI Gespeaker.
De texto a voz con Festival
Festival es un sintetizador de voz para Linux que tiene soporte en Español, y vamos a ver como instalarlo en Ubuntu.
Si utilizas Debian o Ubuntu puedes instalarlo de la siguiente manera:
sudo apt-get install festival festlex-cmu festlex-poslex festvox-kallpc16k libestools1.2 festvox-ellpc11k
festvox-ellpc11k es el plug-in en español.
Una vez que tenemos instalado Festival, para poder ejecutarlo con soporte de habla en español, entramos en el entorno con el siguiente comando:
festival –language spanish
Ahora, solo tienes que ejecutar el siguiente comando para que diga algo:
festival> (SayText “probando la caja negra, aaahhh, aahhhh”)
También podemos indicarle que lea un archivo de texto con el comando:
festival –language spanish –tts archivo.txt
Tambien podemos descargar e instalar un paquete con dífonos en castellano desde la forja de guadalinex:
wget http://forja.guadalinex.org/frs/download.php/154/festvox-sflpc16k_1.0-1_all.deb (femenina)
wget http://forja.guadalinex.org/frs/download.php/153/festvox-palpc16k_1.0-1_all.deb (masculina)
dpkg -i festvox-sflpc16k_1.0-1_all.deb
Puedes ver los archivos del proyecto aquí: Forja Festival Guadalinex
Si queremos saber la lista de voces instaladas en festival, tecleamos:
festival> (voice.list)
Vamos a ver si todo funciona bien, escribamos festival en el terminal y coloquemos los siguientes comandos:
festival> (voice_JuntaDeAndalucia_es_pa_diphone)
festival> (SayText “Mucho mejor! Es la voz masculina”)
y ahora con la voz femenina:
festival> (voice_JuntaDeAndalucia_es_sf_diphone)
festival> (SayText “Mucho mejor! Es la voz femenina”)
Para salir de Festival solo tienes que pulsar Ctrl-d.
Por lo que ya podemos escuchar la voz diciendo “hola usuario” por los altavoces del ordenador:
echo hola usuario | festival –language spanish –tts
También podemos guardar el audio directamente en un fichero wav, en vez de escucharlo por los altavoces:
echo hola usuario | text2wave -o audio.wav
aplay audio.wav
Si todo funciona correctamente ya tendríamos configurado festival. Si quisiéramos escuchar una voz en español por defecto, tendríamos que configurar el siguiente archivo en /etc/festival.scm. Para eso abrimos una consola y escribimos:
nano /etc/festival.scm
y agregamos al final:
(set! voice_default ‘voice_JuntaDeAndalucia_es_sf_diphone)
con lo que nos reproducirá los textos con voz femenina.
Ya tenemos todo el sistema configurado perfectamente y podremos reproducir todos los textos que queramos. Si reproducimos algún texto que tenga acentos, nos daremos cuenta que hará una reproducción extraña, es decir, nos deletreará la palabra, por lo que es recomendable quitar los acentos y caracteres no ingleses para que la reproducción quede fluida.
Lo haremos con el siguiente archivo en bash:
#!/bin/bash
echo $1|iconv -f utf-8 -t iso-8859-1|festival –tts
guardamos el archivo, le damos permiso de ejecución, y lo movemos al directorio /usr/bin/ (como root) para que podamos ejecutarlo en cualquier parte del sistema. Los comandos son los siguientes:
chmod a+x reproducir
mv reproducir /usr/bin
y podremos utilizarlo así:
reproducir «Esta es a canción del verano»
¡Y esto es todo!
[shortimage]
¿Habías probado alguna vez el pasar de texto a voz?


Deja una respuesta