Festival es una aplicación capaz de convertir el texto en diálogo. Aquí voy a explicar con detalle como configurarlo correctamente, porque mucha gente (incluido yo) ha tenido problemas.
1. Lo primero, instalarlo desde Synaptic. He dejado sin instalar la voz "festvox-ellpc11k", y he puesto la "festvox-sflpc16k", es de mujer y ésta suena mucho menos metálica que la primera.
Los archivos de voz en español quedan instalados en /usr/share/festival/voices/spanish. Si sólo instalasteis la voz femenina (que por cierto se llama Silvia, cortesía de la Junta de Andalucía, fundadores del proyecto
), la carpeta debería estar así:
/usr/share/festival/voices/spanish$ ls
JuntaDeAndalucia_es_sf_diphone
2. Ahora hay que modificar el archivo /usr/share/festival/voices.scm, para que Festival reconozca como voz principal a Silvia:
gedit /usr/share/festival/voices.scm
y cambiar la línea 326,
(defvar default-voice-priority-list
'(kal_diphone
cmu_us_bdl_arctic_hts
cmu_us_jmk_arctic_hts
cmu_us_slt_arctic_hts
cmu_us_awb_arctic_hts
por
(defvar default-voice-priority-list
'(JuntaDeAndalucia_es_sf_diphone
cmu_us_bdl_arctic_hts
cmu_us_jmk_arctic_hts
cmu_us_slt_arctic_hts
cmu_us_awb_arctic_hts
Se cambia "kal_diphone" por el mismo nombre del archivo que estaba en /usr/share/festival/voices/spanish
Y ya está, a no ser que os ocurra un error que explicaré ahora.
en terminal, para que Festival os lea un archivo de texto: festival --tts texto.txt.
Pueden ocurrir dos errores. El primero que os salga esto:
Linux: can't open /dev/dsp
Un error de configuración con Alsa, que se soluciona pegando en el terminal
printf ";use ALSAn(Parameter.set 'Audio_Method 'Audio_Command)n(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE"
n" > ~/.festivalrc donde aparece la cara, hay que poner " ) ,pero junto...cosas de los emoticons 
y el segundo error es que ya por lo menos con Silvia haciendo su trabajo
, cuando llegue a palabras con tildes, ñ, comillas etc,etc, empieze a deletrear las palabras y no se la entienda una mierda. Eso es porque hay que cambiar la lectura de caracteres de utf-8 a iso-8859-1, que es la de Europa del Sur. Entonces:
less texto.txt|iconv -f utf-8 -t iso-8859-1|festival --tts , poniendo en "texto.txt" el nombre del texto que quieres que Festival te lea.
Como es un soberano coñazo escribir todo eso cada vez que quieras que Festival se ejecute sin problemas, se me ocurrió hacer un script en bash para iniciar eso con un solo comando. Lo primero es que tengais un solo archivo de texto para jugar con Festival. Yo lo que hago es copiar lo que quiero oir siempre en el mismo fichero. Voy a hacer el ejemplo con un fichero que llamaremos mistextos.txt, y aquí será donde peguemos o escribamos el texto que queremos oir. En la misma carpeta, abrimos otro texto para hacer este script:
#!/bin/bash
less mistextos.txt|iconv -f utf-8 -t iso-8859-1|festival --tts
Y llamadlo festi, por ejemplo.
Guardamos y listo. Otra vez en consola, nos vamos a la carpeta donde estén mistextos.txt y festi y tecleamos
sh festi
Voilá! nos ahorramos escribir toda la cadena de antes.
Yo este programa lo uso para escuchar noticias deportivas mientras hago otras cosas (me voy a la noticia, copio el texto, y lo pego en mistextos.txt). Para personas con problemas de visión o que se les cansa la vista al leer mucho de la pantalla Festival les viene perfecto.
Espero que os guste!
1. Lo primero, instalarlo desde Synaptic. He dejado sin instalar la voz "festvox-ellpc11k", y he puesto la "festvox-sflpc16k", es de mujer y ésta suena mucho menos metálica que la primera.
Los archivos de voz en español quedan instalados en /usr/share/festival/voices/spanish. Si sólo instalasteis la voz femenina (que por cierto se llama Silvia, cortesía de la Junta de Andalucía, fundadores del proyecto

), la carpeta debería estar así:
/usr/share/festival/voices/spanish$ ls
JuntaDeAndalucia_es_sf_diphone
2. Ahora hay que modificar el archivo /usr/share/festival/voices.scm, para que Festival reconozca como voz principal a Silvia:
gedit /usr/share/festival/voices.scm
y cambiar la línea 326,
(defvar default-voice-priority-list
'(kal_diphone
cmu_us_bdl_arctic_hts
cmu_us_jmk_arctic_hts
cmu_us_slt_arctic_hts
cmu_us_awb_arctic_hts
por
(defvar default-voice-priority-list
'(JuntaDeAndalucia_es_sf_diphone
cmu_us_bdl_arctic_hts
cmu_us_jmk_arctic_hts
cmu_us_slt_arctic_hts
cmu_us_awb_arctic_hts
Se cambia "kal_diphone" por el mismo nombre del archivo que estaba en /usr/share/festival/voices/spanish
Y ya está, a no ser que os ocurra un error que explicaré ahora.
en terminal, para que Festival os lea un archivo de texto: festival --tts texto.txt.
Pueden ocurrir dos errores. El primero que os salga esto:
Linux: can't open /dev/dsp
Un error de configuración con Alsa, que se soluciona pegando en el terminal
printf ";use ALSAn(Parameter.set 'Audio_Method 'Audio_Command)n(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE"

n" > ~/.festivalrc donde aparece la cara, hay que poner " ) ,pero junto...cosas de los emoticons 
y el segundo error es que ya por lo menos con Silvia haciendo su trabajo

, cuando llegue a palabras con tildes, ñ, comillas etc,etc, empieze a deletrear las palabras y no se la entienda una mierda. Eso es porque hay que cambiar la lectura de caracteres de utf-8 a iso-8859-1, que es la de Europa del Sur. Entonces:
less texto.txt|iconv -f utf-8 -t iso-8859-1|festival --tts , poniendo en "texto.txt" el nombre del texto que quieres que Festival te lea.
Como es un soberano coñazo escribir todo eso cada vez que quieras que Festival se ejecute sin problemas, se me ocurrió hacer un script en bash para iniciar eso con un solo comando. Lo primero es que tengais un solo archivo de texto para jugar con Festival. Yo lo que hago es copiar lo que quiero oir siempre en el mismo fichero. Voy a hacer el ejemplo con un fichero que llamaremos mistextos.txt, y aquí será donde peguemos o escribamos el texto que queremos oir. En la misma carpeta, abrimos otro texto para hacer este script:
#!/bin/bash
less mistextos.txt|iconv -f utf-8 -t iso-8859-1|festival --tts
Y llamadlo festi, por ejemplo.
Guardamos y listo. Otra vez en consola, nos vamos a la carpeta donde estén mistextos.txt y festi y tecleamos
sh festi
Voilá! nos ahorramos escribir toda la cadena de antes.
Yo este programa lo uso para escuchar noticias deportivas mientras hago otras cosas (me voy a la noticia, copio el texto, y lo pego en mistextos.txt). Para personas con problemas de visión o que se les cansa la vista al leer mucho de la pantalla Festival les viene perfecto.
Espero que os guste!