De Texto a voz en Ubuntu – Síntesis de voz o habla

x3Hola, Hola!

La síntesis de voz o síntesis de habla se define como la producción artificial del habla mismo. Quizás de las voces más comunes en Internet, tenemos a la voz de Carlos o Jorge, las voces usadas por la gente que hacen vídeos con Loquendo TTS (el típico Ja Ja Ja xd xd xd xd). En el mundo del software libre tenemos un programita llamado Festival; éste último, es un sistema de síntesis de voz de propósito general para múltiples lenguajes desarrollado originalmente por el Centro de Investigación de Tecnologías del Lenguaje de la Universidad de Edinburgo, la Universidad Carnegie Mellon así como otros centros de enseñanza han realizado contribuciones substanciales al proyecto.

En una entrada anterior, se comentó sobre esto mismo pero para plataforma Windows.

Para instalar en Ubuntu, en una terminal, digitar lo siguiente:

sudo apt install festival

Ya lo tenemos instalado; ahora necesitamos una voz en español. Desde éste momento les afirmo que ésta voz es de las más «pasables» que hay y que es opensource, por cuanto no pidan mucho xD

En la siguiente URL podrán encontrar la voz masculina y femenina que crearon la gente de Guadalinex (Hispavoces):

https://github.com/guadalinex-archive/hispavoces/tree/master/packages

Yo les recomiendo seguir éste proceso (instalar la voz masculina):

wget https://raw.githubusercontent.com/guadalinex-archive/hispavoces/master/packages/festvox-palpc16k_1.0-1_all.deb
sudo dpkg -i festvox-palpc16k_1.0-1_all.deb

Ahora probaremos si está funcionando bien…

echo "Hola. ¿Cómo está el árbol?" | iconv -f utf-8 -t iso-8859-1|festival --tts

Deberíamos oír la voz masculina respetando las tildes. Nota: antes de tts deben de llevar 2 guiones, no uno…

¡Y eso sería! Bueno, hay otras cositas que se pueden hacer aprovechando lo que ya tenemos…

Script para leer un texto agregado en la línea de comando

Crearemos un script para éste cometido. Todo en consola (y con privilegios de sudo…)

sudo -s
nano /usr/bin/hablar

Dentro de /usr/bin/hablar agregaremos:

echo $1 | iconv -f utf-8 -t iso-8859-1|festival --tts

Ahora le damos los permisos respectivos.

chmod +x /usr/bin/hablar

Ahora, verifiquemos:

hablar «Hola, ésta es la prueba número uno.»

 

Script pata leer el contenido de un archivo de texto

Crearemos un script para éste cometido. Todo en consola (y con privilegios de sudo…)

sudo -s
nano /usr/bin/hablar-texto

Dentro de /usr/bin/hablar-texto agregaremos:

cat $1 | iconv -f utf-8 -t iso-8859-1|festival --tts

Ahora le damos los permisos respectivos.

chmod +x /usr/bin/hablar-texto

Ahora, verifiquemos. Digamos que tenemos un archivo de texto (/opt/leer.txt) que queremos que nos lo lea:

hablar-texto /opt/leer.txt

 

Script para generar un archivo WAV del texto agregado en la línea de comando

Digamos que tenemos una frase que queremos que se haga un archivo de audio (WAV)… Crearemos un script para éste cometido. Todo en consola (y con privilegios de sudo…)

sudo -s
nano /usr/bin/hablar-wav

Dentro de /usr/bin/hablar-wav agregaremos:

echo $1 | iconv -f utf-8 -t iso-8859-1 | text2wave > $2

Ahora le damos los permisos respectivos.

chmod +x /usr/bin/hablar-wav

Ahora, verifiquemos. Digamos que queremos generar el archivo wav en /opt/salida.wav:

hablar-wav «Ésta es una frase.» /opt/salida.wav

 

Script para generar un archivo WAV de un archivo de texto

Crearemos un script para éste cometido. Todo en consola (y con privilegios de sudo…)

sudo -s
nano /usr/bin/hablar-texto-wav

Dentro de /usr/bin/hablar-texto-wav agregaremos:

cat $1 | iconv -f utf-8 -t iso-8859-1 | text2wave > $2

Ahora le damos los permisos respectivos.

chmod +x /usr/bin/hablar-texto-wav

Ahora, verifiquemos. Digamos que tengo un texto en /opt/leer.txt y queremos generar el archivo wav en /opt/salida.wav:

hablar-texto-wav /opt/leer.txt /opt/salida.wav

 

Sé que es básico, pero puede que le sirva a alguien. También se puede convertir de una vez a MP3, pero bueno… eso es todo! Saludos!

Comentarios por Facebook

comentarios

5 respuestas a “De Texto a voz en Ubuntu – Síntesis de voz o habla”

  1. echo “Hola. ¿Cómo está el árbol?” | iconv -f utf-8 -t iso-8859-1|festival –tts
    iconv: secuencia de entrada ilegal en la posición 0
    SIOD ERROR: could not open file –tts

    • Ok, veo que el problema es que donde esta tts lleva dos guiones, no uno. Sería así:
      echo “Hola. ¿Cómo está el árbol?” | iconv -f utf-8 -t iso-8859-1|festival –tts

      Éste editor me combina los dos guiones por uno solo (–) guiones por uno solo pero más grande… voy a ver si modifico el post para que no se tenga problemas al respecto.
      ¡Saludos!

  2. Hola, he podido recrear todos los pasos de manera exitosa hasta que intento leer un archivo de texto. Sólo me arroja error y me dice que el archivo o la carpeta no existe ¿cómo podría solucionarlo? Gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*