diseÑo e implementaciÓn de un mÓdulo en hardware de

27
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

Upload: others

Post on 02-Aug-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Page 2: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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

Page 3: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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

Page 4: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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

Page 5: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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.

Page 6: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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

Page 7: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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™.

Page 8: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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

Page 9: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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

Page 10: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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:

Page 11: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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.

Page 12: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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.

Page 13: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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.

Page 14: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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.

Page 15: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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

Page 16: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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.

Page 17: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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.

Page 18: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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%.

Page 19: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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

Page 20: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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

Page 21: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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™.

Page 22: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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.

Page 23: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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

Page 24: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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.

Page 25: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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

Page 26: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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.

Page 27: DISEÑO E IMPLEMENTACIÓN DE UN MÓDULO EN HARDWARE DE

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.