Conociendo a Jasper

30 Mar Conociendo a Jasper

Durante estas pasadas semanas he estado jugeteando con Jasper , un asistente personal vocal para la Raspberry Pi, y el presente artículo es un pequeño resumen de mi experiencia con el mismo.

 

jasperMi idea principal a la hora de acercarme a Jasper era la de hacer que trabajase en castellano a la vez que hacerle algún módulo nuevo acorde a mis necesidades, pero para llegar al resultado final , a pesar de la buena documentación del proyecto, el camino no ha sido trivial.

Primeramente la configuración del micrófono y la tarjeta de sonido ha sido todo un engorro , incluso utilizando el micrófono que recomiendan los autores y alguna que otra buena guía que hay por la web.

No me convencía el módulo de texto a voz que traía por defecto (espeak) por lo que lo cambié a festival, en castellano siguiendo el siguiente tutorial.

La siguiente fase fue la mas frustrante de todas: intentar adaptar el módulo speech to text (STT) por defecto que trae Jasper , el PocketSphinx , al castellano. A pesar de que en teoría es posible , en la práctica son desalentadores los resultados, quizás debido a que el modelo vocal utilizado se basa en horas de grabaciones de radios mejicanas y el sistema no puede lidiar bien con el cambio de acento.

Tras esta mala experiencia decidí cambiar el enfoque y basar el reconocimiento vocal en servicios en la nube. Y tras mirar un poco las opciones me decidí por dos AT&T e IBM Bluemix , Google quedó rápidamente descartado dado lo ridículo de su limitación a 50 peticiones diarias a su API.

AT&T ofrece los mejores tiempos de respuesta pero tiene el problema de que es de pago (100$ anuales) y además hay que pedir un permiso especial para el uso específico de su módulo STT.

IBM Bluemix por otra parte tiene unos tiempos de latencia levemente superiores a AT&T (en torno al medio segundo) pero su servicio es mucho mas asequible y sin tener que pedir ningún permiso especial.

También importante en la refactorización al castellano ha sido el uso de la librería de Python speech-recognition que ha permitido simplificar y hacer mas pythonico el código de los módulos mic.py y stt.py de Jasper.

El resultado final ha sido esperanzador , a pesar de la latencia que introducen los motores stt en la nube, hay mucho margen de mejora: conexiones más rápidas, mantenimiento de canales abiertos para una comunicación RESTful mas ágil, etc…

En todo caso hay que mirar las cosas con perspectiva y un asistente vocal que de verdad funcionase , con posibilidad de embeberlo en cualquier sitio , dado el pequeño tamaño de la Raspberry, era algo de ciencia ficción hace un par de años y , con proyectos como este se está haciendo realidad.

A nivel personal estoy particularmente contento con el código de la función «say()» del módulo tts.py que  , a pesar de lo simple que parece, representa un día de trabajo intentando que Jasper pronunciase las tildes y las eñes y es una buena muestra de la potencia de Linux y Python combinados.

Ha sido muy curioso así mismo el interés que ha despertado mi fork al publicarlo en GitHub , ya que de manera casi inmediata fuí requerido por la web g2crowd para que hiciese una review (pagada) del proyecto Jasper original.

Y no es la primera vez que me pasa, cuando hice algo de scraping , al subirlo a GitHub empecé a recibir correos de reclutadores que necesitaban programadores para estos menesteres, y mientras uno poniendo bonito su muro de linkedin y nadie le ha hecho nunca ni puñetero caso 😉 .

 

 

 

2 Comentarioss
  • GuadaTech | Proyecto Selene
    Posted at 13:39h, 13 abril Responder

    […] proyecto surge como una continuación lógica de nuestro anterior trabajo con Jasper, en el que vimos como la inclusión de servicios en la nube como los de IBM simplificaban en gran […]

    • Pepe
      Posted at 09:29h, 13 diciembre Responder

      Excelente, muchas gracias por su trabajo. Tengo necesidad de montar algo para gestionar luces y aparatos de casa. Voy a intentarlo aunque se poco de Python

Escriba un comentario

Powered by themekiller.com anime4online.com animextoon.com apk4phone.com tengag.com moviekillers.com