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
Nota: Siempre antes de instalar cualquier cosa es conveniente actualizar el sistema para que se nos descargue la versión más reciente del programa que vamos a instalar. Debido a esto, antes de la instalación puse los comandos para actualizar.

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
Nota: para hacerlo debes de estar posicionado en la misma carpeta que el archivo, y en lugar de textovoz.sh es el nombre que le hayas puesto a tu script bash.

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:

  1. No acepta más de 100 caracteres para traducir.
  2. La traducción y reproducción tiene algo de latencia.
  3. Consume unos recursos de procesamiento considerables.
  4. Tiene algunos problemas con acentos y otros caracteres (",',´,#).