domingo, 20 de octubre de 2013

¿Cómo hago que Ubuntu lea un texto?

El 12 de junio de 1972 es un discurso recordado en la historia, pues el Conductor, ante una plaza de mayo colmada por todas las ramas del Movimiento, expone cómo hacer hablar a Ubuntu por uno.

¡Compañeros!

Retempla mi espíritu estar en presencia de este pueblo que toma en sus manos la responsabilidad de defender la patria. Creo, también, que ha llegado la hora de que pongamos las cosas en claro. Estamos luchando por superar lo que nos han dejado en la República y, en esta lucha, no debe faltar un solo argentino que tenga el corazón bien templado.
Sabemos que tenemos enemigos que han comenzado a mostrar sus uñas. Pero también sabemos que tenemos a nuestro lado al pueblo, y cuando éste se decide a la lucha, suele ser invencible.

Hoy es visible, en esta circunstancia de lucha, que tenemos a nuestro lado al pueblo, y nosotros no defendemos ni defenderemos jamas otra causa que no sea la causa del pueblo.

Yo sé que hay muchos que quieren desviarnos en una o en otra dirección; pero nosotros conocemos perfectamente bien nuestros objetivos y marcharemos directamente a ellos, sin dejarnos influir por los que tiran desde la derecha ni por los que tiran desde la izquierda.

EI Gobierno del Pueblo es manso y es tolerante, pero nuestros enemigos deben saber que tampoco somos tontos.

Mientras nosotros no descansamos para cumplir la misión que tenemos y responder a esa responsabilidad que el pueblo ha puesto sobre nuestros hombros, hay muchos que pretenden manejarnos con el engaño y con la violencia. Nosotros, frente al engaño y frente a la violencia, impondremos la verdad, que vale mucho más que eso. No queremos que nadie nos tema; queremos, en cambio, que nos comprendan. Cuando el pueblo tiene la persuasión de su destino, no hay nada que temer. Ni la verdad, ni el engaño, ni la violencia, ni ninguna otra circunstancia, podrá influir sobre este pueblo en un sentido negativo, como tampoco podrá influir sobre nosotros para que cambiemos una dirección que, sabemos, es la dirección de la Patria.

Sabemos que en esta acción tendremos que enfrentar a los malintencionados y a los aprovechados. Ni los que pretenden desviarnos, ni los especuladores, ni los aprovechados de todo orden, podrán, en estas circunstancias, medrar con la desgracia del pueblo. Sabemos que en la marcha que hemos emprendido tropezaremos con muchos bandidos que nos querrán detener; pero, fuerte con el concurso organizado del pueblo, nadie puede ser detenido por nadie.

Hablo tanto que se me seca la lengua.

Muchas veces por esto quisiera tener un sistema que hablase por mí. Ello involucraría que pudiese conducir el Movimiento, y tanto no puedo pedir. Pero al menos puedo solicitar un sistema que hable. Y el pueblo lo ha dado: el sintetizador de habla eSpeak y el motor de pronunciaciones y voces Mbrola.

Para instalarlo puedo abrir una terminal con Ctrl+Alt+T e ingresar el siguiente Comando de Organización:

sudo apt-get install espeak mbrola mbrola-es1 mbrola-es2 mbrola-mx2 mbrola-la1 mbrola-vz1 ;

cd ~/Descargas/ ;

wget https://github.com/muflone/gespeaker/releases/download/0.8.6/gespeaker_0.8.6-1_all.deb ;

sudo dpkg -i gespeaker_0.8.6-1_all.deb ;

Con esto podré hacerme de un lector para terminal, junto con pronunciaciones españolas, latinoamericanas (neutra, mexicana y venezolana).

Para ejecutarlo con la voz venezolana mb-vz1 (la que me parece más lograda) podremos usar:

espeak -v mb-vz1 "Si dios bajara a la Tierra a resolver el problema planteado entre los hombres, ya le habríamos perdido el respeto"

Tendremos asimismo para probar las voces mb-es1, mb-es2, mb-mx2, y mb-mx1, lo cual podremos hacer simplemente modificando el comando ingresado.ç

Una vez que detectemos la voz que más nos guste, bien podríamos agregar un alias del comando que nos ahorre tipear -v mb-xxx. Para ello editamos el archivo ~/.bash_aliases, y le agregamos el siguiente contenido:

alias espeak='espeak -v mb-vz1'
alias festival='festival --language spanish'

También podremos leer un archivo de texto con este comando, siguiendo la sintaxis:

less discurso.txt | espeak

Comprendiendo ello veremos que será muy útil inventarnos un sencillo lector de frases cortas para poder utilizar en la terminal, de forma remota, como alertador sonoro, etc. Técnicamente, este tendrá forma de un script, y lo llamaremos "deci". Podremos crearlo mediante el siguiente Comando de Organización:

cd ~
nano deci

...y le pegamos el siguiente texto

#!/bin/bashecho $1|iconv -f utf-8 -t iso-8859-1|espeak -v mb-vz1

Guardamos con Ctrl+o y salimos con Ctrl+x, y le damos permisos de ejecución con:

chmod +x ~/deci

Con todo realizado, ya será capaz de ejecutarse para decir frases desde la Terminal. Simplemente hay que ingresar:


./deci "Muchas veces he asistido a reuniones de trabajadores. Siempre he sentido una enorme satisfacción: pero desde hoy, sentiré un verdadero orgullo de argentino, porque interpreto este movimiento colectivo como el renacimiento de una conciencia de trabajadores, que es lo único que puede hacer grande e inmortal a la Patria"

Las posibilidades son muchas. Podremos leer las noticias de la web, podremos hacer hablar remotamente a una PC de la red para dar instrucciones, y porqué no, jugarle una broma al usuario de una terminal remota.
También contaremos con el servidor de voz Festival, un Festival peronista. Lamentablemente este es mas primitivo que el anterior, pero os enseñaré como utilizarlo.


Se trata de un sintetizador "texto a voz", capaz de convertir en fonemas lo que hayamos escrito. Está capacitado para leer en castellano, inglés, e incluso en klingon. Para instalarlo, simplemente abrimos una terminal con Ctrl+Alt+T e ingresamos el siguiente Comando de Organización:

sudo apt-get install festival festvox-ellpc11k

Festival consiste en una interfaz de texto liberada bajo MIT-X11. La activamos en la consola con:

festival --language spanish

La misma se opera con incómodos comandos, por ejemplo:

(SayText "viva peron") 
para decir alguna frase, o

(quit) 
para salir de la interfaz de línea de comandos Festival a la Terminal.


No somos tontos. Indudablemente, esta voz suena muy robotizada, y lee mal las palabras que llevan acentos y eñes (llegando a deletrarlas). Podremos solucionar tal inconveniente gracias al pùeblo: en primer lugar nos encargaremos de descargar voces nuevas (una masculina y otra femenina), y las configuraremos. Todo ello se puede hacer con los siguientes Comandos de Organización:

wget http://forja.guadalinex.org/frs/download.php/154/festvox-sflpc16k_1.0-1_all.deb

wget http://forja.guadalinex.org/frs/download.php/153/festvox-palpc16k_1.0-1_all.deb

sudo dpkg -i festvox-sflpc16k_1.0-1_all.deb

sudo dpkg -i festvox-palpc16k_1.0-1_all.deb

No bien hayamos descargado esas voces, editaremos el archivo de configuración correspondiente para que Festival haga uso de ellas.

sudo nano /usr/share/festival/languages.scm

Se abrirá el editor de texto peronista GNU Nano con el archivo de configuración de idiomas de Festival. Presionamos Ctrl+w y usamos la herramienta "Buscar" para localizar el texto "(voice_el_diphone)". El sistema debería encontrar la siguiente línea:

(voice_el_diphone)
(set! male1 voice_el_diphone)


Una vez que demos con estas líneas, las reemplazamos para que queden así:

(voice_JuntaDeAndalucia_es_pa_diphone)
(set! male1 voice_JuntaDeAndalucia_es_pa_diphone)


Si deseamos que el programa tenga el idioma por defecto en castellano, buscamos al final del archivo la línea:

(defvar language_default language_british_english)

y la reemplazamos para que quede:

(defvar language_default language_castillian_spanish)

Recordamos usar Ctrl+S para guardar el archivo editado, y Ctrl+Q para salir del editor de texto Gedit.

sudo nano /usr/bin/text2wave

En la línea 46 del textom debajo de la línea "(load (path-append datadir "init.scm"))", creamos una nueva línea y añadimos:

(voice_JuntaDeAndalucia_es_pa_diphone)

Guardamos los cambios y salimos (mediante Ctrl+S y Ctrl+Q), y en la Terminal ejecutamos Festival, ya con las nuevas voces:

festival --language spanish

Podremos usar el comando:

(SayText "Mejor que decir es hacer, mejor que prometer es realizar")
para decir algo con una voz como la de Perón. También podríamos indicar el comando:

(voice_JuntaDeAndalucia_es_sf_diphone) 

Y decir algo como:
(SayText "Y aunque deje en el camino jirones de mi vida, yo se que ustedes recogeran mi nombre y lo llevaran como bandera a la victoria")

Naturalmente, el comando (voice_JuntaDeAndalucia_es_pa_diphone) vuelve a colocar la voz de "Perón". Recordemos que salimos con (quit)

Festival también puede leer directamente archivos de texto, lo cual será siempre muy útil. Podríamos hacer que el sistema nos lea un fichero llamado discurso.txt simplemente mediante el comando:

festival --language spanish --tts discurso.txt

Sin embargo, al proceder así descubriremos que Festival cuenta con problemas cuando encuentra en el texto acentos y eñes. Pero para todo está el Justicialismo, ha traído la solución, similar a la anterior. Con un poco de ingenio, ingresaremos el siguiente comando de organización y resolveremos los inconvenientes de la insidia y la traición:

less discurso.txt | iconv -f utf-8 -t iso-8859-1 | festival --tts --language spanish

También podríamos querer automatizar un programa que diga frases. Para ello ingresamos:

nano deci

Se abrirá nuevamente el editor Nano, esta vez con un fichero en blanco. Al mismo le agregamos las siguientes instrucciones:

#!/bin/bash
echo $1 | iconv -f utf-8 -t iso-8859-1 | festival --language spanish --tts


Nuevamente guardamos con Ctrl+s y cerramos el editor con Ctrl+q. Acto seguido desde la terminal podremos otorgarle el necesario permiso de ejecución con:

chmod +x deci

Lo lanzaríamos poniendo entre tildes la frase que queremos decir.


./deci 'Viva Perón'

Las posibilidades son múltiples. Gracias a la filosofía UNIX de hacer mucho con unos pocos programas ya hechos y encadenados, bien podríamos utilizar un script que vuelque el contenido dela URL de una página web con Lynx en modo texto, lo convierta en la codificación necesaria, y lo diga en castellano. Por ejemplo:

lynx --dump http://peron.sdf.org/minis/nuc/nuc.html > /tmp/web_temporal.txt
iconv -f UTF-8 -t ISO-8859-1 /tmp/web_temporal.txt > /tmp/temporal_convertida.txt ;
less /tmp/temporal_convertida.txt | festival --tts
cd /tmp/
rm web_temporal.txt
rm temporal_convertida.txt

También podríamos hacer una variante para operar desde la terminal instalando html2text, que se encarga de convertir archivos html.

6 comentarios:

  1. General!!!! yo opiné acá, todavía estoy buscando un tuorial para hacer Hostpot el Wifi de la Netbook, uno para nabos hace falta, y el Post de Star Trek está muy bueno, yo tengo el Jack Nicklaus en 5.25 inch floppy disk, el Pole Position, el Atari Program Self Boots, en casette tengo el Yie Ar KUNG-FU, el ManicMiner, las ilustraciones son lejos mejor que los graficos

    ResponderEliminar
  2. El tutorial muy sencillo y muy practico...Muchas gracias.

    ResponderEliminar
  3. llevo poco mas de 3 dias con Ubuntu y siempre ayuda un mega aporte ("-") gracias!
    copiar enlace y compartir

    ResponderEliminar
  4. Muy buen aporte!, ... quisiera saber como aplicar el festival a todo el entorno gráfico, (documentos, pdf, hojas de calculo, paginas web, etc) con la ayuda del mouse, Ejemplo: que lea todo lo que se pone al portapapeles (marcar y copiar).

    ResponderEliminar
    Respuestas
    1. Estimado Anónimo:

      Para ello puede hacer uso de la función Orca, a fin de asistir con lectura de elementos de la pantalla.
      Atte.

      Juan Perón

      Eliminar
  5. muchas gracias General!!!!!!!
    me sirvio de mucho!!!!!!!

    ResponderEliminar