sábado, 10 de diciembre de 2016

2 Años después... No estaba muerto, estaba de parranda. (Cambio de TTS)

Buenas a todos, vengo 2 años más tarde para intentar recuperar el blog muerto. Os comenté algo de Festival, pero por lo que he escuchado las voces son muy robotizadas aunque la gente de Guadalinex se lo currase en su momento. Como ya dije las voces hispanas de IVONA siguen siendo de pago, pero os traigo un sintetizador bastante chulo, gratuito y con voces en español... creo que es lo que tanto andábamos buscando... las voces de SVox (Pico2wave): Instalación:
sudo apt-get install libttspico-utils
Su uso:
pico2wave -l=es-ES -w=/tmp/test.wav "Esto es una prueba"
//Donde -l es el idioma a usar y -w es la ruta temporal donde guardaremos el audio a reproducir y el mensaje entre comillas
y para reproducirlo: aplay /tmp/test.wav
//Donde definimos la ruta del wav temporal. Si queréis podéis eliminarlo justo después de su reproducción con rm -rf /tmp/test.wav , pero si no lo borramos podemos dejarlo ahí porque si no cambiamos de nombre del fichero de audio lo único que hará será reemplazarlo en cada instancia, y no creo que el wav llegue a ocupar demasiado y más con el espacio de almacenamiento de los que podemos disfrutar ahora... Eso es todo por hoy ¿Suena bien verdad?, espero que sea de ayuda a alguien, y seguiré con el siguiente post... quien sabe... ¿? ¿? Nos leemos y gracias!

martes, 16 de septiembre de 2014

Vuelta al proyecto / Nuevo Sintetizador de voz

Buenas... Después de un tiempo de reflexión, el otro día tuve una idea viendo una película , "Her", para seguir con el proyecto.

Llevo una semana buscando un sintetizador de voz y esto es lo que me he encontrado:

IVONA:

Pros: Muy buena la voz masculina y normalilla la femenina.

Contra: De pago

Al final he decidido descartar todas las de pago como at&t , natural voices, IVONA, las que recomienda nextup.. etc... Y me lanzo a lo gratuito y libre, en éste caso.

Buscaba algo profesional... Mucho, y al final lo he encontrado... Festival!

Gracias a las traducciones de Guadalinex, la de hombre está genial, la de mujer aun no la escuché pero ya os diré y desarrollaré el tema explicando paso a paso.

Las voces son mucho mejores que algunas de pago, creédme.

Espero seguir con fuerzas el proyecto.

Nos vemos!

domingo, 2 de junio de 2013

Reconocimiento de voz de GOOGLE

Ahora que ya tenemos la voz, necesitamos un SST (Speech to Text), o Text Recognition.
De todos los que he probado, me decanto por el de Google. El problema es que para el uso de éste, deberemos guardar en un wav lo que digamos, convertirlo a flac, y enviarlo por la api usando un navegador (menudo pitote).

Después de unas recopilaciones de aquí y de allá lo traigo ya resumido:

Grabamos con el comando "rec" el wav (Aseguraos de que el volumen de la entrada de micrófono del alsamixer está al 100%, si no le costará la vida reconocer que estamos diciendo)
rec -r 16000 -e signed-integer -b 16 -c 1 audio.wav trim 0 4
Convertimos de wav a flac:
sox audio.wav -r 16000 -b 16 -c 1 audio.flac vad reverse vad reverse lowpass -2 2500
Y ahora viene la magia... sin usar el navegador, pero usando una cabecera (simulándolo):
curl --data-binary @audio.flac --header 'Content-type: audio/x-flac; rate=16000' 'http://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=es-ES&maxresults=1' 1>audio.txt
Almacenamos en un audio.txt lo que nos devuelve la api de Google. Podremos cambiar el idioma en lang=es-ES (por defecto puse España-Español) o si queremos que nos muestre más resultados en vez de 1 (el más acertado).

Para resumir lo que nos devuelve en una simple frase formateamos el resultado:
FILETOOBIG=`cat audio.txt | grep "<HTML>"`
TRANSCRIPT=`cat audio.txt | cut -d"," -f3 | sed 's/^.*utterance\":\"\(.*\)\"$/\1/g'`
CONFIDENCE=`cat audio.txt | cut -d"," -f4 | sed 's/^.*confidence\":0.\([0-9][0-9]\).*$/\1/g'`
Donde el  Confidence (por si queremos usarlo) será el porcentaje de probabilidad de acierto en el reconocimiento, y el Transcript lo que entendió.

Ya con esto, procedemos con un simple if la prueba de que funciona:
if echo "$TRANSCRIPT" |grep -q "Hola"; then 
        aoss espeak -ves "$TRANSCRIPT"
elif echo "$TRANSCRIPT" |grep -q "quién eres"; then 
        aoss espeak -ves "Soy Yarvis, la máquina de Yuki Sekisan"
elif echo "$TRANSCRIPT" |grep -q "saluda a Alberto"; then 
        aoss espeak -ves "Hola Alberto, eres muy pesado, vete ya"
elif echo "$TRANSCRIPT" |grep -q "main craft"; then 
        aoss espeak -ves "Abriendo Maincraft" | java -Xmx1024M -Xms512M -cp /home/yuki/Escritorio/Minecraft.jar #net.minecraft.LauncherFrame
else aoss espeak -ves "No te entiendo";
aoss espeak -ves "$TRANSCRIPT"
fi
Funciona perfectamente :). Ahora el siguiente paso... Migrarlo a una Base de datos! Me he decantado por MYSQL.

jueves, 23 de mayo de 2013

Sintetizador de voz ESPEAK

El sistema operativo que voy a usar es Ubuntu 13.04.

Primero necesitaremos un sintetizador de voz.

Si estás en Ubuntu, el paquete "espeak" ya estará instalado, si no, deberemos instalarlo:
sudo aptitude install espeak
Y ya tendremos el sintetizador listo! Para hacerlo hablar usaremos:
espeak -ves "Esto es una prueba de voz"
Es un poco feilla la voz... creo que en un futuro la cambiaré, pero de momento ésta nos sirve.

Presentación

Buenas;

Este blog servirá para seguir mis investigaciones y avances del proyecto Jarvis Project Linux.

Lo que quiero conseguir es una máquina con inteligencia artificial para entornos Linux (Al más puro estilo  máquina Jarvis en Iron Man)

Todo lo que vaya probando, desechando, depurando... lo iré detallando paso a paso en este blog.

Espero no abandonarlo por falta de recursos, experiencia o tiempo.

Un saludo y gracias.