Sistema de reconocimiento de voz para control de prototipo de silla de ruedas para niños con problemas en extremidades inferiores

Resumen

El presente trabajo tiene como objetivo realizar un sistema de reconocimiento de voz, que permita ayudar a niños con daños en las extremidades inferiores en su desplazamiento; permitiendo ingresar palabras a través de un micrófono y que puedan ser comparadas en un banco de registros para mover una estructura mecánica que emula una silla de ruedas.

El sistema se controla por medio de una interfaz gráfica de usuario (GUI) en Matlab, el cual se encarga de realizar el proceso de reconocer el espectro de señal de entrada y ser procesada por medio de la técnica de Transformada Rápida de Fourier (FFT), la cual arroja el resultado en la comparación entre la señal de entrada y la que se encuentra en el banco de registro. Esta interfaz de usuario permite grabar, reproducir y comparar el espectro ingresado. Se aplica en un prototipo para verificar su funcionamiento y es controlado con una placa de prototipos Arduino Uno. Esta recibe los datos de Matlab a través de un módulo Bluetooth HC-06 y permite que exista una conectividad inalámbrica entre la computadora que es la que envía el resultado obtenido de la Transformada Rápida de Fourier al módulo Bluetooth y a la placa de prototipos y, que al ser comparados, realizan los movimientos de acuerdo a los datos enviados (“alto”, “seguir”, “reversa”, “derecha” e “izquierda”).


Palabras clave: Interfaz gráfica de usuario, Transformada rápida de Fourier, diplejía.

Abstract

This project is based on a voice recognition system which allows the user to enter a word through a microphone that detects little noise, which is compared in a bank of Registrations.

The system is controlled by means of GUI in Matlab, which is responsible for carrying out the process, which recognize the spectrum of input signal and is processed by the Fast Fourier Transform which throws the result in the comparison between the input signals that is located in the registration bank, which is in the system programmed in Matlab. This graph of Matlab enables you to record, play, and compare the spectrum entered. It is applied in a prototype to verify its operation and is controlled with an Arduino Prototype Board, this receives data from the Matlab via a Bluetooth module HC-06 and allows for a wireless connectivity between the computer that is the one that sends the result of the fast Fourier transform to the Bluetooth module and the Arduino board and is when performing the movements according to the data sent, which are "high", "continue", "Forward", "right" and "left".


Keywords: Graphical user interface, Fast Fourier transform, diplegia.

1. Introducción

Un sistema de reconocimiento de voz es una disciplina que tiene como objetivo principal permitir la comunicación entre los seres humanos y las computadoras. Se considera una conversión de palabras habladas a escritas; es decir, una conversión de audios a textos digitalizados la cual puede ser utilizado para realizar alguna función establecida (Gómez, 2016). El sistema propuesto emplea la técnica de comparación de patrones la cual consiste en comparar la señal de entrada (conjunto de características acústicas ordenadas en el tiempo), con las señales que se encuentran almacenadas en un banco de registros dentro de la herramienta Matlab. Por lo tanto, Si el patrón es compatible con aquellos que se encuentran almacenados, ejecutará la función que se halla establecido.  Del mismo modo todas aquellas sentencias que se seleccionaron, serán enviadas a través de una conexión inalámbrica por medio del módulo Bluetooth.

La final dad de éste trabajo de investigación, es desarrollar un sistema autónomo de movimiento para niños con discapacidad en extremidades inferiores (diplejía). Según datos de (INEGI, 2010), en México existen alrededor de 5 millones de personas con algún tipo de discapacidad. Del cual el 12 % de esta población son niños o adolescentes de 0 a 18 años de edad (Teletón, 2016). El tipo de discapacidad que presentan es conocida como discapacidad motriz la cual es una alteración de la capacidad del movimiento que afecta en distintos niveles como las funciones de desplazamiento, manipulación o respiración, y que limita a la persona en su desarrollo personal y social.

2. Metodología

Para llevar a cabo el desarrollo de éste proyecto, se plantearon diferentes fases que conforman las diferentes áreas de conocimiento abordados. Primeramente se desarrolló el sistema de reconocimiento de voz, a través de la técnica de comparación de patrones (Rabiner, 1998). Luego de aplicar el procesamiento, se creó un banco de registros donde se encontraban almacenados todos aquellos rasgos que se utilizaron para poder comparar la señal de entrada; con la intención de poder reproducir los movimientos del prototipo utilizando conectividad Bluetooth.

2.1 Sistema de Reconocimiento de Voz

También conocido como reconocimiento automático del habla (SRHA), es aquel sistema automático que es capaz de gestionar la señal de voz emitida por un individuo (Oropeza y Suárez, 2006). Es una herramienta computacional capaz de procesar la señal de voz emitida por el ser humano y reconocer la información contenida en ésta, convirtiéndola en texto o emitiendo órdenes que actúan sobre un proceso (Camargo, 2010). En este trabajo se diseñó el sistema de reconocimiento de voz siguiendo la estructura que se observa en la figura 1.


Figura 1. Diagrama de bloques del sistema de reconocimiento de voz.

2.2 Técnica de Comparación de Patrones

El reconocimiento de patrones es una ciencia que se encarga de la descripción y clasificación de algunos objetos, personas, señales, representaciones, etc. Este tipo de ciencia trabaja con base en un conjunto previamente establecido de todos los posibles objetos (patrones) individuales a reconocer.

Es evidente que una de sus principales ventajas es que esta estrategia no es muy estricta, ya que no es necesario determinar todas las características espectrales de la voz en un nivel fonético, lo cual reduce la implementación de secciones muy complejas. Se compara el vector extraído de la señal que se logre adquirir con datos preexistentes en la base de datos predeterminada (Camargo, 2010).

En la figura 2 se muestra cómo se realiza la comparación de patrones, basándose en las características espectrales. Es importante notar que, si el patrón no se encuentra en la base de datos, lo que realiza el sistema es tomar la información cuyas diferencias sean las mínimas a los datos de entradas.


Figura 2. Diagrama de comparación de patrones.

2.3 Procesamiento de señales en la herramienta de software de Matlab

La adquisición de la voz se procesa por medio de la herramienta de software Matlab, para poder realizar la clasificación y comparación del patrón de entrada con los patrones guardados en el banco de registros. Lo que realiza es la adquisición de un dato de entrada, determina sus características espectrales, obtiene el patrón y se compara con los patrones de audio guardados en el banco de registros. Lo que se pretende es buscar el mínimo error entre el patrón de entrada y los patrones del banco de registros, tal como se observa en la figura 3.


Figura 3. Proceso de comparación de patrones.

Todos los patrones que se obtienen pasan por una etapa de filtrado (filtro de silencios) que tiene un limitador que produce una salida de amplitud constante para todas las señales de entradas mayores a los de un nivel mínimo predeterminado, a lo que se le conoce como umbral de silenciamiento. En la figura 4 se muestra una señal sin ruidos. Esta muestra de señal es importante ya que de éstas señales se obtiene las características espectrales de las cuales se traducirán en una elección de movimientos en los motores.


Figura 4. Representación de señal filtrada.

En la herramienta antes mencionada se utilizó el entorno de Desarrollo Integrado (IDE), el cual muestra los diferentes botones que se ocuparán para la interfaz de control; el cual contiene los botones para conectar y desconectar el dispositivo que se usó para enviar los datos del módulo Bluetooth HC-06. La interfaz contiene los botones de grabar, el cual es utilizado para adquirir el dato de entrada (voz), el botón de reproducir audio para escuchar el audio de entrada y el de reconocimiento, el cual es el que realiza la comparación del dato de entrada con los patrones en el banco de registro, como se muestra en la figura 5.


Figura 5. Interfaz de control mediante GUI.

2.4 Sistema de control del prototipo

El prototipo tiene un sistema de control el cual es ejecutado en la utilización de la placa de Arduino Uno, la cual fue programada para controlar el movimiento de los motores. Cuando el sistema recibe la señal por medio del puerto serial, la placa ejecuta la instrucción para hacer mover los motores de acuerdo a la instrucción descrita, en la figura 6 se muestra el diagrama de flujo de la programación la tarjeta de control.


Figura 6. Diagrama de flujo del control de los motores.

2.5 Prototipo de silla de ruedas

La estructura mecánica del prototipo de silla de ruedas tiene las medidas de 20 x 25 cm. de tubo de aluminio hueco de 0.5 pulgadas, contiene una rueda loca que permite que la silla tenga soporte en la parte delantera del prototipo y las dos llantas de Pololu insertadas en el eje principal de los micro moto-reductores con un torque de 1.6 kg, tal como se muestra en la figura 7.


Figura 7. Prototipo mecánico terminado.

3. Resultados

Se realizaron pruebas del funcionamiento del sistema de reconocimiento de voz, lo primero que se verificó es establecer la comunicación entre el modulo Bluetooth y la PC, mediante la visualización del indicador luminoso que posee el módulo. Cuando se estable la conexión permite realizar la grabación de la señal de entrada. En la figura 8 se muestra el Command Window de Matlab, en donde aparece un mensaje donde indica cuando inicia y finaliza la grabación. De igual forma se observa toda la segmentación del audio en sus tramas de frecuencia.


Figura 8. Mensaje de grabación.

Luego de realizar diferentes tipos de pruebas de las señales de voz tanto en números, vocales o palabras, se determinó usar las palabras “alto”, “seguir”, “reversa”, “derecha” e “izquierda”; éstas fueron seleccionadas por el menor parecido de pronunciación para obtener características espectrales más específicas para realizar la comparación con los patrones de estas mismas señales. La comunicación entre usuario y prototipo se lleva a cabo con la interfaz de control que permite grabar y reproducir audio. De igual forma permite reconocer la palabra que fue introducida. En la figura 9, se muestra la interfaz de control del sistema de reconocimiento de voz, en la cual se observa la palabra reconocida, las gráficas de la señal de entrada sin la etapa de filtrado, la señal de entrada filtrada y procesada para obtener las características espectrales para compararla con el patrón establecido de la palabra “reversa”.


Figura 9. Interfaz reconociendo una palabra.

Finalmente se obtuvieron los 5 movimientos simulados en el prototipo de la silla de ruedas que fueron: izquierda, derecha, seguir, reversa y alto. En la figura 10 se observa la simulación del control de los motores realizadas con el software de simulación Proteus que son los que realizan las funciones de los movimientos de la silla de ruedas.


Figura 10. Simulaciones de la etapa de control de motores.

4. Conclusiones

El sistema de reconocimiento de voz es un sistema nuevo e innovador que puede ser utilizado en distintas áreas de aplicación como seguridad, el uso de aparatos para ayuda del humano, discapacidades, etc. Los movimientos en el dispositivo se realizaron de forma satisfactoria. Se utilizaron palabras que no iniciaran con la misma letra porque se pueden confundir las señales de entrada y provocar algún error al momento de procesar la señal y arrojar un resultado erróneo.

Los trabajos a futuro serían implementar el sistema de reconocimiento de voz en una silla de ruedas de tamaño real; transferir toda la programación en una tarjeta de desarrollo, por ejemplo una RaspBerry-Pi para que la silla sea totalmente autónoma, utilizar otro algoritmo de control, por ejemplo redes neuronales que haría al sistema más inteligente e independiente, realizar una etapa de filtrado para los ruidos exteriores y hacer un sistema de reconocimiento de voz  más claro, confiable y eficaz. De igual manera implementar sensores de distancia para encontrar los desniveles de piso y planos inclinados.

5. Bibliografía

Camargo, J. (2010). Sistema de Reconocimiento de Voz Humana. Disponible en: https://es.scribd.com/document/275657579/Digital-19158

Gómez, J.C. (2016). Procesamiento digital de Señales de Voz.  Modelos de producción de Voz. Disponible en: http://www.eie.fceia.unr.edu.ar/%7Eprodivoz/apuntes_index.html

INEGI. (2010). Discapacidad en México. Disponible en: http://cuentame.inegi.org.mx/poblacion/discapacidad.

Oropeza J.L, Suárez G.S. (2006). Algoritmos y métodos para el Reconocimiento de Voz en Español mediante sílabas. Centro de investigación en Computación. CIC-Instituto Politécnico Nacional. México.

Rabiner, L. &Juang, B-H. (1998) Speech Recognition by Machine, Capítulo 47. The Digital Signal Processing Handbook, IEEE Press.

Teletón. (2016). Discapacidad infantil. Disponible en: http://www.teleton.org.


[a] Escuela Superior de Tizayuca, Universidad Autónoma del Estado de Hidalgo. Tizayuca, Hidalgo, 43800, México. Correo: monsecastroarri@gmail.com

[b] Escuela Superior de Tizayuca, Universidad Autónoma del Estado de Hidalgo. Tizayuca, Hidalgo, 43800, México. Correo: teresa_niki@hotmail.com

[c]Escuela Superior de Tizayuca, Universidad Autónoma del Estado de Hidalgo. Tizayuca, Hidalgo, 43800, México. Correo: coello@uaeh.edu.mx