El día de hoy comparto con Uds. un script muy útil para convertir un texto a voz utilizando el motor de voz de Google. La ventaja principal de este script es que “evade” el límite de 100 bytes impuesto por Google. En realidad, para ser honestos, respeta este límite pero envía todas las líneas en forma automática con lo cual dicha limitación pasa desapercibida para el usuario. Los más exigentes notarán, no obstante, que la conversión no es de la misma calidad que la que podemos obtener en Google Translate, principalmente debido a este límite y que no es posible pasar el texto entero de un sólo golpe. Como punto positivo, cabe agregar que este script también permite especificar el idioma del texto a convertir.
Hecha la aclaración, veamos cuáles son los pasos a seguir.
Pasos a seguir
1.- Crear un archivo con el nombre t2s.sh.
2.- Copiar el siguiente contenido:
#!/bin/bash
#################################
# Speech Script by Dan Fountain #
# Modified by Pablo Castagnino #
# [email protected] #
#################################
INPUT=$*
STRINGNUM=0
ary=(${INPUT:2})
echo "---------------------------"
echo "Speech Script by Dan Fountain"
echo "[email protected]"
echo "---------------------------"
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 starting new line
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 "Playing line: $(($key+1)) of $(($STRINGNUM+1))"
mpg123 -q "http://translate.google.com/translate_tts?tl=${1}&q=${SHORT[$key]}"
done
3.- Otorgar permisos de ejecución al script:
sudo chmod +x t2s.sh
4.- Ejecutar el script pasando como parámetros: a) el código del idioma correspondiente al texto, b) el texto que se desea convertir. Por ejemplo:
./t2s.sh es Este es un texto muy interesante para convertir.
Consejo: algunos emuladores de terminal permiten pegar texto con sólo arrastrarlo. O sea que es posible seleccionar un texto en Firefox y arrastrarlo al terminal.
Eso es todo, espero que lo disfruten.
La entrada Script: texto a voz (Google) desde el terminal aparece primero en Desde Linux.

Continúar leyendo...
Hecha la aclaración, veamos cuáles son los pasos a seguir.
Pasos a seguir
1.- Crear un archivo con el nombre t2s.sh.
2.- Copiar el siguiente contenido:
#!/bin/bash
#################################
# Speech Script by Dan Fountain #
# Modified by Pablo Castagnino #
# [email protected] #
#################################
INPUT=$*
STRINGNUM=0
ary=(${INPUT:2})
echo "---------------------------"
echo "Speech Script by Dan Fountain"
echo "[email protected]"
echo "---------------------------"
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 starting new line
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 "Playing line: $(($key+1)) of $(($STRINGNUM+1))"
mpg123 -q "http://translate.google.com/translate_tts?tl=${1}&q=${SHORT[$key]}"
done
3.- Otorgar permisos de ejecución al script:
sudo chmod +x t2s.sh
4.- Ejecutar el script pasando como parámetros: a) el código del idioma correspondiente al texto, b) el texto que se desea convertir. Por ejemplo:
./t2s.sh es Este es un texto muy interesante para convertir.
Consejo: algunos emuladores de terminal permiten pegar texto con sólo arrastrarlo. O sea que es posible seleccionar un texto en Firefox y arrastrarlo al terminal.
Eso es todo, espero que lo disfruten.
La entrada Script: texto a voz (Google) desde el terminal aparece primero en Desde Linux.
Continúar leyendo...