Cómo hacer para que el PC hable en Fedora 14

foto de 3 robots

En Fedora 14, queremos que el PC lea texto y lo diga por los altavoces en español.
Por defecto el programa habla en inglés.

Necesitamos instalar el paquete Festival y de paso el idioma español y de paso algunos otros programas que usaremos.

yum install festival flite lame vlc
yum install festvox-kal-diphone.noarch festvox-ked-diphone.noarch hispavoces-pal-diphone.noarch hispavoces-sfl-diphone.noarch

Tecleamos festival para entrar en el modo interactivo donde nos pide los comandos, hay que entrarlos entre parentesis ()

Para ver la lista de voces instalada:

(voice.list)


Obtenemos el siguiente resultado:

(JuntaDeAndalucia_es_sf_diphone
 JuntaDeAndalucia_es_pa_diphone
 ked_diphone
 kal_diphone
 nitech_us_slt_arctic_hts)

Seleccionamos una voz:

(voice_JuntaDeAndalucia_es_pa_diphone)

Probamos para que diga una frase:

(SayText "hola, esto es una prueba")

El problema es que desde el modo interactivo los acentos y eñes, no los entiende. Por lo que debemos usar la linea de comandos directamente:

echo "Hoy en día hay que darle caña." | iconv -f utf-8 -t iso-8859-1 | festival --tts --language spanish
SIOD ERROR: unbound variable : voice_el_diphone

Como se puede ver, ahora nos da un error ya que intenta usar una voz española que no encuentra, y como no hay forma de pasar un parámetro, debemos modificar un fichero con el usuario root para solucionarlo.

/usr/share/festival/lib/voices.scm

En este fichero buscaremos la siguiente sección:

; This list has been reordered for Fedora, since we want to have the option
; to only install a smallish voice by default. And the slt voice is nice. 
(defvar default-voice-priority-list 
  '(nitech_us_slt_arctic_hts
    nitech_us_awb_arctic_hts
    nitech_us_bdl_arctic_hts
    nitech_us_clb_arctic_hts
    nitech_us_jmk_arctic_hts
    nitech_us_rms_arctic_hts

Y la dejaremos de la siguiente manera, añadiendo las dos lineas de JuntaDeAndalucia_es

; This list has been reordered for Fedora, since we want to have the option
; to only install a smallish voice by default. And the slt voice is nice. 
(defvar default-voice-priority-list 
  '(JuntaDeAndalucia_es_pa_diphone
    JuntaDeAndalucia_es_sf_diphone
    nitech_us_slt_arctic_hts
    nitech_us_awb_arctic_hts
    nitech_us_bdl_arctic_hts
    nitech_us_clb_arctic_hts
    nitech_us_jmk_arctic_hts
    nitech_us_rms_arctic_hts

Ahora ya podemos oir frases en español con acentos:

echo "caña al camión" | iconv -f utf-8 -t iso-8859-1 | festival --tts

Podemos generar un archivo de sonido con el resultado:

echo "hola camión" | iconv -f utf-8 -t iso-8859-1 | text2wave -o resultado.wav

Podemos pasar el resultado a formato .mp3

lame resultado.wav resultado.mp3

Con esto nos genera un fichero resultado.mp3 en el mismo directorio.
Ahora queremos que lea un fichero de texto con varias lineas

cat texto.txt | iconv -f utf-8 -t iso-8859-1 |festival --tts

Y para terminar queremos generar un fichero .mp3 a partir de un fichero de texto:

cat a.txt | iconv -f utf-8 -t iso-8859-1 | text2wave -o resultado.wav && lame resultado.wav resultado.mp3

Para oir el resultado podemos usar el programa vlc desde consola con en comando:

cvlc resultado.mp3

Ctrl-C para terminarlo.

Con esto podemos generar un .mp3 a partir de cualquier fichero de texto.

2 Responses to “Cómo hacer para que el PC hable en Fedora 14”

  1. Luis Says:

    PERO QUE BUEN POST, MUCHISISISISISISISMAS GRACIAS AMIGO, TE PASASTE TODO ME SALIO A LA PERFECCION Y SOY MUY FELIZ, GRACIAS

  2. Luis Says:

    Unsa sola pregunta, por favor ayudame para ser completamente alegre, ¿como se controla la velocidad del lector de voz? porfa espero tu respuesta.

Leave a Reply