Diferencia entre revisiones de «Reconocedor De Voz»

De Proyecto Butiá
Saltar a: navegación, buscar
 
(No se muestran 13 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
RECONOCEDOR DE VOZ
+
'''RECONOCEDOR DE VOZ "RECO"'''
 +
 
  
 
=='''Integrantes'''==
 
=='''Integrantes'''==
Línea 5: Línea 6:
 
*Fabricio Benitez
 
*Fabricio Benitez
 
*Guillermo Amorín
 
*Guillermo Amorín
*Victoria Rocha.
+
*Victoria Rocha
  
 
=='''Objetivos'''==
 
=='''Objetivos'''==
  
*Objetivos generales: Control del robot mediante el habla.
+
*Objetivos generales:  
 +
**Control del robot mediante el habla desde otra XO o desde la misma que está conectada al Butiá.
 +
 
 +
*Objetivos específicos:
 +
**Mover el robot mediante el habla.
 +
**Utilizar sensores del robot mediante el habla.
 +
**Crear un programa que dada una línea de texto proporcionada por un reconocedor de voz, busque los comandos correspondientes a la acción que se desea realizar.
 +
 
 +
=='''Desarrollo del problema'''==
 +
 
 +
Comenzamos buscando un reconocedor de voz que funcione en Linux.
 +
 
 +
Probamos varios programas (Simon, Julius, etc) pero no logramos hacer funcionar ninguno de ellos. Nos reunimos con un integrante de un grupo anterior que trabajó con un proyecto similar a éste; él obtuvo buenos resultados usando Sphinx con un modelo de lenguaje en inglés, pero nosotros pretendíamos que el programa reconociera la voz en español. De igual manera nos fue bastante útil la info que obtuvimos de su parte para pruebas que hicimos luego.
 +
 
 +
Probamos nuevamente con Sphinx, se pudo compilar y lograr que "funcionara" pero nos causó problemas al momento de reconocer, intentamos calibrar varias veces pero seguía presentando la falla.
 +
 
 +
A partir de ahí probamos otros reconocedores para Linux, pero no pudimos hacer funcionar ninguno de la manera que nosotros precisabamos. Nos contactamos vía mail con el desarrollador de Sphinx pero no obtuvimos respuesta alguna.
 +
 
 +
Al ver que no conseguiamos reconocedor, decidimos cambiar un poco el rumbo de nuestro proyecto; en ese momento nos propusimos realizar un programa que funcione para cualquier reconocedor de voz "externo" (no necesariamente debe estar integrado a nuestro programa) y de acuerdo a los objetivos.
 +
 
 +
El programa "RECO" consiste en que dada una línea de texto proporcionada por el reconocedor de voz, busque primero la palabra butia con la que se indica que se le esta hablando al robot, a partir de ahí se busca el comando que deseamos ejecutar seguido de los parámetros necesarios.
 +
Hay que aclarar que le debemos indicar al robot que le hablamos con la palabra butia una vez antes de cada comando que deseamos ejecutar.
 +
Por ejemplo si deseamos que el robot se mueva hacia atrás por 5 segundos, basta con decir: '''"BUTIA ATRAS 5"'''. Otra forma de hacerlo y por la cuál se obtendría el mismo resultado sería diciendo: '''"Por favor robot BUTIA movete hacia ATRAS durante 5 segundos"'''.
 +
 
 +
Luego de realizar el programa encontramos un reconocedor de voz que viene impolementado en windows 7, y reconoce muy bien el español. Por lo que decidimos utilizarlo. Para conectar el equipo al que se le habla con el robot Butiá, se utiliza una conexión por socket.
 +
 
 +
=='''Conclusiones'''==
 +
 
 +
No logramos cumplir todos los objetivos, ya que no encontramos ningún reconocedor de voz que funcione en la XO.
 +
Se logró realizar el programa que recibe una línea de texto del reconocedor de voz, y envía los comandos a ejecutarse de acuerdo a lo que el usuario desea que el robot haga.
  
*Objetivos especificos:
+
=='''Funcionamiento de RECO'''==
**Mover el robot mediante el habla
+
Para controlar el robot con el habla es necesario contar con dos PCs (podría ser una también).
**Utilizar sensores del robot mediante el habla
+
Una en la que haya un micrófono, python 2.7, reco.py y un programa de reconocimiento de voz (en nuestro caso el que viene incorporado en Windows 7). La otra debe poder correr los programas necesarios para controlar el robot (bobot-server.lua, telnet, etc).
**Crear un programa que dada una linea de texto proporcionada por un reconocedor de voz, busque los comandos correspondientes a la accion que se desea realizar
+
Ambos equipos deben conectarse entre sí para pasar los comandos de uno a otro.
Actualmente intentando:
+
  
Luego de probar varios programas (Simon, Julius, etc) hemos decidido usar Sphinx por haber sido el que nos dio mejores resultados. Nos reunimos también con integrantes de un grupo anterior que trabajó con un proyecto similar a éste que también obtuvo buenos resultados usando Sphinx.
+
=='''Trabajo a futuro'''==
  
En este momento estamos intentando crear un modelo de lenguaje en español que corra en la XO.
+
*Encontrar un reconocedor de voz que funcione correctamente en la XO para porder utilizar nuestro programa allí.
 +
*Modificar el código para que quede mas claro y legible.
 +
*Modificar el código para poder utilizar todas las funciones del butia como por ejemplo avanzar una determinada cantidad de centímetros, girar una determinada cantidad de grados, etc.
  
Documentación: http://cmusphinx.sourceforge.net/
+
=='''Documentación'''==
 +
*http://cmusphinx.sourceforge.net/
 +
*http://butia.git.sourceforge.net/git/gitweb.cgi?*p=butia/butia;a=blob;f=trunk/pythonAPI/butiaAPI.py;h=e7c25a3da08093c9e6f90e8a74828639236e12e8;hb=HEAD

Revisión actual del 17:02 14 dic 2011

RECONOCEDOR DE VOZ "RECO"


Integrantes

  • Fabricio Benitez
  • Guillermo Amorín
  • Victoria Rocha

Objetivos

  • Objetivos generales:
    • Control del robot mediante el habla desde otra XO o desde la misma que está conectada al Butiá.
  • Objetivos específicos:
    • Mover el robot mediante el habla.
    • Utilizar sensores del robot mediante el habla.
    • Crear un programa que dada una línea de texto proporcionada por un reconocedor de voz, busque los comandos correspondientes a la acción que se desea realizar.

Desarrollo del problema

Comenzamos buscando un reconocedor de voz que funcione en Linux.

Probamos varios programas (Simon, Julius, etc) pero no logramos hacer funcionar ninguno de ellos. Nos reunimos con un integrante de un grupo anterior que trabajó con un proyecto similar a éste; él obtuvo buenos resultados usando Sphinx con un modelo de lenguaje en inglés, pero nosotros pretendíamos que el programa reconociera la voz en español. De igual manera nos fue bastante útil la info que obtuvimos de su parte para pruebas que hicimos luego.

Probamos nuevamente con Sphinx, se pudo compilar y lograr que "funcionara" pero nos causó problemas al momento de reconocer, intentamos calibrar varias veces pero seguía presentando la falla.

A partir de ahí probamos otros reconocedores para Linux, pero no pudimos hacer funcionar ninguno de la manera que nosotros precisabamos. Nos contactamos vía mail con el desarrollador de Sphinx pero no obtuvimos respuesta alguna.

Al ver que no conseguiamos reconocedor, decidimos cambiar un poco el rumbo de nuestro proyecto; en ese momento nos propusimos realizar un programa que funcione para cualquier reconocedor de voz "externo" (no necesariamente debe estar integrado a nuestro programa) y de acuerdo a los objetivos.

El programa "RECO" consiste en que dada una línea de texto proporcionada por el reconocedor de voz, busque primero la palabra butia con la que se indica que se le esta hablando al robot, a partir de ahí se busca el comando que deseamos ejecutar seguido de los parámetros necesarios. Hay que aclarar que le debemos indicar al robot que le hablamos con la palabra butia una vez antes de cada comando que deseamos ejecutar. Por ejemplo si deseamos que el robot se mueva hacia atrás por 5 segundos, basta con decir: "BUTIA ATRAS 5". Otra forma de hacerlo y por la cuál se obtendría el mismo resultado sería diciendo: "Por favor robot BUTIA movete hacia ATRAS durante 5 segundos".

Luego de realizar el programa encontramos un reconocedor de voz que viene impolementado en windows 7, y reconoce muy bien el español. Por lo que decidimos utilizarlo. Para conectar el equipo al que se le habla con el robot Butiá, se utiliza una conexión por socket.

Conclusiones

No logramos cumplir todos los objetivos, ya que no encontramos ningún reconocedor de voz que funcione en la XO. Se logró realizar el programa que recibe una línea de texto del reconocedor de voz, y envía los comandos a ejecutarse de acuerdo a lo que el usuario desea que el robot haga.

Funcionamiento de RECO

Para controlar el robot con el habla es necesario contar con dos PCs (podría ser una también). Una en la que haya un micrófono, python 2.7, reco.py y un programa de reconocimiento de voz (en nuestro caso el que viene incorporado en Windows 7). La otra debe poder correr los programas necesarios para controlar el robot (bobot-server.lua, telnet, etc). Ambos equipos deben conectarse entre sí para pasar los comandos de uno a otro.

Trabajo a futuro

  • Encontrar un reconocedor de voz que funcione correctamente en la XO para porder utilizar nuestro programa allí.
  • Modificar el código para que quede mas claro y legible.
  • Modificar el código para poder utilizar todas las funciones del butia como por ejemplo avanzar una determinada cantidad de centímetros, girar una determinada cantidad de grados, etc.

Documentación