sábado, abril 02, 2011

Festival, un conversor de texto a voz en ubuntu linux


Festival, un conversor de texto a voz en ubuntu linux



Hace semanas, o mas, estuve "jugando" con un conversor de texto a voz llamado festival. Esta claro que este programa esta hecho para fines mas serios, pero yo me divertí mucho haciendo hablar a mi PC y lamentablemente ahora se me esta olvidando que hice y como así que voy a intentar ponerlo aquí antes de que se me olvide del todo.

Para probarlo primero tenemos que instalar festival y es muy fácil. Esta en los repositorios de Ubuntu. En un terminal pones:

sudo apt-get install festival

Como queremos que nos hable en un español aceptable nos bajamos las voces para este programa de la distribución Guadalinex. Haz clic sobre el paquete .deb para que se empiece a bajar:
Las instalamos y ahora decidimos la voz que queremos usar. Por ejemplo, si queremos usar la voz de Pedro, la masculina, en un Terminal ponemos lo que sigue:

festival

Nos debería salir algo parecido a esto:

Festival Speech Synthesis System 1.96:beta July 2004

Copyright (C) University of Edinburgh, 1996-2004. All rights reserved.

For details type `(festival_warranty)'

festival>

Ponemos esto:

(voice_JuntaDeAndalucia_es_pa_diphone)

Vamos a probarlo.

(SayText "Hola, soy Pedro") 

Que queremos probar la voz femenina, la instalamos con esto:

(voice_JuntaDeAndalucia_es_sf_diphone)

Salimos de festival con:

(quit)

Se puede hacer que lea directamente desde el Terminal de esta forma:

echo "Un saludo a todos desde Vijamaro y Linux" | festival --tts

Ahora tenemos que solucionar lo de los acentos. Si intentas que festival lea un texto con acentos, se liara y te deletreara la palabra. Para evitarlo pasamos el texto de utf-8 a iso-8859-1 con "| iconv -f utf-8 -t iso-8859-1". Para probarlo tecleamos en el Terminal lo que sigue:

echo "El miércoles es el cuarto día de la semana." | festival --tts

Que mal ¿verdad?. Lo arreglamos así:

echo "El miércoles es el cuarto día de la semana." | iconv -f utf-8 -t iso-8859-1 | festival --tts

Mejor.
Para que el PC nos diga la fecha y la hora seria así:

echo & date +"%H horas y %M minutos del %A %d d %B d %Y" | iconv -f utf-8 -t iso-8859-1  | festival --tts

Para que nos lea un archivo:

festival --tts mi_archivo_de_texto.txt

A partir de ahora a usar la imaginación.

No hay comentarios.: