DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE ...
Transcript of DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE ...
DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE RECONOCIMIENTO DE VOZ IMPLEMENTADO EN UN DSP™
DIEGO ALEJANDRO ATUESTA LEÓN
UNIVERSIDAD DE LOS ANDES
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
BOGOTÁ, ENERO DE 2004
IEL2-03-II-02
DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE RECONOCIMIENTO DE VOZ IMPLEMENTADO EN UN DSP™
DIEGO ALEJANDRO ATUESTA LEÓN
Proyecto de grado para optar al título de Ingeniero Electrónico.
Asesor:
Ing. FREDY SEGURA
UNIVERSIDAD DE LOS ANDES
FACULTAD DE INGENIERÍA
DEPARTAMENTO DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
BOGOTÁ, ENERO DE 2004
IEL2-03-II-02
TABLA DE CONTENIDO
RESUMEN........................................................................................................................ 5
1. INTRODUCCION......................................................................................................... 6
2. SITUACIÓN ACTUAL ................................................................................................. 8
2.1 Estado del Arte ....................................................................................................... 8 2.2 Aplicaciones Comerciales..................................................................................... 10
2.3 Características Reconocedores de Voz ................................................................ 12
3. ALGORITMO A IMPLEMENTAR ............................................................................ 15
4. ALGORITMO IMPLEMENTADO EN MATLAB® ................................................... 18
5. IMPLEMENTACIÓN DEL ALGORITMO EN EL DSP™........................................ 22
6. CONCLUSIONES Y OBSERVACIONES .................................................................. 25
BIBLIOGRAFÍA............................................................................................................. 27
IEL2-03-II-02
LISTA DE FIGURAS
Figura 1. Dragon NaturallySpeaking Professional® 11
Figura 2. Diagrama de Bloques 15
Figura 3. Representación Algoritmo DTW 17
Figura 4. Resultados DTW vocales 19
Figura 5. DTW tres grabaciones “NO” vs. “SI” 20
Figura 6. Plataforma DSP TMS320 22
LISTA DE TABLAS
Tabla 1. Tamaños de Vocabularios 13
Tabla 2. Algunos Vocabularios 20
Tabla 3. Matriz de Confusión -Resultados DTW 21
IEL2-03-II-02
RESUMEN
En este proyecto de grado se hace una revisión del algoritmo para reconocimiento
de voz basado en la técnica de obtención de los coeficientes cepstrales de una
señal auditiva y posteriormente la aplicación del algoritmo DTW (Dynamic Time
Warping) sobre dichos coeficientes.
De igual forma se realiza una validación del mismo algoritmo en la forma más
simple posible por medio del programa MATLAB® para tomar como modelo e
implementar este código en el DSP™ que hace parte de la tarjeta de desarrollo TI
TMS320™ para así llegar a una primera aproximación de una implementación de
esta técnica en hardware.
IEL2-03-II-02
1. INTRODUCCION
El reconocimiento de voz viene siendo estudiado desde hace más de 100 años.
En la década de 1880 Tihamir Nemes solicitó permiso para obtener una patente
para un sistema de trascripción automática donde tomaría secuencias de sonidos,
las identificaría y las imprimiría. La respuesta a esta solicitud fue negativa por
considerarse un “Proyecto no Realista”i. Hoy en día está comprobado que este
proyecto es una realidad y con el tiempo en más de un campo de acción se llega a
convertir en una necesidad.
Existen diversas formas de llevar a cabo este proceso: ANN – Artificial Neural
Network, HMM – Hidden Markov Model, y DTW – Dynamic Time Warping – entre
otros. Todos han tenido grandes avances y múltiples aplicaciones, sin embargo es
necesario seguirlo estudiando y mejorando de tal forma que llegue a ser utilizado
sin mayores restricciones de software y/o hardware, y que tenga un nivel de
confianza más alto (dependiendo del tipo de aplicación en el que se quiera
utilizar).
Las ANN requieren la definición de varios parámetros entres los cuales se
encuentran la arquitectura más apropiada, el número de capas ocultas, el número
de nodos por capa, etc. Pero su mayor inconveniente se encuentra en la etapa de
entrenamiento que requiere esta para su correcto funcionamiento. Esto se traduce
en altos costos de tiempo y por ende dineroii.
En el caso de los HMM la cantidad de parámetros que deben ser fijados y
posteriormente analizados en este tipo de procesamiento son muchos, lo cual
IEL2-03-II-02
hace la carga de este algoritmo bastante pesada y con una fase de entrenamiento
larga que también resulta costosaiii.
DTW ha probado ser una técnica bastante más liviana a nivel computacional y por
lo tanto bastante más fácil de implementar a nivel de hardware.
Este último modelo se basa en un vocabulario previamente escogido que depende
del tipo de aplicación del reconocedor de voz. El tamaño del mismo también
depende de la cantidad de operaciones que se quiere que este realice además de
las limitaciones del procesador.
Este trabajo busca analizar este algoritmo y simplificarlo al punto de encontrar una
primera aproximación de bajo grado de complejidad en términos de
implementación hardware. Hasta el momento en la Universidad de los Andes se
han hecho estudios pero ninguno llega a la implementación física en un DSP™.
IEL2-03-II-02
2. SITUACIÓN ACTUAL
2.1 Estado del Arte
Durante toda su historia la humanidad siempre ha buscado metas y desarrollos
tecnológicos aparentemente imposibles de alcanzar, entre esos es posible poner
como ejemplo el día que el hombre llegó a la luna. Ninguno de nuestros ancestros
habría creído que éste hecho habría podido llegar a ser posible así como tal vez
no se hubiera creído en muchos otros avances de la ciencia. El reconocimiento de
la voz es hoy en día una realidad que en alguna época también pareció un
imposible.
Desde finales del siglo XIX la humanidad ha planteado el problema de reconocer
la voz humana por medio de diferentes tipos de mecanismos y dispositivos. En la
década de 1880 Tihamir Nemes solicitó permiso para una obtener una patente
para un sistema de trascripción automática donde tomaría secuencias de sonidos,
las identificaría y las imprimiría. La respuesta a esta solicitud fue negativa por
considerarse un “Proyecto no Realista”.iv
A principios del siglo XX AT&T® Bell Laboratories construye la primera máquina
que está en capacidad de reconocer una voz humana. Esta máquina estaba en
capacidad de reconocer 10 dígitos. Estaba en capacidad de hacerlo para la voz de
una sola persona y necesitaba de una larga etapa de entrenamiento pero llegó a
tener una confiabilidad del 99%.v
IEL2-03-II-02
A lo largo de las últimas décadas se han seguido desarrollando diferentes técnicas
por parte de distintas universidades, organizaciones gubernamentales y
organizaciones privadas para evolucionar en el reconocimiento de habla y más
aún en el control por medio del reconocimiento de voz. Este avance busca entre
otras reemplazar interfaces tales como teclados, paneles de control y otros
dispositivos similares además de brindar mayor rapidez y seguridad en procesos
de la vida real.
Algunas de las ventajas que trae este desarrollo tecnológico sonvi:
• Comunicación más rápida y más agradable para los usuarios, ya que al ser
la forma natural de comunicarse no se necesita ninguna habilidad especial.
• Permite el tener las manos libres para utilizarlas en alguna otra actividad, a
la vez que se van dando ordenes por medio de la voz.
• Permite movilidad, ya que la voz se puede enviar a distancia y ser recogida
por un micrófono, por oposición a un teclado que no se puede mover de la
mesa de trabajo.
• Permite acceso remoto, al poder acceder a un ordenador usando la red
telefónica, que es la red de comunicaciones más extendida en el mundo.
• Permite la disminución del tamaño de los paneles de control.
La seguridad en un dispositivo de reconocimiento de voz depende de la aplicación
del mismo. Esto quiere decir que dependiendo del grado de confidencialidad de la
información almacenada en éste, el acceso a un usuario debe ser restringido o no.
De hecho un dispositivo que no permita a un usuario registrado en el sistema su
IEL2-03-II-02
acceso será calificado como un mal dispositivo para el usuario. Algunas
aplicaciones que manejan información no confidencial son las siguientes:
• Información sobre vuelos
• Información sobre hoteles
• Información sobre alquiler de autos
• Información del tráfico
• Horarios de transportes públicos
• Información meteorológica
• Carteleras de cines
2.2 Aplicaciones Comerciales
En la actualidad se encuentran diferentes dispositivos en el mercado capaces de
realizar diferentes actividades entre las que se encuentran:
• Reconocedor del lenguaje natural
• Manipulación de agendas
• Dictado de mensajes
• Traductores de idiomas
• Traductores Habla – Texto
• Controladores de dispositivos (computadores, celulares, etc...)
• Controles de seguridad
En el mercado se encuentran infinidad de aparatos que realizan la tarea de
reconocer voz. Un ejemplo de estos es el:
IEL2-03-II-02
Figura 1. Dragon NaturallySpeaking Professional®vii
Que puede tomar dictados con un léxico de 160,000 palabras a
una velocidad de 160 palabras por minuto. Además se pueden personalizar
macros para llenar formatos y ejecutar aplicaciones entre otros. Tiene un costo de
GBP 459.00.
Otro ejemplo es la tecnología desarrollada por Domain Dynamics® quienes lanzan
su publicidad diciendo que tienen códigos compactos sin necesidad de mucha
memoria. Compatibles con todos los sistemas existentes y de fácil adaptación
para controles remotos, juguetes, juegos, teléfonos celulares y distintos
dispositivos inalámbricos, aplicaciones domésticas y manejo de internet (outlook
express) entre otros. Contando con dos tipos de usuarios diferentes, el
dependiente y el independiente (requiere de entrenamiento).
Otro dispositivo comercial bastante común en el mundo hoy en día es un traductor
simultáneo accionado por voz.
En los ejemplos anteriores está probablemente el dispositivo más conocido en
nuestra sociedad que está en capacidad de utilizar un reconocedor de voz para
efectuar una llamada a un número predeterminado; un teléfono celular.
Es importante aclarar que en todos los ejemplos citados anteriormente solo se
habla de soluciones para facilitar el día a día de la sociedad promedio. Pero si se
tiene en cuenta la población que tiene limitaciones físicas que le impiden llevar a
cabo cierto tipo de actividades, estos dispositivos pueden ayudar mucho la vida
normal de este tipo de personas.
IEL2-03-II-02
2.3 Características Reconocedores de Voz
Los reconocedores de habla se pueden clasificar según algunas de sus
características tales como la cantidad de locutores que pueden reconocer, tamaño
de vocabulario que reconocen, canal que utilizan y según el tiempo de repuestaviii.
Según el tipo de aplicación pueden llegar a determinarse una mayor cantidad de
parámetros, también depende del autor, pero las características básicas se
describen a continuación.
Los distintos tipos de locutores que pueden llegar a ser reconocidos por un
dispositivo de estos se pueden clasificar en tres distintas categorías de la siguiente
manera:
• Dependientes del locutor: Reconocen la voz de un locutor para el cual el
dispositivo fue entrenado.
• Independiente del locutor: Reconoce la voz de cualquier locutor.
• Multilocutor: Reconoce la voz de diferentes personas.
Los distintos vocabularios que son escogidos para dimensionar el alcance de
estos dispositivos de reconocimiento también pueden ser clasificados según su
tamaño como aparece en la tabla 1. Por tamaño se hace referencia a la cantidad
de palabras, o comandos, que conforman dicho vocabulario.
IEL2-03-II-02
TAMAÑO CANTIDAD DE PALABRAS
Pequeño ≤ 40
Medio ≤ 400
Grande ≤ 4000
Muy Grande ≤ 40000
Ilimitado ≥ 40000
Tabla 1. Tamaños de Vocabularios
Los diferentes tipos de canales que pueden utilizar los diferentes dispositivos
capaces de reconocer voz pueden ser:
• A través de micrófono.
• A través de la red telefónica (fija, móvil analógica o móvil digital).
Otro parámetro que define este tipo de aparatos puede ser el tiempo de repuesta,
este va a ser importante dependiendo del tipo de servicio que se quiere que preste
el dispositivo. De esta forma se puede decir que existen dos diferentes categorías
que son:
• Tiempo real.
• Resto. Reconocedores en los que el tiempo de respuesta no es un factor
importante.
En general estas características pueden variar según los diferentes autores de
este tema, pero los grandes conceptos de estos parámetros son los mismos para
todos.
IEL2-03-II-02
En este trabajo se trabaja con un vocabulario dependiente del locutor, que en este
caso es el mismo autor de esta tesis y es de un tamaño pequeño. El canal que se
utiliza es un micrófono unidireccional y las pruebas se trabajan en un ambiente
controlado.
Dado a que esta es una primera aproximación a una investigación que se quiere
continuar en la Universidad de los Andes, las condiciones del vocabulario son de
alguna forma la configuración más básica posible en este tema. Una vez estas
pruebas pasen esta parte inicial, los diferentes parámetros crecerán de tal forma
que se conforme un dispositivo más complejo y de mayor calidad.
IEL2-03-II-02
3. ALGORITMO A IMPLEMENTAR
Para poder desarrollar esta implementación se analizaron diferentes algoritmos
buscando siempre el más simple (y la forma de simplificarlo aún más), así se llegó
a la conclusión que para empezar el procedimiento se debía utilizar una técnica
común en este tipo de estudios conocida como los coeficientes cepstrales. Esta no
solo es una técnica común en este medio, sino que también es de muy bajo nivel
computacional a comparación de otras técnicas existentes y más importante aún
muchos investigadores han publicado resultados satisfactorios de su uso, o sea,
un muy bien nivel de confianza; un alto porcentaje de acierto.
El diagrama de bloques de todo el algoritmo se muestra en la Figura 2.
Figura 2. Diagrama de Bloques
De los bloques que se describen a continuación los primeros dos son iguales para
cualquier sistema de reconocimiento de voz. Se necesita un micrófono que
permita realizar la entrada de la voz a analizar y el preenfasis es una técnica
utilizada para realzar las componentes importantes de la información auditiva. Las
ventanas de hamming también son una necesidad ya que estas permiten dividir la
señal como lo dice su nombre en pequeñas ventanas y así ser analizadas una a
una por aparte.
Micrófono Preenfasis Hamming
LPC Cepstrales DTW
IEL2-03-II-02
Cada uno de estos distintos bloques constituye una función independiente dentro
del programa final. Cada una tiene un nivel de complejidad diferente y en algunos
casos puede ser llevada a cabo por más de un algoritmo ya validado por
diferentes investigadores de estos temas. Es importante aclarar que estos bloques
no fueron solamente desarrollados con el fin de formar parte de un dispositivo de
reconocimiento de voz ya que estos pueden ser utilizados en distintos campos de
estudio de la ciencia.
La adquisición de esta señal se hizo en un ambiente controlado y por medio de un
micrófono unidireccional de tal forma que la señal adquirida fuera lo más limpia
posible. Estas grabaciones se hicieron en diferentes lugares con el fin de
encontrar el mejor resultado posible. Después de esto se procesó de tal forma que
se perdiera información irrelevante pero se no se perdiera ninguna parte de la
información necesaria para llevar acabo el reconocimiento. Como se puede ver en
el diagrama, se toma una señal de voz a la cual se le hace un proceso de
preenfasis, unas ventanas de hamming (32 mseg), se obtienen los coeficientes
LPC (Linear Prediction Coeficientes) y de estos los coeficientes cepstrales.
La parte de reconocimiento se hace por medio del algoritmo DTW, el cual se basa
en la distancia euclidiana existente entre dos arreglos X y Y (Figura 3). En el caso
que esta distancia sea la mínima, o sea que las señales sean iguales, se observa
una línea diagonal.
IEL2-03-II-02
Figura 3. Representación Algoritmo DTW Tomada de ix
Así que se tienen unos comandos de referencia (vocabulario definido) y después
de recibir la palabra a ser analizada, se obtienen sus coeficientes cepstrales y
posteriormente se realiza el algoritmo DTW con los coeficientes cepstrales de las
referencias.
Así que se tiene un vocabulario de cuatro palabras (por ejemplo), al decir el locutor
una palabra, el sistema realiza el algoritmo DTW con cada una de las palabras del
vocabulario y la que tenga la menor distancia ecludiana será la que reconoce el
sistema como igual.
Claro el sistema tiene un margen de rechazo según el cual si la palabra que tiene
la menor distancia ecludiana, tiene una distancia bastante grande entonces no
dará por reconocida la palabra dicha por el locutor.
IEL2-03-II-02
4. ALGORITMO IMPLEMENTADO EN MATLAB®
Este algoritmo primero se programó e implementó en MATLAB® para validar sus
resultados y así poder tener la seguridad de su correcto funcionamiento antes de
implementarlo en el DSP™. En este punto las grabaciones se hicieron por medio
de diferentes tarjetas de sonido cuyos conversores trabajan a 8kHz.
Lo más importante era obtener un algoritmo de bajo costo en tiempo y complejidad
computacional para así lograr encontrar unas especificaciones muy simples que
permitieran la mayor sencillez posible en el momento de llevar a cabo su
implementación en hardware. Por lo tanto se estudiaron distintos algoritmos para
cada una de las etapas que componen este programa y así poder tomar siempre
las más rápidas y livianas a nivel de software.
El objetivo es llegar a controlar un dispositivo por medio de un vocabulario que
contenga las palabras necesarias para dicho propósito.
El vocabulario escogido en un principio fueron las cinco vocales del abecedario
para hacer las primeras pruebas. Los resultados (Fig. 4) fueron satisfactorios y se
obtuvo un nivel de acierto del 100%.
IEL2-03-II-02
Figura 4. Resultados DTW vocales
En esta figura se compara la vocal “a” con ella misma (diagonal amarilla), así
como también se compara con la vocal “e” (línea negra), “i” (línea verde), “o” (línea
roja), “u” (línea azul) y finalmente con otra grabación distinta de la vocal “a” (línea
morada) que es la única línea que se encuentra dentro de la región que permite al
sistema concluir que es igual a la palabra (en este caso vocal) de referencia.
Después se hicieron pruebas con las palabras “SI” y “NO”.
La comparación de tres grabaciones distintas de la palabra “si” con tres
grabaciones distintas de la palabra “no” (Fig. 5) muestra los buenos resultados
obtenidos de la comparación de estas palabras. En este caso la diagonal amarilla
es el resultado de realizar el algoritmo entre dos grabaciones exactamente iguales
de la palabra “si”. Las líneas azul y amarilla son otras grabaciones distintas de la
palabra si y se puede observar en esta figura que estas grabaciones se
encuentran dentro de una región de similitud suficiente para comprobar que son
iguales a la palabra referencia. Sin embargo, las líneas morada, negra y roja
representan la ejecución del algoritmo sobre tres grabaciones distintas de la
IEL2-03-II-02
palabra “no” demostrando así la eficiencia del algoritmo al rechazar estas palabras
mostrándolas por fuera de la región aceptada para el reconocimiento.
Figura 5. DTW tres grabaciones “NO” vs. “SI”
Después se hicieron pruebas con otros vocabularios, unos que no tenían ningún
fin específico diferente al de hacer pruebas para comprobar el buen
funcionamiento del algoritmo y finalmente un vocabulario escogido con el fin de
controlar algún dispositivo. De esta forma entonces se definieron algunos
vocabularios como los descritos en la Tabla 2.
Vocabulario Palabra 1 Palabra 2 Palabra 3 Palabra 4
1 Uno Dos Tres Cuatro
2 Perro Gato Loro Mico
3 Adelante Atrás Rapido Despacio
4 Arriba Abajo Izquierda Derecha
Tabla 2. Algunos Vocabularios
Con todos estos vocabularios se hicieron pruebas y se ajustó el programa
buscando su mayor eficiencia, en todo caso es importante anotar que los cambios
no solo se hicieron dentro del programa. El locutor también se entrenó de tal forma
IEL2-03-II-02
que repetía las palabras de una forma bastante parecida para que así fuera más
fácil la identificación de las mismas. Este es el mismo ejemplo de una persona que
utiliza un celular que marca un número predeterminado con cierto comando de
voz. El locutor debe entrenar su propia forma de decir el comando para que así
este dispositivo la reconozca con mayor facilidad.
En total se hicieron pruebas con cuatro vocabularios distintos y los resultados
encontrados en las pruebas del vocabulario 4 se muestran en la Tabla 3.
Arriba Abajo Izquierda Derecha Porcentaje de Acierto [%]
Arriba 16 4 0 0 80
Abajo 3 17 0 0 85
Izquierda 3 1 15 1 75
Derecha 0 0 2 18 90
Tabla 3. Matriz de Confusión -Resultados DTW
Como se puede observar en la tabla anterior en el peor de los casos se tiene un
porcentaje de acierto de 75% y en el mejor se tiene uno de 90%. Así que por los
resultados obtenidos en esta serie de pruebas se concluyó que el algoritmo tenía
el nivel de confianza suficiente para ser implementado en la tarjeta de desarrollo TI
TMS320™.
IEL2-03-II-02
5. IMPLEMENTACIÓN DEL ALGORITMO EN EL DSP™
La tarjeta de desarrollo de Texas Instruments TI TMS320™ ofrece la posibilidad
trabajar un DSP con un conversor A/D incorporado. Este conversor trabaja a una
velocidad de 8kHz mientras que el procesador del DSP trabaja a una velocidad de
100Mhz. Dependiendo de la forma en que se quiera trabajar se puede tener la
opción de punto fijo ó de punto flotante, cuenta con registros de 32 bits y el
compilador trabaja de diferentes maneras dependiendo de la prioridad que se
tenga (velocidad, memoria, etc...).
Figura 6. Plataforma DSP TMS320
El lenguaje de programación que se puede utilizar para manejar esta tarjeta puede
ser C++ ó assembler. El programa mediante el cual se maneja la tarjeta es Code
Composer Studio, diseñado específicamente para el manejo de la misma. Estas
características permiten tener la posibilidad de ejecutar en este dispositivo
distintos algoritmos con diferentes grados de complejidad y dependientes de los
objetivos específicos del programador.
IEL2-03-II-02
La implementación de este algoritmo en la tarjeta de desarrollo se llevó a cabo por
partes, donde cada parte era cada una de las fases del algoritmo ya
implementado. Por lo tanto se compiló cada una de las funciones que llevaba a
cabo alguna parte del proceso por aparte para así validar su correcto
funcionamiento. Todas estas funciones por aparte presentaron resultados
satisfactorios cumpliendo cada una con su objetivo específico.
Las diferentes funciones de las que se han hecho referencia se listan a
continuación:
• Ventana de Hamming
• Preenfasis
• Autocorrelación
• Algoritmo de solución Levinson-Durbin
• LPC (es el resultado de hacer una autocorrelación y luego la ejecución del
algoritmo Levinson-Durbin)
• LPC a CEP para llegar a obtener los coeficientes cepstrales, ya que sin
estos no se puede llevar a cabo el DTW
• Calculo de distancia Euclidiana de dos arreglos de 12 cepstrales
• Función que calcule el mínimo entre entres números
• DTW que reúne el cálculo de la distancia euclidiana y el cálculo del mínimo
entre tres números.
Algunas de estas ya vienen predefinidas en MATLAB®, pero en todo caso las
funciones programadas en el DSP™ y las utilizadas en MATLAB® no mostraron
ninguna diferencia en los resultados alcanzados en las pruebas realizadas en
ambas plataformas.
Estas funciones también tienen más de un algoritmo que las describen, distintos
autores muestran estas diferentes formas de calcular o computar ciertas entradas
IEL2-03-II-02
para obtener estas salidas. En este trabajo siempre se buscó utilizar aquellos
algoritmos que tuvieran la menor cantidad de operaciones, o la carga
computacional más baja, esto siempre con el fin de buscar la carga más liviana
para el procesador.
Sin embargo al cambiar las opciones del compilador algunas de estas funciones
no presentaban el mismo nivel de acierto.
La unión total de estas componentes del algoritmo en un solo programa no llegó al
grado de desempeño que presentó la validación del programa hecha en
MATLAB®. Esto se debe a la complejidad computacional que tiene programa al
querer ejecutarlo en tiempo real llegando a exceder así las condiciones del
procesador de esta tarjeta de desarrollo.
Pruebas realizadas de forma discreta, o sea introduciendo los datos de una
grabación por medio de un vector predefinido que describe esta señal, ejecuta
bien todo el algoritmo comprobando así que el programa sí funciona bien en el
DSP™. Estas pruebas se realizaron con las mismas grabaciones que se utilizaron
para hacer las pruebas en MATLAB® (introduciendolas como un vector ya
predeterminado) y se dieron exactamente los mismos resultados, o sea
exactamente los mismos porcentajes de acierto que se habían encontrado en las
pruebas preliminares o de validación. Esto comprueba que se pueden hacer
cualquier cantidad de pruebas y cambios en el programa utilizando MATLAB®
teniendo la confianza que los resultados generados por dichos cambios serán los
mismos que se lleguen a dar en el DSO™.
Es necesario resaltar que para obtener un alto porcentaje de acierto, es necesario
sacrificar capacidad de memoria, o sea tiempo de duración de la palabra a
identificar.
IEL2-03-II-02
6. CONCLUSIONES Y OBSERVACIONES
El objetivo de llegar a implementar un reconocedor de comandos en tiempo real
por medio de la tarjeta TI TMS320™ es factible. Los resultados de las pruebas ya
realizadas con el algoritmo programado lo corroboran. Esto demuestra que el
intento de lograr un reconocedor de voz implementado en hardware en esta
Universidad es un hecho.
Hasta ahora esos resultados se han logrado obtener ejecutándolos de una forma
discreta. Al unir la función que graba las palabras en tiempo real con el resto del
programa que se encarga de reconocer la palabra de entrada los resultados no
son satisfactorios ya que el programa cuando está en conjunto no funciona. Por lo
tanto es necesario seguir estudiando este mismo algoritmo y otros existentes para
ver como se introducen estos en el programa ya validado.
Hasta ahora se ha logrado optimizar el código existente ahorrando posiciones en
memoria, esto, reutilizando variables previamente definidas y omitiendo la copia
de ciertos valores en variables o vectores por aparte que no son necesarios al
poder referenciar la misma información de otras posiciones ya utilizadas. Esto
mismo también ahorra ciclos de instrucción que se utilizan al copiar esta
información en nuevas posiciones además de asegurar que estos valores
previamente calculados no son alterados al cambiarlos de dirección en la
memoria.
Introducir una fase de detección de punto final, o sea entender cuando empieza y
cuando termina la palabra por medio de un análisis de energía permitiría ahorrar
cálculos computacionales en comparaciones innecesarias que pueden llegar a
IEL2-03-II-02
hacer la carga del DSP™, o en general cualquier dispositivo utilizado para
reconocer comandos, más liviana y a la vez mejorar el desempeño de este
algoritmo.
Adquirir una extensión de esta tarjeta permite hacer trabajar el conversor A/D a
una frecuencia de 16 kHz lo cual a su vez ayudaría a mejorar la confianza del
algoritmo en cuestión al doblar la velocidad de la tasa de muestreo existente.
IEL2-03-II-02
BIBLIOGRAFÍA i. http://mail.udlap.mx/~ingrid/ingrid/RV/Proc_de_VozNuevo.html
ii. http://www.aedemo.es/septiembre97/privado/redneuro.html
iii. http://www.cse.unsw.edu.au/~waleed/phd/html/node36.html
iv. http://mail.udlap.mx/~ingrid/ingrid/RV/Proc_de_VozNuevo.html
v. http://mail.udlap.mx/~ingrid/ingrid/RV/Proc_de_VozNuevo.html
vi. http://www.tid.es/presencia/publicaciones/comsid/esp/articulos/vol23/hab
la/habla.html
vii. http://www.habitek.co.uk/Habitek2001EC/itm00214.htm
viii. José Relaño Gil, Estado del Arte en Tecnologías de Voz. Marzo 2001.
ix. http://tcts.fpms.ac.be/cours/1005-
08/speech/projects/2001/delfabro_henry_poitoux/
x. Segura F., “Mejora de Autonomía de Personas con Limitaciones Físicas
Usando Reconocimiento de Voz”, 2001.
xi. Proakis, John G., Tratamiento digital de señales / John G. Proakis,
Dimitris G. Manolakis ; traducción: Verónica Santalla del Río, José Luis
Alba Castro. 3a ed. Madrid : Prentice Hall, c1998.