Descubrí que es realmente sencillo pasar de texto a voz gracias al uso del Traductor de Google, así que les explicaré cómo hacerlo.
Y que tu Raspberry Pi hable.
Texto a voz desde terminal
Para esto tendremos que tener instalado el mplayer para la reproducción de sonido. En la terminal ponemos lo siguiente:
sudo apt-get update sudo apt-get upgrade sudo apt-get install mplayer
Bueno, para convertir a voz, basta con hacer un script bash, ya sea en consola o con cualquier editor de texto. Le pueden poner el nombre que deseen con terminación ".sh" . Este archivo contendrá el siguiente código:
#!/bin/bash say() { local IFS=+;/usr/bin/mplayer -ao alsa -really-quiet -noconsolecontrols "http://translate.google.com/translate_tts?tl=es&q=$*"; } say $*
Está para texto en español. Si deseas cambiarlo a inglés o a otro idioma, sólo cambia de la linea 2 del código al final donde dice "tl=es&q=$" por la que gustes. En caso de inglés sería "tl=en&q=$" , francés "tl=fr&q=$". Ademés, si queremos que el español sea de España o de México, basta con cambiar la dirección. Para España "http://translate.google.es/" y para México sería "http://translate.google.com.mx/".
En mi caso se llama "textovoz.sh". Lo que hace este script es que mediante consola pueda ser llamado con unos parámetros de texto, los cuales enviará a la página de Google para obtener el archivo ya en sonido y reproducirlo con mplayer.
Para que funcione tendremos que darle algunos permisos, ejecutando en la terminal:
chmod +x textovoz.sh
Ahora a probar qué tal funciona. Asegúrate de tener la Raspberry conectada a Internet. Ejecutamos en la terminal lo siguiente:
./textovoz.sh "Hola, ya puedo hablar, gracias"
Se reproduce el sonido mientras nos muestra una pantalla similar a la de arriba.
Texto a Voz en Python
Para python es lo mismo; incluso usaremos el script bash que ya hicimos y, con ayuda de la librería os y la función system podremos ejecutar el script desde Python.
Creamos un archivo Python, con el siguiente código dentro:
import os os.system('./textovoz.sh "Hola, ¿que tal me escucho?"')
Ahora simplemente lo ejecutamos como cualquier otro programa de python en consola. En mi caso lo llamé "puebavoz.py":
python pruebavoz.py
Como ven, es muy sencillo. Lo bueno de poder ejecutarlo desde Python es que pueden incorporarlo a cualquier programa, puesto que podemos sustituir o complementar con el uso de variables. Por ejemplo:
import os x="Hola, " y="¿que tal me escucho?" os.system('./textovoz.sh '+x+y)
Limitaciones
Como siempre, la principal limitación es nuestra creatividad y empeño. Sin embargo, tiene otras pocas:
- No acepta más de 100 caracteres para traducir.
- La traducción y reproducción tiene algo de latencia.
- Consume unos recursos de procesamiento considerables.
- Tiene algunos problemas con acentos y otros caracteres (",',´,#).