Aunque han escrito bastante sobre este tema, les explico como podemos reproducir de texto a audio usando Festival, es importante destacar que utilizaremos el terminal/consola para realizar la reproducción y Debian (Squeeze o Wheezy) como sistema operativo. Ahora bien, para poder hacer lo que queremos, debemos instalar primero algunos paquetes, por lo que abriremos un terminal (Aplicaciones > Accesorio > Terminal), nos logueamos como superusuario (root) y escribimos lo siguiente:
root@debian:/home/joenco#> aptitude install festival festlex-cmu festlex-poslex festvox-ellpc11k festvox-kallpc16k
y ya tendremos lo necesario para lo que queremos hacer.
Para verificar que todo va bien, escribamos “festival” en el terminal y luego lo siguiente:
festival> (SayText “Hello, how are you?”)
esto debería reproducir el texto en inglés, si es así, vamos por buen camino (es de aclarar que todas las instrucciones deben ir entre parenteisis, así como esta en el ejemplo), para salir solo escribiremos (quit).
Ahora bien, vamos hacer que reproduzca el texto en español, por lo que escribiremos:
joenco@debian:$> festival –language spanish
entramos de nuevo a festival y colocamos:
festival> (SayText “Hola amigo, como te va?”)
Buenisimo! ya nos verbal iza en español, instalemos otras voces para que se escuche mejor.
Se pueden descargar las voces femenina y masculina desde aquí:
1. festvox-palpc16k_1.0-1_all.deb
2. festvox-sflpc16k_1.0-1_all.deb
esos enlaces nos descargara la voz femenina y masculina, las cuales instalamos de la siguiente forma, abrimos un terminal/consola y como superusuario(rot), hacemos:
root@debian:/home/joenco#> dpkg -i festvox-palpc16k_1.0-1_all.deb
root@debian:/home/joenco#> dpkg -i festvox-sflpc16k_1.0-1_all.deb
o para instalar todo de una vez:
root@debian:home/joenco#> dpkg -i *.deb
Veamos si todo funciona como debe, escribamos festival en el terminal y coloquemos los siguientes comandos:
festival> (voice_JuntaDeAndalucia_es_pa_diphone)
festival> (SayText “Mucho mejor! Es la voz masculina”)
y ahora con la voz femenina:
festival> (voice_JuntaDeAndalucia_es_sf_diphone)
festival> (SayText “Mucho mejor! Es la voz femenina”)
se debería escuchar una voz en español, si es así, vamos por la vía correcta, por lo que dejaremos alguna de ellas por defecto y lo haremos de la siguiente manera, abrimos un terminal/consola como superusuario y abriremos el archivo /etc/festival.scm:
root@debian:/home/joenco#> gedit /etc/festival.scm
y agregamos al final:
(set! voice_default ‘voice_JuntaDeAndalucia_es_sf_diphone)
perfecto, ya nos reproducirá los texto con la voz femenina.
Ahora para reproducir un archivo de texto que tengamos en nuestro computador, solo debemos escribir en el terminal/consola:
joenco@debian:$> festival –tts texto_a_reproducir.txt
lo cual nos reproducirá lo que contenga el archivo, pero si nos damos cuenta, al reproducir un texto que tenga acentos, nos hará una reproducción extraña, o sea, nos va a deletrear la palabra, así que les recomiendo lo siguiente, vamos a crear el siguiente archivo llamado reproducir (podemos colocar el nombre que queramos) y le colocamos dentro:
#!/bin/bash
echo $1|iconv -f utf-8 -t iso-8859-1|festival –tts
guardamos, le damos permiso de ejecución y lo movemos al directorio /usr/bin/ (esto como root):
root@debian:/home/joenco#> chmod a+x reproducir
root@debian:/home/joenco#> mv reproducir /usr/bin/
y funciona así:
joenco@debian:#> reproducir “esta es la canción de la nueva generación”
solo falta saber como hacerlo para que lo haga en archivos de texto, por los momentos es un adelanto.
Para usar voz con mbrola y en inglés, pueden revisar:
http://saser0324150.blogspot.com/2007/09/tts-text-to-speech-usando-festival-y.html
otro sitio de interés:
http://www.ubuntu-es.org/node/40952#.UOrrxFMtuws
para información de festival:
1. http://www.cstr.ed.ac.uk/projects/festival/
Para voces de mbrola:
http://tcts.fpms.ac.be/synthesis/mbrola.html
Voces de festival:
http://forja.guadalinex.org/frs/?group_id=21
Nota: al instalar las voces en inglés de mbrola, el lector de pantalla Orca la reconoce sin problema, pero al hacerlo con el español lo mismo, no la reconoce, sería bueno saber si alguno que lo haya hecho lo pueda comentar.
Saludos!!
