Convertir archivos de texto a audio es algo que puede resultar de utilidad no sólo para personas con problemas de visión sino también para cualquiera que desee estudiar o aquellos que siendo lo suficientemente perezosos para leer o careciendo del mínimo espacio de comodidad para hacerlo, disfrutan que les "lean" mientras van en el tren, en el subte, etc.
¡Por fin vas a poder guardar en tu reproductor de música tus libros favoritos, resúmenes de la facu, etc. y los vas a poder llevar con vos a donde quieras!
El método que les voy a enseñar en esta oportunidad utiliza el motor Espeak. Existen básicamente 2 maneras de utilizarlo, a través de un GUI (Gespeaker) o a través de un terminal.
Pasos previos:
Espeak ya viene instalado en las últimas versiones de Ubuntu, por eso lo elegimos. Así que lo que resta por instalar y configurar es muy poco.
Utilizando el GUI Gespeaker
1) Instalar Gespeaker:
Ir a la página oficial del proyecto, bajar el paquete .DEB e instalarlo.
Una vez instalado, buscar y ejecutar Gespeaker, disponible en Aplicaciones > Audio y Video > Gespeaker
Al correrlo, se van a dar cuenta de que su utilización es muy intuitiva. Sólo hay que elegir la voz con la que queremos reproducir el texto; en nuestro caso, podría ser spanish o spanish-latin-american. Luego, escribir el texto en la caja de texto principal y, de ser necesario, configurar las opciones "avanzadas" que regulan la velocidad, el volumen, el tono y el "delay" entre palabras de la voz. Finalmente, presionar Play y ¡voilá!
Para guardar ese texto en un archivo de audio, sólo basta con presionar "Record" y elegir la ruta de destino.
2) Instalar las voces Mbrola
Habrán notado que las voces originales suenan un tanto "robóticas", al estilo "Stephen Hawking". Para "suavizar" este problema, una posible solución es utilizar las voces Mbrola.
Para ello, primero tenemos que instalar el motor Mbrola. Abrir el terminal y escribir
sudo apt-get install mbrola
Luego, bajar las voces de Mbrola "es1" y "es2" (si así lo desean también pueden bajar otras), descomprimir y copiar sólo los archivos del mismo nombre y sin extesión a la carpeta "/usr/share/mbrola", que deberemos crear en caso de no existir.
Para hacer todo eso bien rápido desde el terminal, copien y peguen todo este choclo:
wget http://www.tcts.fpms.ac.be/synthesis/mbrola/dba/es1/es1-980610.zip
wget http://www.tcts.fpms.ac.be/synthesis/mbrola/dba/es2/es2-989825.zip
unzip es1-980610.zip
unzip es2-989825.zip
sudo mkdir /usr/share/mbrola
sudo cp ~/es1/es1 /usr/share/mbrola
sudo cp ~/es2/es2 /usr/share/mbrola
3) Tunear Gespeaker
Antes de continuar, les recomiendo cerrar Gespeaker si lo tenían abierto. Vuelvan a abrirlo y vayan a Edit > Preferences. En Audio player, pueden elegir entre ALSA y PulseAudio. Mi recomendación es que elijan "PulseAudio". Todo lo demás puede quedar igual.
Sólo falta ver si Gespeaker detectó correctamente el motor y las voces de Mbrola. Para ello, vayan a la pestaña "Mbrola voices". Donde dice "Mbrola main application" debe aparecer un mensaje que diga "Package mbrola installed". Luego, vayan hasta el final de la lista para ver si detectó las voces "spanish-mbrola-1" y "spanish-mbrola-2". De ser así, vamos por el buen camino.
4) Probar todo...
Finalmente, seleccionar las voces Mbrola en Gespeaker. En la ventana principal del programa, elegir del listado "Language" la voz "Spanish-mbrola-1" o "Spanish-mbrola-2".
Utilizando el terminal
1) Aprendiendo a usar Espeak desde el terminal
Reproducir el texto ingresado:
espeak --stdout 'Usemos Linux es lo más' | aplay
Reproducir el texto a medida que lo escribís en el terminal:
espeak --stdout | aplay
Reproducir un documento
espeak --stdout -t midocumento.txt | aplay
Reproducir un documento y generar archivo WAV
espeak -t midocumento.txt -w miaudio.wav
Listar todas las voces disponibles
espeak --voicestext
Reproducir utilizando una "voz" determinada
espeak -v en-uk --stdout 'Usemos Linux es el mejor blog del mundo' | aplay
Establecer la cantidad de palabras por minuto reproducidas
espeak -s 140 -f midocumento.txt | aplay
Listar las voces disponibles en un idioma en particular
espeak --voice=es
2) Instalar las voces Mbrola
Para hacerlo, deben seguir los mismos pasos desarrollados en el punto 2 anterior.
Usar las voces Mbrola desde el terminal.
Esto puede resultar un tanto más engorroso, pero a mí me funcionó mejor que Gespeaker. Si bien el motor de conversión es el mismo (espeak + mbrola), la voz de Gspeaker se escuchaba peor, probablemente porque no se puede reducir el delay entre palabras a un número menor a 5. Por eso, les recomiendo que guarden esta página en favoritos para poder acceder a ella en tiempos de necesidad.
Para convertir un archivo de texto a un archivo .WAV usando las voces Mbrola:
espeak -v mb-es1 -f archivotexto | mbrola -e /usr/share/mbrola/es1 - salida.wav
Para simplemente reproducir un archivo de texto usando las voces Mbrola:
espeak -v mb-es1 -f archivotexto | mbrola -e /usr/share/mbrola/es1 - - | aplay -r16000 -fS16
El parámetro -e impide que mbrola se detenga en caso de encontrar un fonemas que no comprenda o reconozca correctamente.
Aunque no es el caso de "es1" y "es2", es importante tener en cuenta que algunas voces mbrola utilizan un sample rate de 22050 Hz. En tal caso, deberán poner -r22050 en vez de -r16000.
Cómo convertir el resultado final (.WAV) a un .MP3, .OGG, etc.
El método más sencillo es utilizando Sound Converter, una GUI para las librerías gstreamer.
Abrir un terminal e ingresar:
sudo apt-get install soundconverter
Luego ir a Aplicaciones > Audio y Video > Sound Converter y correr el programa. Para configurar los parámetros de conversión ir a Edición > Preferencias. Luego seleccionar el o los archivos a convertir y presionar el botón "Convertir".