Mostrando entradas con la etiqueta Texto a Voz. Mostrar todas las entradas
Mostrando entradas con la etiqueta Texto a Voz. Mostrar todas las entradas

martes, 7 de enero de 2020

¿Cómo instalo el traductor Crow en Ubuntu?

El 10 de octubre de 1945, obligado a renunciar a sus cargos, el Coronel Juan Perón dirige su palabra ante una espontánea multitud de trabajadores en la sede de la Secretaría de Trabajo y Previsión y a través de la Radio. En dicha exposición ante representaciones obreras, expuso cómo instalar y utilizar un traductor en Ubuntu.


(...)
Cnel. Perón: ¡Trabajadores! He hablado recién a los empleados y funcionarios de la Secretaría. Les he dicho como un pedido de mi última voluntad como Secretario de Trabajo y Previsión...

Masa: ¡Noooo!

Perón: ....les he dicho que les pedía que no abandonase nadie los cargos que desempeñan porque se me han presentado numerosísimas renuncias. Yo considero que en esta hora una plaza de empleado en la Secretaría de Trabajo no es un puesto administrativo sino un puesto de combate, y los puestos de combate no se renuncian: ¡se muere en el puesto!.

Esta casa fundada hace un año y medio se ha transformado en la esperanza de los hombres que sufren y trabajan. Y esa esperanza no la debe defraudar nadie porque acarrearía una de las mas grandes desgracias para nuestra Patria.

Hoy señores, despojado de toda investidura les hablo como un simple ciudadano...

Masa: ¡Presidente!, ¡presidente!

Perón: Hablo como simple ciudadano a mis amigos los trabajadores prometiéndoles por última vez desde esta casa todo lo que mi corazón siente por ellos, y todo lo que he de hacer en mi vida por su bien. Ello es lo que quieren algunos partidos políticos para volver, pero, la Revolución encarna en sí las reformas fundamentales que se ha propuesto realizar en lo económico social. Es así que esa trilogía representa las conquistas de esta revolución que está en marcha, y que cualquiera sean los acontecimientos, ya no podrán desvirtuarla en su contenido fundamental. La obra social es de una consistencia firme, que no cederá ante nada, ¡y esa consistencia social la aprecian no los charlatanes, sino los obreros que la sienten!

Masa: [Vítores] ¡Perón, Perón! ¡Perón ha luchado!

Por eso esta obra social que la aprecian solamente los trabajadores en sus verdadero valor, deben ser también los trabajadores quienes la defiendan en todos los terrenos. La secretaría de trabajo y previsión que hace un año y medio comenzara dos enormes tareas: las de organizar esa Secretaría y durante la marcha ir consiguiendo las conquistas sociales que considerábamos de primer orden y más importantes para la clase trabajadora. Sería largo enumerar las conquistas obtenidas en lo que se referiere especialmente al trabajo, a la organización del trabajo, a la organización del descanso, a la organización de las remuneraciones, como asimismo a todo lo que corresponde a la previsión social. Esta tarea realmente ciclópea para realizar en un año y medio, se ha cumplido, y se ha cumplido con este antecedente: se lo ha obtenido con el beneplácito absoluto de la clase obrera, lo que representa un fenómeno difícil de igualar en la historia de las conquistas sociales.

Masa: ¡Presidente! ¡Presidente! ¡Con Perón y con Mercante, la Argentina va adelante!

Perón: Esa previsión social que ha comenzado por realizar una propaganda para el ahorro posible con los mejores salarios, ha propugnado las mutualidades, y ha aumentado el número de los Argentinos con derecho a jubilación en cifras verdaderamente extraordinarias. Entre esas obras cabe destacar la iniciativa de la Confederación de Empleados de Comercio, verdadera obra y verdadera conquista que es y será un orgullo para la previsión argentina.

Masa: Coronel Perón, ¡Ay de mi patria si usted se muere! ¡Presidente! ¡Presidente!

Perón: Hemos defendido desde acá a todas las organizaciones obreras que hemos propugnado y hemos facilitado en su organización. Desde esta casa no se ordenó jamás la clausura de un Sindicato obrero. No se persiguió jamás a un obrero, sino que siempre que nos fue posible pedimos a las autoridades la libertad de los obreros detenidos por distintas causas.

Masa: ¡Es verdad! ¡Incluso todos los comunistas! ¡Perón si, otro no! ¡Perón si, otro no!

Perón: A diferencia de lo que ha sucedido en otros tiempos, las Autoridades han defendido las organizaciones obreras  en vez de molestarlas o perseguirlas. Es así que terminamos de dar un Decreto Ley que se refiere al régimen de las Asociaciones Profesionales. Cuando llegué a la Secretaría de Trabajo y Previsión el primer pedido que recibí de los obreros fue la derogación de un antiguo Decreto del año 43 donde se establecía un régimen de Asociaciones Gremiales de tipo totalitario. El primer decreto que firmé en esta Secretaría fue la derogación de ese Reglamento de las Asociaciones Profesionales, y tengo la satisfacción de decir que el último que firmo hoy es el nuevo Régimen Legal de las Asociaciones Profesionales, muy distinto que el anterior.

En este nuevo régimen de asociaciones profesionales puedo garantir que es una reglamentación de lo más avanzado que existe. Bastaría decir que se ha creado a esa organización obrera un régimen legal tal que el Gobierno - que puede muchas veces intervenir provincias o cualquier otra asociación - de acuerda a este Decreto ley no puede intervenir los Sindicatos obreros.

Masa: ¡Aquí esta, que lo vengan a buscar!

Perón: También dejo firmado un Decreto de una importancia extraordinaria para nosotros. Es el que se refiere al aumento de sueldos y salarios...

Masa: ¡¡¡¡BIEN!!!! ¡Pe-rón! ¡Pe-rón!

Perón: Queda firmado he dicho en mi carácter de Secretario de Estado, y tiene la firma de los ministros de obras públicos y de Marina, el decreto de aumento de salarios móvil vital, y básico, como la Participación de las Ganacias...

Masa: ¡¡¡BIEEEN!!! Perón Presidente! ¡Pe-rón! ¡Pe-rón!
Perón: ...Decreto que no solamente beneficia a los que fueron de esta iniciativa, la confederación de empleados de comercio, sino a todos los trabajadores argentinos!

Masa: [Vítores estruendoso] ¡Coronel, Presidente!

Perón: Y ahora como ciudadano al alejarme de la función pública...

Masa: ¡¡¡Nooooo!!! ¡Perón Presidente! ¡Presidente! ¡Presidente! ¡A la huelga general revolucionaria! ¡Sangre!

Perón: ...Al dejar esta casa que para mí tiene tan gratos recuerdos, debo manifestar una vez más mi crédito reafirmando mi fé en una democracia perfecta como la entendemos aquí.

Masa: ¡Soy peronista! Viva Perón! Aquí están las manos Argentinas coronel... Presidente! Presidente! Es el Pueblo! Es el Pueblo! Es el Pueblo! Huelga revolucionaria! Sangre! Armas!

Dentro de esa fé democrática fijamos nuestra posición incorruptible e indomable, frente a la oligarquía!


Masa: [Estruendosos vítores] Pe-rón! Pe-rón! ¡Presidente! ¡Presidente! ¡Viva la huelga general revolucionaria! ¡Un millón de votos! ¡Un millón de votos!

Y si no les queda claro, se lo traducimos. Nadie duda que la traducción de idiomas asistida por computadora fue una de las primeros logros que tuvimos. Ya desde los tiempos del Spanish Assistant o del Globalink utilizaba este tipo de softwares, pero hoy vengo a firmar un decreto ley que presenta una superior solución ideológica.

Se trata de un traductor simple y liviano liberado bajo GPLv2, que permite traducir usando los servicios de Google, Yandex o Bing, a través del una aplicación nativa de escritorio capaz de operar en Ubuntu: ¡el Crow Translate!

Para instalar Crow Translate ingresamos:

sudo apt update ;
sudo apt install libqgsttools-p1 libqt5multimedia5 libqt5multimedia5-plugins libqt5multimediawidgets5 qtgstreamer-plugins-qt5 liblept5 libtesseract4 ;

cd ~/Descargas/ ;
wget https://github.com/crow-translate/crow-translate/releases/download/2.8.1/crow-translate_2.8.1_amd64.deb ;
sudo dpkg -i crow-translate_2.8.1_amd64.deb ;

Una vez instalado el paquete, podremos ejecutar el programa. Para ello vamos a Aplicaciones / Oficina / Crow Translate.

La aplicación normalmente se inicia minimizada, y dispone ícono en en panel superior de Ubuntu. Lo primero que podemos hacer es configurar sus útiles opciones. Para ello en dicho panel superior, podremos clic con el botón derecho del mouse sobre el icono de Crow Translate:
...y desde el menú contextual que aparece, elegimos la opción Settings.
La ventana Settings nos permite configurar el uso del programa. En la parte izquierda consta de las categorías, y en la derecha las opciones. Normalmente el programa se utiliza minimizado, a través de una serie de atajos de teclas. En mi caso me gusta que arranque el programa directamente maximizado. Para ello escojo la categoría General, y tildamos "Show tray icon" y destilados "Start Minimized" ("Iniciar minimizado") y "Launch at Startup" ("Iniciar al Arrancar el sistema"). Naturalmente, si quisiéramos que el comportamiento del traductor fuese iniciar minimizado toda vez que arranca el sistema, deberíamos dejar tildadas estas dos últimas opciones.
En la categoría Translation, debemos indicarle cuál motor de traducción queremos emplear, así como los idiomas que preferimos. Para utilizar el inglés, en el desplegable Primary Translation Language escogemos "Spanish" ("Español"), y en el desplegable "Secondary Translation Language" lo dejamos en Inglés ("English").

Aceptamos los cambios presionando Ok, y ya podremos lanzar la aplicación. Para ello en el ícono de Crow Translate del panel superior, escogemos "Show windows" ("Mostrar ventana").

Esto nos presentará la ventana de trabajo del Crow Translate, que es similar a la que presenta la web Google Translate. Se trata de una interfaz lado a lado. En la ventana izquierda tendremos el texto original, y en la derecha la traducción, aunque podremos intercambiar el órden de la traducción con la flecha doble.
Si utilizamos el servicio de Google Translate, la traducción será automática, pero podremos realizarla a mano por medio de Ctrl+Enter.

En la parte inferior contaremos con botones que activan la reproducción del habla texto a voz, capaz de operar a través de Google Translate.

El programa también puede obrar por medio de combinaciones de los atajos de tecla programables desde la interfaz. Debemos tener en cuenta de no sobreponer dichas combinaciones a otras utilizadas por nuestro escritorio de Ubuntu. Por tal motivo, pueden modificarse o - incluso - desactivarse completamente.

Las combinaciones más utilizadas son:

Comb. de Teclas Descripción
Ctrl+Alt+e Traduce el texto seleccionado
Ctrl+Alt+s Habla el texto seleccionado.
Ctrl+Alt+f Habla la traducción del texto seleccionado
Ctrl+Alt+g Detiene el habla
Ctrl+Alt+c Muestra la ventana de Crow Translate

Como vemos, el programa es fácil de operar de forma casual, pero también está bien preparado para utilizarlo para combinar sus resultados con programas de edición y procesamiento de texto. Los resultados provistos por Google Translate están - al día de hoy - bastante logrados.

Masa: ¡Aquí está! ¡Que lo vengan a buscar!

sábado, 13 de septiembre de 2014

¿Cómo puedo integrar texto hablado a la consola de Ubuntu?

En enero de 1953, Juan Perón expuso sobre la necesidad del hombre para expresarse en la Comunidad, mientras que explicaba cómo utilizar diferentes alternativas para convertir texto a voz sintetizada en Ubuntu, tanto desde la interfaz gráfica de usuario como la interfaz de línea de comandos.

¡Compañeros!

Es indudable que el hombre ha de saber expresar sus deseos y sus necesidades a quienes le rodean. Tal es el requerimiento de la vida en una Comunidad Organizada. Un Conductor, como condición especial de Hombre, requiere de esto en un grado supremo, pues ha de poder conducir la conciencia de los hombres en pos de un objetivo que no ha de ser otro que el de un destino de grandeza para la Patria en la que habita.

Muchas veces, de tanto hablar, uno puede quedarse sin voz, y es en esas condiciones en donde se anhela poder contar con algo que hable por uno.
Este deseo era algo de la ciencia ficción, de las historietas, pero gracias al Justicialismo, hoy es una audible realidad: para la utilidad que se nos ocurra podremos hacer uso de esta característica, de una manera gratuita y completamente libre.

(Aplausos)

¡Vean señores! Dicha oportunidad la encontraremos resuelta con simpleza, tanto en la interfaz gráfica de nuestro sistema operativo libre, como en su línea de comandos.

En la interfaz gráfica que he legado al Pueblo disponemos del sencillo Sintetizador de Voz eSpeak. Esta aplicación cuenta con un motor de sintetización relativamente aceptable y que nos quitará del apuro al pronunciar un texto sin demasiado revuelo.

Para instalarlo en nuestro GNU con Linux distribuido como Ubuntu, podemos abrir una terminal, e ingresar el siguiente Comando de Organización:

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

El sistema nos solicitará nuestra contraseña y se encargará de traer telemáticamente la paquetería necesaria. En caso de contar con la interfaz de control Unity podremos encontrar la aplicación buscando bajo el nombre de "espeak" o "Sintetizador de Voz eSpeak". Si usamos el escritorio Gnome, podremos localizarlo en Aplicaciones / Sonido y Video / Sintetizador de Voz eSpeak.

Al iniciar, el Sintetizador de Voz eSpeak se presentará en blanco.


Para hablar un texto, simplemente hemos de escribirlo o pegarlo en la ventana de eSpeak, y presionar el botón Reproducir. El programa comenzará a leer y nos indicará la palabra leida. Asimismo, podremos detener o pausar el texto mientras se lo sintetiza.

El motor de eSpeak es multiidioma, pudiéndose escoger el mismo mediante un menú desplegable en la parte inferior izquierda de su interfaz. Si activamos la función Spanish tendrá una pronunciación española, pero si elegimos Spanish Latin American tendremos unos ligeros cambios fonéticos (no pronunciará la suave "ce ibérica", entre otros). La velocidad de sintetización también puede regularse. Por ejemplo, podríamos usar un valor de 160 para tener un valor para arrancar, y subir o bajar la velocidad en caso de ser necesario.

En ambos casos podremos escoger en sus preferencias si deseamos que se sintetice una voz de hombre o de mujer (se cambiará el tono del sintetizador). Podremos escoger no pronunciar los signos de puntuación, pronunciar algunos de ellos, o pronunciarlos a todos.

El tono robotizado asemeja a la voz de Richard Stallman, pero aún así eSpeak podrá ser de utilidad para el propósito de leer un texto, y podría complementar un sistema destinado a una persona con dificultades visuales.

Ahora bien, ¿qué sucede si deseamos emplear la consola de texto como Terminal?

Para tales menesteres he explicado ya cómo utilizar Festival, un sintetizador de habla liberado bajo licencia BSD. Con algo de ingenio, sabemos que dicho sintetizador puede utilizarse para reproducir mensajes desde la línea de comandos. Así, podremos usarlo para dejar mensajes hablados o reproducir los mismos en un entorno de red local.

Sin embargo, tal programa requiere el inconveniente de instalar previamente el software de síntesis hablada en el equipo cliente, e idealmente hacer lo mismo con un fichero de librería de voces para hacerlo más realista.

Para evitarnos dicho incordio, podríamos utilizar un atajo al servicio de lectura de Google, el cual cuenta con sintetizador de voz. El mismo cuenta con un motor de pronunciación española, pero que puede ser interesante para la mayoría de las opciones de corta extensión.

Por ejemplo, podríamos editar un script de Bash que utilice el reproductor mplayer (normalmente ya instalado en Ubuntu y en muchas otras distros) para reproducir el resultado del habla descargado de dicha web.

El inconvieniente es que - por una limitación de ancho de banda, para no reemplazar productos específicos, y para evitar abusos - dicho servidor solamente pronuncia cadenas de texto inferiores a los 100 caracteres.

Si decidimos atenemos a dicha limitación, podremos crear fácilmente un "script parlante" con el editor Nano, ingresando:
nano hcorto

...en su interior pegaremos el siguiente código fuente:

#!/bin/bash
# hcorto ("Hablar corto")
# Script para reproducir un mensaje sintetizado hablado
# de menos de 100 caracteres.
say() { local IFS=+;/usr/bin/mplayer -ao alsa -really-quiet -noconsolecontrols "http://translate.google.com/translate_tts?tl=es&q=$*"; }
say $*

Luego guardamos el código con Ctrl+o y saldremos del editor Nano con Ctrl+x. Acto seguido le asignamos permisos de ejecución con:

chmod +x hcorto

No bien completados estos pasos, podremos hacer uso del script parlante para terminal con el comando ./hcorto y agregando el texto a reproducir. Por ejemplo:

./hcorto obra del primer plan quinquenal

...y el sistema recitará dicha frase de forma sintetizada.

Nota: Si el sistema nos devolviese la frase "mplayer: could not connect to socket", significa que no se puede encontrar el sistema LIRC de control remoto por infrarrojos. Si no deseamos que mplayer cargue tal mando a distancia porque no lo tenemos ni lo usamos, podríamos desactivarlo y dejar de recibir dicha advertencia. Simplemente ingresamos:

sudo nano /etc/mplayer/mplayer.conf

...y le agregamos al final de todo la siguiente línea:

nolirc=yes

Luego grabamos y salimos con Ctrl+o y Ctrl+x

Ahora bien, algunos ejemplos pueden ilustrar la practicidad del script hcorto, pues un ejemplo suele aclararlo todo, como decía Napoleón.

Supongamos que queremos realizar una tarea que ocupa un tiempo lo suficientemente largo como para desatender el equipo, pero quisiéramos recibir una alerta sonora al finalizar, para volver a retomarlo. Podríamos fácilmente encadenar la ejecución de tal comando a la ejecución del script hcorto con un mensaje hablado, de manera de poder alertarnos.

Por ejemplo, si quisiéramos descargar con el comando wget el libro Doctrina Peronista, de 12Mb y que se nos avise cuando finalice, podríamos usar el script hcorto, uniéndolo con el eslabón && ("doble and" el cual significaría "y si los comandos anteriores fueron exitosos"). Sería de la siguiente manera:

wget http://www.generalperon.com/doctrina%20peronista.pdf && ./hcorto Descarga completa!

En otro ejemplo, si tuviésemos instalado el programa youtube-dl podríamos querer usarlo para descargar un video desde dicho servicio hasta nuestra carpeta de /Descargas. Gracias al encadenado concursivo de comandos con &&, dispararemos hcorto para que nos avise al terminar. Lo podríamos hacer ejecutando el siguiente comando (en el cual podremos reemplazar la URL del video por la deseada):

cd ~/Descargas/ && youtube-dl -l http://www.youtube.com/watch?v=ho6XfbkMOL4 && ./hcorto Descarga de video finalizada. Viva el Justicialismo!

Ahora bien. ¿Qué sucede si el texto excede los cien caracteres? En tal caso, podremos programar un script que se encargue de dividir dicho texto en líneas inferiores a los 100 caracteres, y las vaya enviando progresivamente al servidor de pronunciación de Google. Ello se podrá hacer con un script que llamaremos hlargo ("hablar largo")

Para ello ingresaremos el siguiente Comando de Organización:
nano hlargo


Y le pegaremos el siguiente código fuente:

#!/bin/bash
#########################################
# Script divisor de TTS de Dan Fountain #
# TalkToDanF@gmail.com                  #
#########################################

INPUT=$*
STRINGNUM=0

ary=($INPUT)
for key in "${!ary[@]}"
do
SHORTTMP[$STRINGNUM]="${SHORTTMP[$STRINGNUM]} ${ary[$key]}"
LENGTH=$(echo ${#SHORTTMP[$STRINGNUM]})
#echo "word:$key, ${ary[$key]}"
#echo "adding to: $STRINGNUM"
if [[ "$LENGTH" -lt "100" ]]; then
#echo Comenzando una línea nueva
SHORT[$STRINGNUM]=${SHORTTMP[$STRINGNUM]}
else
STRINGNUM=$(($STRINGNUM+1))
SHORTTMP[$STRINGNUM]="${ary[$key]}"
SHORT[$STRINGNUM]="${ary[$key]}"
fi
done

for key in "${!SHORT[@]}"
do
#echo "line: $key is: ${SHORT[$key]}"

echo "Rperoduciendo línea $(($key+1)) de $(($STRINGNUM+1))"
mpg123 -q "http://translate.google.com/translate_tts?tl=es&q=${SHORT[$key]}"
done

Como en los casos anteriores, guardaremos el contenido del fichero con Ctrl+o y Ctrl+x, y luego le asignamos permso de ejecución con:

chmod +x hlargo

Ahora ya podremos ejecutar con ./ el divisor/enviador de frases. Lo haríamos de la siguiente manera:

./hlargo esta es una prueba de habla con un texto largo. El sistema va a cortar el texto en el lugar requerido para que no exceda el largo permitido en el servidor del sintetizador de voz externo.