Reconocedor de voz para silla de ruedas basado en HMM e implementado en DSP (2007)
El reconocedor de voz desarrollado pretende identificar cinco (5) comandos diferentes, dichos por un hablante que haya realizado la fase de entrenamiento del sistema previamente. En esa fase el usuario debe pronunciar varias repeticiones de cada uno de los comandos de voz para que el algoritmo de entrenamiento cree los patrones de comparación. La voz se adquiere a través de un micrófono omnidireccional y la señal se limita en frecuencia con un filtro pasabanda antialiasing. El procesamiento digital de la señal obtenida se realiza con una tarjeta DSP56F805EVM de Motorola. Primero se realiza la conversión A/D a 12 bits de resolución. Las muestras resultantes se procesan con un filtro digital tipo IIR que permite el paso del espectro entre 0.3 y 3.4 KHz correspondiente al intervalo de interés. Es aquí donde cobra importancia la programación del chip DSP, permitiendo el procesamiento de la señal en tiempo real, característica necesaria para la ejecución del algoritmo de reconocimiento de voz basado en los modelos ocultos de Markov (MOM o HMM). A la señal que resulta después del filtro digital, se le calcula el contorno de energía, luego de un proceso de segmentación y enventanado. En el algoritmo, ese proceso se aprovecha para ir determinando al mismo tiempo el vector de observaciones O, según la teoría de las MOM. El algoritmo de reconocimiento de voz incluye los algoritmos forward, backward y de Baum-Welch, cuyos cálculos permiten obtener y comparar probabilidades. Las comparaciones, según el propósito sea de entrenamiento o de reconocimiento, servirán respectivamente para optimizar los modelos de cada comando o para identificar la acción que el sistema debe realizar de acuerdo al comando introducido: adelante, atrás, izquierda, derecha, parar. Las acciones se llevan a cabo por medio de los puertos PWM y GPIO del chip DSP. Las señales son enviadas a una tarjeta de potencia VNH2SP30-E para cada uno de los motores (principal y de dirección). Estas tarjetas reciben las señales PWM y de polaridad para el manejo de la velocidad y el sentido de giro de los motores.