sistema de control por voz de un ambiente hospitalario ana
TRANSCRIPT
IEL2-2002-II-06IEL2-2002-II-08
I
Sistema de Control por voz de un ambiente hospitalario
Ana Lucía Castro López
Julián Orlando Díaz Rivera
Ing. Freddy SeguraAsesor
Bogotá., D.C.
Universidad de Los Andes
Facultad de Ingeniería
Departamento de Electrónica
Enero 14 de 2003
IEL2-2002-II-06IEL2-2002-II-08
II
CONTENIDO
I. INTRODUCCION …………………………………………………..………. IV
II. OBJETIVOS …………………………………………………………..………. VI
1. ESPECIFICACIONES ……………………………………………..………........ 1
2. MARCO TEORICO ……………………………………………..………........ 2
3. DESCRIPCION GENERAL ………............................................................. 11
3.1 Procesamiento externo de señal ………………………………....... 12
3.1.1 Filtro y Amplificador ………………………………..…. 12
3.2 Sistema Central …………………………………………………... 17
3.2.1 Especificaciones …………………………………..………. 17
3.2.2 Características Adicionales ………………………..…. 18
3.2.3 Memoria Externa …………………………………………... 21
3.3 Comunicación Externa ………………………………..…………. 24
3.3.1 Infrarrojo ……………………………………………..……. 24
3.3.2 Protocolo RC5 ……………………………………..……. 25
3.3.3 Diagramas de Flujo de comandos …………………… 27
3.3.4 Maquinas de estado ……………………………….….. 29
4. DESARROLLO TEORICO …………………………………………………... 30
4.1 Parametrización de la señal ……………………………..……. 30
4.1.1 Procesado de la señal de voz ………………………..…. 30
4.2 Técnicas de Análisis ……………………………………..……. 31
4.2.1 Bancos de filtros …………………………………..………. 32
4.2.2 Coeficientes Cepstrales …………………………………... 33
4.2.3 Coeficientes MFCC o de Mel …………………………... 35
4.2.4 Coeficientes de Predicción Lineal LPC …………... 36
4.3 DTW ………………………………………………………………….. 37
IEL2-2002-II-06IEL2-2002-II-08
III
5. PRUEBAS DE CALIDAD Y DESEMPEÑO …………………………………... 39
5.1 Software …………………………………………………….……. 39
5.2 Hardware …………………………………………………….……. 45
5.2.1 Encabezados de funciones …………………………... 46
5.3 Conclusiones ………………………………………………………….. 51
6. JUSTIFICACIÓN DE POSIBLES DIFERENCIAS ENTRE EL
INFORME DE 50% Y LA ENTREGA FINAL ………………..…………. 52
6.1 DSP ………………………………………………………………….. 52
6.1.1 Características ……………………………………..….… 52
6.1.2 Instalación ………………………………………………….. 54
6.1.3 Programación …………………………………………... 55
7. BIBLIOGRAFIA Y FUENTES DE INFORMACION …………………………... 59
TABLA DE FIGURAS …………………………………………………………… 61
IEL2-2002-II-06IEL2-2002-II-08
IV
I. INTRODUCCION
La voz puede ser usada a distancia lo cual la hace ideal para situaciones de
manos y ojos ocupados, es por eso que actualmente hay una progresiva
proliferación de aplicaciones basadas en el reconocimiento automático del habla,
siendo cada vez más comunes: las interfaces hombre-máquina controladas por
voz, los sistemas de respuesta vocal interactiva, y la automatización de sistemas
telefónicos.
Pero, los avances en esta tecnología no se han dado rápidamente sino que han
sido el resultado de la conjugación de un amplio conjunto de conocimientos y
procedimientos de actuación sobre la información representada en la señal de voz.
Conocimientos que se articulan con un alto grado de dificultad y especialización,
ya que pertenecen a un marco científico-técnico multidisciplinar, donde se dan cita
diferentes ramas del saber como son: fisiología, acústica, lingüística, procesado de
señal, inteligencia artificial, teoría de la comunicación y de la información, y ciencia
de la computación.
En esta tesis mostramos la aplicación hardware de un sistema de reconocimiento
de voz en tiempo real dependiente del hablante con un vocabulario restringido,
que ha sido analizado y mejorado previamente por los Ingenieros Freddy Segura
y Carlos Villarraga de la Universidad de los Andes.
El proceso de reconocimiento de voz en su primera etapa usa la técnica LPC que
consiste en modelar el tracto vocal como un filtro con un número n de polos.
Usando la señal, se calculan los coeficientes de esos polos para cada ventana. De
esta forma se obtiene un vector de LPC para cada ventana, los cuales representan
el filtro que modela el tracto vocal en ese periodo de tiempo.
IEL2-2002-II-06IEL2-2002-II-08
V
Luego, para determinar cuál comando es requerido se usa DTW (Dynamic Time
Warping), que comparan los atributos de la palabra pronunciada con los de las
palabras de referencia, previamente almacenadas.
Este sistema identifica diferentes comandos dados por el usuario para accionar los
dispositivos, programados, a través de un sistema central, el PIC16F877, que
recibe la señal filtrada y amplificada, almacena y procesa los datos identificando la
instrucción dada y establece una comunicación infrarroja a través del protocolo
Philips RC5, el protocolo más utilizado en el control remoto de aparatos,
activando de esta manera el dispositivo deseado, para el beneficio de personas
incapacitadas.
IEL2-2002-II-06IEL2-2002-II-08
VI
II. OBJETIVOS
• Hacer que una persona discapacitada llegue a mejorar su autonomía
teniendo como efecto secundario un aumento en su autoestima y
mejoramiento de su calidad de vida permitiendo el control por parte del
paciente de los diferentes elementos que lo rodean por medio de su voz.
• Desarrollar una unidad independiente de un PC para la ejecución de todos
los comandos que se definan para controlar los elementos del entorno.
• La unidad debe controlar los siguientes elementos: luz, teléfono, televisor,
cama y llamado de la enfermera.
• Optimizar la velocidad del entrenamiento de las unidades de
reconocimiento de la voz.
IEL2-2002-II-06IEL2-2002-II-08
1
1. ESPECIFICACIONES
De acuerdo con los objetivos propuestos en la inicialmente, el dispositivo debe
cumplir con las siguientes especificaciones:
• Sistema portátil, entendiendo por portátil un dispositivo que pueda ser
llevado a cualquier parte, adaptable a las necesidades del lugar donde se
encuentre. Lo anterior implica, por lo tanto, la independencia del sistema de
un PC que realice las funciones requeridas.
• Alimentación propia, reduciendo la posibilidad de que el sistema sea
incapaz de cumplir con sus funciones ante un eventual corte de luz, lo que
implicaría un reentrenamiento y por lo tanto más molestias para el usuario.
• Facilidad de utilización, en este aspecto debemos tener varias
consideraciones en cuenta. La primera, tiene que ver con la etapa de
entrenamiento, ya que la interfaz con el usuario debe ser lo más sencilla
posible, para evitar complicaciones en el proceso de reconocimiento; la
segunda trata la universalidad del dispositivo, es decir, el sistema debe
tener la mayor compatibilidad posible con cada uno de los dispositivos que
van a ser controlados
IEL2-2002-II-06IEL2-2002-II-08
2
2. MARCO TEÓRICO
Cuando hablamos de Reconocimiento de Voz, no nos imaginamos cuantas
aplicaciones, usos y desarrollos hay detrás de este. Con el podemos lograr que
cualquier sistema nos obedezca por medio de nuestra voz, desde un sencillo aparato
domestico, hasta una complicada máquina industrial dándole a estos la capacidad de
recibir un mensaje u orden oral y ejecutarlo sin que el usuario tenga otro contacto
diferente que el de su voz, señal acústica que es enviada por un micrófono o
auricular, para luego ser digitalizada, decodificada y reconocida finalmente, para que
así pueda ser ejecutado el mensaje. Para lograr este fin, este sistema de
reconocimiento de voz necesita actuar como el sistema auditivo humano, por lo tanto
deberá tener ciertas características que le permitan desarrollar la estructura de
lenguaje, la representación del significado de los mensajes y sobre todo el
autoaprendizaje.
Las dos principales características de estos sistemas son fundamentalmente:
• Manos libres (que todos los sistemas incorporan).
• La configuración de tiempo de pausa entre palabras.
Teniendo en cuenta esta segunda variable, existen en estos momentos dos tipos de
sistemas:
• Los de habla discreta.
• Los de habla continua.
Los primeros establecen la necesidad de realizar una pausa entre palabras, y los
otros no se realiza ninguna pausa. Además Debido a las características del habla de
personas con disartria (prosodia, ritmo, etc.) hace más adecuada la utilización de
IEL2-2002-II-06IEL2-2002-II-08
3
sistemas de habla discreta, ya que la necesidad de realizar pausas entre palabra
hace disminuir el número de errores que se producen cuando se utilizan sistemas de
habla continua.
Este un proceso debe ser una clasificación de patrones, que debe cumplir el objetivo
de clasificar la señal de entrada por medio de una secuencia característica que es
debidamente aprendida o almacenada en el sistema. Por lo cual esta clasificación
debe cumplir que:
ü La señal de voz pueda ser analizada y representada en segmentos de corta
duración que se diferencien por su contenido frecuencial.
ü Haciendo el proceso de clasificación podamos asignar a cada segmento o
conjuntos consecutivos de segmentos un significado lingüístico.
ü Mediante un sistema capaz de entender estas secuencias y significados
lingüísticos, podamos reconocer el mensaje dicho.
Por esto el sistema de reconocimiento de voz debe tener conocimientos sobre
estructura sintáctica, semántica y pragmática del lenguaje. Algo que en la actualidad
no se a logrado ya que el lenguaje manejado por estos sistemas es restringido.
Uno de los factores más importantes que llega a hacer dificultoso el desarrollo del
reconocimiento es la variabilidad de la señal de voz. Esta señal es afectada tanto
intrínseca como externamente por lo cual se necesita hacer una limpieza análoga,
eliminando ruidos y características de la señal que no son necesarias para el proceso
del reconocimiento. Estas variabilidades son:
IEL2-2002-II-06IEL2-2002-II-08
4
Variabilidad intrínseca:
• Variabilidad de los sonidos, debido fundamentalmente a los distintos
acentos o formas de hablar de cada persona.
• Variabilidad en la producción de los sonidos, debido
fundamentalmente a las distintas velocidades de producción,
coarticulación, inclusión de ruidos, condiciones acústicas (ambientes
ruidosos), estado anímico, etc.
Variabilidad externa:
• Variabilidad debida a los elementos usados para la transmisión como
los micrófonos, líneas telefónicas, etc.
• Variabilidad en el ruido captado con la señal de voz, debido a que
alrededor del individua existen otras fuentes de señal de audio como
lo son el televisor, la radio, la calle, otras personas, etc.
Además de estos factores de variabilidad acústica hay que tener en cuenta otros
factores como lo son las distintas formas de hablar un mismo idioma, el uso de
abreviaturas y otros que son muy comunes en el lenguaje humano.
R. Moore propuso para la descripción y clasificación de un sistema que reconozca
voz la utilización de los siguientes términos:
IEL2-2002-II-06IEL2-2002-II-08
5
Dimensiones de un sistema de reconocimiento automático del habla1. Usuarios/locutores Define las características de un sistema de
reconocimiento de voz frente a la variabilidad de lossonidos que debe enfrentar. Por lo cual existen lassiguientes clases de usuarios:
a. dependiente del locutor / adaptado al locutor /multilocutor / independiente del locutor
b. usuarios cooperativos / usuarios no cooperativos
c. nivel de expertaza requerida al usuario
2. Estilo de habla Define las características frente a los diversos estilos dehabla, clasificados de forma gradual entre:
a. palabras aisladas - habla continua
b. habla leída - habla espontánea
c. nivel de rechazo de habla extraña
3. Vocabulario Define las características frente al vocabulario quepuede reconocer, clasificados de forma gradual entre:
a. discriminable – confundible
b. entrenable por el usuario – independiente
c. pequeño (< 100 palabras) - grande (>1000 palabras)
d. dependiente de la aplicación - independiente
4. Estructura de diálogo Define las características frente a la capacidad deprocesamiento de lenguaje, clasificados de formagradual entre:
a. perplejidad (baja /alta)
b. comandos simples - lenguaje natural
5. Condiciones de trabajo
Define las características frente a la variabilidad en lascondiciones de entorno, clasificados de forma gradualentre:
condiciones de laboratorio - condiciones de campoFIGURA 1: DIMENSIONES DE UN SISTEMA DE RECONOCIMIENTO AUTOMÁTICO DEL HABLA
IEL2-2002-II-06IEL2-2002-II-08
6
Este conjunto de características nos permite realizar una comparación entre los
distintos sistemas de reconocimiento de voz permitiendo entender como resuelve
cada sistema los diversos problemas.
Las fuentes de variabilidad deben tenerse muy en cuenta a la hora de plantear o
desarrollar una aplicación que use el reconocimiento de voz ya que entre más
robusto sea este diseño así mismo será el desempeño y rendimiento. Es por esto
que aunque en condiciones de laboratorio, muchos factores de variabilidad son
controlados y por lo tanto el error es mínimo en condiciones reales, los resultados
pueden ser desalentadores, sobre todo cuando las pruebas de laboratorio estaban
demasiado controladas.
Para trabajar en aplicaciones reales, se debe definir:
• ¿Cuál es el grado de exactitud del sistema que espera el usuario?
• ¿Es adecuado el grado de exactitud del sistema a utilizar con relación a
las expectativas del usuario?
• ¿Es realmente beneficioso el costo y satisfacción del usuario comparado
con otras tecnologías alternativas?
Todo esto para definir la capacidad de reconocimiento de palabras o comandos,
mantener un nivel adecuado de reconocimiento frente a cambios de usuario, canal
de comunicación, ruidos, etc., permitir el rechazo de palabras que no formen el
vocabulario de reconocimiento y trabajar en tiempo real.
El campo de aplicaciones de los sistemas de reconocimiento es muy amplio, pero
básicamente, con la tecnología actual existen tres áreas en las cuales el volumen
de utilización de estos sistemas está creciendo de forma exponencial. Estas áreas
son: servicios de telecomunicación, sistemas de control y sistemas de entrada de
datos y acceso a bases de datos.
IEL2-2002-II-06IEL2-2002-II-08
7
Existen varias razones por las cuales estás áreas comienzan a utilizar de forma
extensiva sistemas de RAH. Normalmente se utilizan para tareas bien definidas,
con un vocabulario y sintaxis bastante restringido lo que permite que:
a. La unidad elemental de reconocimiento suela ser la palabra.
b. Solamente un grupo reducido de palabras tienen que ser
reconocidas en un instante de tiempo.
c. El estilo del habla debe ser el de palabras aisladas.
d. El compilador de gramáticas de la aplicación se puede definir de
forma sencilla a partir de grupos de subvocabularios.
Bajo estos supuestos, actualmente pueden encontrarse sistemas de
reconocimiento que trabajan con tasas de reconocimiento superiores al 98 % con
palabras aisladas. Sin embargo, en gran número de servicios o productos que
potencialmente pueden utilizar tecnologías del habla, el sistema de RAH no es
más que el interfaz de entrada a un sistema de diálogo en donde entran en juego
otras tecnologías del habla como la síntesis de voz, tal y como se muestra en el
diagrama de bloques de un sistema de diálogo en la figura 2. El propósito final de
un sistema de este tipo es el control de un sistema mediante órdenes orales
provenientes de un micrófono, o de línea telefónica o de un sistema de transmisión
sin hilos. Las ordenes son procesadas por un sistema experto que interacciona
con el sistema controlado para que realice las acciones pertinentes y genere una
contestación al usuario.
Las aplicaciones más representativas de los sistemas de RAH que actualmente se
pueden encontrar en fase de experimentación o de explotación comercial son:
1. Sistemas de control oral para ayuda a disminuidos físicos.
2. Sistemas de entrada de datos y comandos para ordenadores,
navegadores Web por voz.
IEL2-2002-II-06IEL2-2002-II-08
8
3. Sistemas de venta por catálogo.
4. Control oral de teléfonos.
5. Aplicaciones aerospaciales.
6. Servicios interactivos de telefonía sin operadora.
7. Autoaprendizaje de idiomas.
8. Validación de ventas con tarjeta de crédito.
9. La máquina de escribir oral, Dictado.
10. Domótica.
11. Sistemas de acceso a bases de datos.
Una de las aplicaciones más inmediatas de los sistemas de RAH como interfaz
entre hombre y máquina es la ayuda a discapacitados físicos. Mediante comandos
orales se pueden controlar muchas de las funciones y actividades cotidianas.
Ejemplos en fase de experimentación son la silla de ruedas controlada oralmente,
camas hospitalarias, control oral de teléfonos y la activación oral de aparatos y
sistemas domésticos. En el caso del teléfono controlado oralmente, el usuario
puede almacenar y acceder a una lista de números telefónicos utilizando
comandos orales. En este tipo de aplicaciones, el sistema de reconocimiento de
voz es dependiente del locutor y trabaja normalmente bajo la configuración de
reconocimiento de palabras aisladas con capacidad de localización de los
comandos en habla extraña. El sistema debe tener la capacidad de ser entrenado
por el usuario para de esta forma hacer el acceso a los números telefónicos
mediante el nombre de la persona que queremos llamar.
La activación oral de aparatos y sistemas domésticos, incluida dentro del campo
de la domótica, tiene como objetivo el controlar a estos mediante comandos orales
a través de un sistema de diálogo. Son susceptibles de control oral, aparatos
como el televisor (encender/apagar, cambiar de canal, volumen), el equipo de
IEL2-2002-II-06IEL2-2002-II-08
9
HIFI, abrir y cerrar puertas, abrir y cerrar persianas, control de una cámara de
seguridad, activar el teléfono, la calefacción, el horno y encimera, encender y
apagar luces, etc. En 1984, la empresa británica Voice Input Systems construyó,
demostró y comenzó a comercializar el sistema VADAS para ayudar a
discapacitados físicos a controlar oralmente dispositivos domésticos. Una
capacidad interesante de estos sistemas de control oral de dispositivos
domésticos es la posibilidad de controlarlos de forma remota a través de la línea
telefónica. Los sistemas de reconocimiento utilizados en este tipo de aplicaciones
suelen ser de palabras aisladas con la capacidad de rechazar habla o sonidos
extraños y dependientes del locutor, de modo que se entrena el sistema con la voz
del usuario.
Otra área de aplicación de los sistemas de RAH es la aviación tanto civil como
militar. En aplicaciones militares se ha experimentado en la introducción de
interfaces orales para interactuar con los sistemas básicos de un avión de guerra.
Los sistemas de reconocimiento suelen ser de palabras aisladas y tienen que ser
capaces de dar unas prestaciones muy buenas trabajando con relaciones señal a
ruido muy pequeñas. En la aviación civil se pueden encontrar aplicaciones en
proceso de experimentación para el control aéreo utilizando sistemas de
reconocimiento de habla continua.
Una de las áreas con más aplicaciones potenciales son las telecomunicaciones y
servicios añadidos. En ciertos servicios añadidos a la red telefónica, el uso de
interfaces orales permite una reducción efectiva del coste del servicio. Ejemplos
de estas aplicaciones son la automatización de los servicios de operadora y la
validación de compras con tarjetas de crédito. En el primer caso, existen
aplicaciones en uso en los EE.UU. por parte de las compañías telefónicas AT&T y
Northen Telecom para automatizar el servicio de facturación de llamadas asistidas
por operadora. En estos casos, el reconocimiento del mensaje se realiza mediante
un sistema de localización de palabras. En el caso de validación de compras con
tarjeta de crédito, este servicio es utilizado por comercios que no disponen de
modems para validar la venta. Con un sistema de reconocimiento de dígitos
IEL2-2002-II-06IEL2-2002-II-08
10
conectados puede reconocerse los números de la tarjeta de crédito, la
identificación del vendedor y el valor de la venta. Como el número de la tarjeta de
crédito y la identificación del vendedor están formados por una secuencia de
dígitos con ciertas restricciones, no causan problemas a la hora de reconocerlos.
La incorporación de interfaces orales ha permitido también incrementar el número
de servicios proporcionados por una red de telecomunicaciones. Ejemplos de
estas aplicaciones son los servicios de información y transacciones bancarias,
servicios de telefonía interactiva y servicios de acceso a información. En relación a
la telefonía móvil en vehículos, los sistemas de reconocimiento de voz comienzan
a ser introducidos para permitir controlar el teléfono mediante comandos orales.
Un sueño que comienza a ser realidad es la máquina de escribir oral, es decir, un
sistema de conversión de voz a texto con un vocabulario muy grande, más de
5000 palabras, que puede transcribir habla natural sin restricciones a texto. Este
tipo de reconocedores del habla se están desarrollado en la actualidad y ya se
pueden encontrar en explotación comercial algunos de ellos. Ejemplos de los
mismos son los sistemas comercializados por Dragon Systems e IBM, que permite
reconocer un vocabulario de hasta 60000 palabras trabajando sobre un PC,
utilizando un sistema de adaptación al usuario de modo que no es necesario un
entrenamiento del mismo. El sistema aprende de forma interactiva el estilo de
habla del usuario y reconoce palabras aisladas con separaciones entre palabras
de un cuarto de segundo. Con este sistema se puede llegar a crear un texto a una
velocidad de hasta 120 palabras por minuto. Actualmente se pueden adquirir en el
mercado productos como teléfonos, juguetes, radiocassete de coche, teléfonos
móviles para coche, grabadores de vídeo, agendas personales que incorporan un
sistema sencillo de reconocimiento de voz para controlar las funciones más
elementales de dichos productos.
IEL2-2002-II-06IEL2-2002-II-08
11
3. DESCRIPCION GENERAL Y DIAGRAMA DE BLOQUES
Analizamos el problema determinando las funciones y la manera como nuestro
sistema tiene que desarrollarlas, para esto los diagramas muestran de manera
explicativa la metodología de funcionamiento que hemos planeado.
En el diseño de este sistema se tienen en cuenta diferentes etapas:
• Procesamiento de señal.
• Almacenamiento de datos.
• Reconocimiento de comandos.
• Comunicación con los dispositivos a controlar.
FIGURA 2: DIAGRAMA DE BLOQUES DEL SISTEMA
IEL2-2002-II-06IEL2-2002-II-08
12
FIGURA 3: DIAGRAMA DE FLUJO DE DATOS
FIGURA 4: DIAGRAMA DE CONTROL
IEL2-2002-II-06IEL2-2002-II-08
13
3.1. PROCESAMIENTO DE SEÑAL
3.1.1 FILTRO Y AMPLIFICADOR
Para tener una señal de voz adecuada proveniente del micrófono diseñamos un
filtro pasa-banda que permitiera el paso de las frecuencias de voz (400Hz-3.1KHz)
deseadas en nuestro sistema. Para este propósito decidimos que lo mejor era un
filtro activo que pudiera amplificarnos la señal cuya ganancia fuera de 100v/v
aproximadamente, ya que la señal de entrada del micrófono es de
aproximadamente 50-60mv, dependiendo de la palabra y la fuerza con que ésta
sea pronunciada. Por lo anterior necesitamos una configuración que nos permita
unos buenos resultados en el ancho de banda requerido y ganancia suficiente
para nuestra entrada de voz.
A continuación vemos una comparación entre los diferentes tipos de filtros y de
acuerdo con la FIGURA 5, la configuración con la respuesta que queremos es la
elíptica. Estos filtros contienen ceros, así como también polos, en la función de
transferencia; esto da como resultado un rechazo casi infinito a las frecuencias de
banda de supresión cercanas al corte. Para un orden n de un filtro dado, los filtros
de función elíptica tienen el índice más pendiente de descenso a la banda de
supresión.
En las figuras siguientes observamos el filtro que necesitamos en las diferentes
configuraciones, comprobando así que la mejor configuración es la elíptica y por lo
tanto es nuestra configuración escogida. El filtro aplicado se muestra en las
figuras.
IEL2-2002-II-06IEL2-2002-II-08
14
FIGURA 5: COMPARACION DE LAS DIFERENTES CONFIGURACIONES DE FILTROS
RESPUESTA FILTRO BUTTERWORTH
FIGURA 6: CONFIGURACION BUTTERWORTH
IEL2-2002-II-06IEL2-2002-II-08
15
RESPUESTA FILTRO CHEBYSHEV
FIGURA 7: CONFIGURACION CHEBYSHEV
RESPUESTA FILTRO ELIPTICO
IEL2-2002-II-06IEL2-2002-II-08
16
FIGURA 8: CONFIGURACION ELIPTICO
El filtro seleccionado para nuestro trabajo se presenta a continuación:
FIGURA 9: FILTRO Y AMPLIFICADOR IMPLEMENTADO
Para la implementación del amplificador utilizamos el OpAm LF351, debido a que
teníamos que asegurarnos que la respuesta en frecuencia del amplificador
implementado fuera la mejor. Este OpAm ofrece unas características que son
IEL2-2002-II-06IEL2-2002-II-08
17
deseables en nuestro diseño. Es un Amplificador Low-cost de alta velocidad, un
amplio ancho de banda 4MHz y alta impedancia de entrada 1012 Ω.
FIGURA 10: LF351
3.2. SISTEMA CENTRAL
Para el desarrollo de esta tesis utilizamos un PIC16F877 que por sus diferentes
características, su utilización en una amplia gama de aplicaciones y su
disponibilidad en el mercado, hacen de el un microcontrolador que se adapta muy
bien a nuestras necesidades.
Este microcontrolador Microchip, poderoso, fácil de programar, basado en una
memoria FLASH envuelve la arquitectura PIC RISC en un chip de 40 pines que es
compatible con los dispositivos PIC16C5X, PIC12CXXX y PIC16C7X. Las
características de este PIC16F877 son una EEPROM de 256 bytes memoria de
datos, auto-programación, capacidad ICD/ICSP, 8 canales para un conversor
análogo digital de 10 bits, 3 timers, Watch-dog integrado, 2 funciones de
capture/compare/PWM, and un puerto serial sincrónico. El puerto serial puede ser
configurado como un Serial Peripheral Interface (SPI™) de 3 canales, un bus
Inter-Integrated Circuit (I2C™) de 2 canales, o un Universal Asynchronous
Receiver Transmitter (USART). Todas estas características lo hacen ideal para
muchas aplicaciones A/D de un alto nivel en la industria automotriz y diversidad de
proyectos de los consumidores.
IEL2-2002-II-06IEL2-2002-II-08
18
3.2.1 Especificaciones
Data
Ram
Speed
MHzI/O Ports
ADC
10-bitsSerial I/O PWM
Comp-
aratorsTimers
Brown
OutICSP
368 20 33 8USART,
I²C, SPI2 - 3+WDT True True
FIGURA 11: ESPECIFICACIONES PIC16F877
3.2.2 Características adicionales
• 200 nanosegundos por instrucción.
• Memoria de programa de 14336 Bytes (8192 Words).
• Memoria de datos EEPROM de 256 Bytes.
• 25mA sink/source per I/O.
• Parallel Slave Port (PSP).
• 2 Funciones Capture/Compare.
• Capacidad ICD.
• Auto-programación.
FIGURA 12: DIAGRAMA DE PINES PIC16F877
IEL2-2002-II-06IEL2-2002-II-08
19
En este sistema manejamos 40 ventanas por palabra, esto lo determinamos
observando la duración de cada una de nuestras palabras, de relativamente corta
longitud, ya que, la palabra más larga está compuesta por 5 letras y tuvo una
duración de 655ms, mientras que la más corta duró 622ms. Como la frecuencia de
muestreo determinada es de 16KHz, cada ventana tendrá una duración de 16ms;
655ms / 16ms = 40.9375 y 622ms / 16ms = 38.875. El número de 40 ventanas,
consideramos que es el adecuado para nuestro sistema.
Al establecer la cantidad de ventanas podemos conocer la cantidad de memoria
requerida. 40 ventanas x 12 cepstrales =480 y debido al sistema flotante que se
maneja, cada número requiere de 3 registros, por lo tanto son 480 x 3 = 1440
espacios de memoria por palabra requeridos; como reconocemos 13 palabras
entonces la memoria debe ser mínimo de 1440 x 13 = 18720 espacios.
IEL2-2002-II-06IEL2-2002-II-08
20
FIGURA 13: DIAGRAMA DE BLOQUES PIC16F877
Debido al gran requerimiento de memoria tuvimos que utilizar una RAM externa de
alta capacidad (32K X 8bits) que nos sirve de lugar de almacenamiento de las
palabras de entrenamiento o de referencia; accesada por los puertos B, C, D y E
del PIC, dispuestos de la siguiente manera:
• Puerto B: Parte baja de la dirección.
• Puerto C: Parte alta del la dirección.
• Puerto D: Dato.
IEL2-2002-II-06IEL2-2002-II-08
21
• Puerto E: Bits de control.
El control de la RAM desde el PIC es realizado por dos funciones:
• Lectura desde la RAM (RRAM1)
RRAM1
BCF STATUS,6 ;BANK 1BSF STATUS,5MOVLW 0XFF ;CONFIGURA PORTD COMO ENTRADAMOVWF TRISDBCF STATUS,5 ;BANK 0BSF PORTE,CS ;DESABILITAMOS CS,OE,WRBSF PORTE,OEBSF PORTE,WRRMOVF X1DIR,W ;CARGA DIRECCION BAJAMOVWF PORTBMOVF X1DIRH,W ;CARGA DIRECCION ALTAMOVWF PORTCBCF PORTE,OE ;HABILITA OE (LECTURA)BCF PORTE,CS ;HABILITA CSMOVF PORTD,W ;CARGA LA ENTRADA EN DATOMOVWF DATOBSF PORTE,CS ;DESHABILITA CSBSF PORTE,OE ;DESHABILITA OE (LECTURA)RETURN
• Escritura de la RAM (WRAM1)
WRAM1
BCF STATUS,6 ;BANK 1BSF STATUS,5MOVLW 0X00 ;CONFIGURA PORTD COMO SALIDAMOVWF TRISDBCF STATUS,5 ;BANK 0BSF PORTE,CS ;DESABILITAMOS CS,OE,WRBSF PORTE,OEBSF PORTE,WRRMOVF X1DIR,W ;CARGA DIRECCION BAJAMOVWF PORTBMOVF X1DIRH,W ;CARGA DIRECCION ALTAMOVWF PORTCMOVF DATO,W ;CARGA DATOMOVWF PORTDBCF PORTE,WRR ;HABILITA WRR (ESCRITURA)BCF PORTE,CS ;HABILITA CSBSF PORTE,CS ;DESABILITA CSBSF PORTE,WRR ;DESABILITA WRR (ESCRITURA)RETURN
IEL2-2002-II-06IEL2-2002-II-08
22
3.2.3 MEMORIA EXTERNA
La memoria empleada es una SRAM HITACHI de 32K x 8 bits con bajo consumo
de potencia HM62256LP-10. Que tiene las siguientes características:
• Tiempo de acceso 100ns.
• Consumo de potencia en estado ACTIVO 200mW.
• Consumo de potencia en estado NO ACTIVO 250uW.
• Operación completamente estática.
• Tanto entradas como salidas compatible con TTL.
• Requerimiento de 5V.
FIGURA 14: DIAGRAMA DE BLOQUES SRAM
IEL2-2002-II-06IEL2-2002-II-08
23
FIGURA 15: DESCRIPCION DE PINES (Derecha y Centro) TABLA DE VERDAD (Izquierda)
FIGURA 16: CICLO DE LECTURA DE LA SRAM
Seleccionamos una SRAM debido a que necesitamos que pueda ser accesada por
un dispositivo externo, es decir, que pueda leerse y escribirse en cualquier
momento, sin que requiera ser programada externamente sino que sea controlada
por nuestro dispositivo central.
IEL2-2002-II-06IEL2-2002-II-08
24
FIGURA 17: CICLO DE ESCRITURA DE LA SRAM
3.3 COMUNICACIÓN EXTERNA
3.3.1 INFRARROJO
Vamos a comenzar por definir y comentar la parte de la recepción de la señal
infrarroja ya que, es la que nos va a obligar a diseñar y ajustar los circuitos que
necesitamos en la parte de la emisión.
Para la recepción vamos a utilizar un dispositivo que unifica en el mismo
encapsulado el receptor de luz infrarroja, una lente y toda la lógica necesaria para
distinguir señales moduladas a una determinada frecuencia. Concretamente, en
este montaje utilizaremos los receptores SSPA1 Panasonic que se activan cuando
reciben una luz infrarroja modulada a una frecuencia de 38 kHz (el haz infrarrojo
se apaga y enciende 38000 veces por segundo). Esto los hace compatibles con un
gran número de mandos a distancia de electrodomésticos.
IEL2-2002-II-06IEL2-2002-II-08
25
Una vez resuelto el problema de la recepción, vamos a centrarnos en la otra parte
del sistema: la emisión. Ya hemos mencionado que los receptores utilizados son
sensibles a la mayor parte de los mandos de infrarrojos de electrodomésticos. Eso
nos puede ayudar en la fase de pruebas de la recepción e incluso utilizar el mando
para enviar órdenes a los diferentes elementos activados. Este problema precisa
un estudio de los códigos que emiten los mandos de diferentes fabricantes.
Como se dijo en la introducción, el objetivo es establecer una comunicación entre
dos dispositivos. Para cumplir con este objetivo no se utiliza directamente la
salida del PIC para alimentar el LED sino que se utiliza el transistor T1 (un
transistor NPN (2N2222). La salida del PIC la conectaremos, a través de la
resistencia, con la base de transistor. La activación o desactivación de la base
abrirá o cerrará el circuito entre el colector y emisor.
FIGURA 18: EMISOR INFRARROJO
Este uso de los transistores como meros interruptores electrónicos es muy
frecuente y permite ajustar la corriente (aumentar en este caso) que pasa a través
del elemento a controlar (el LED infrarrojo). Aumentando la corriente, también
aumentaremos la cantidad de luz emitida por el LED y por lo tanto el alcance del
emisor.
Bajando el valor de la resistencia puede aumentarse la intensidad en esa rama y
el alcance. Para calcular la corriente debe tenerse en cuenta, por un lado, el limite
IEL2-2002-II-06IEL2-2002-II-08
26
máximo permitido por el LED y, por otro, la caída de tensión en el LED (unos 1.8
voltios) y entre el colector y el emisor del transistor (unos 0.2 voltios).
3.3.2 Protocolo RC5
Para que haya una transmisión y recepción infrarroja se requiere una frecuencia
entre 36KHz-40KHz. Cada vez que un comando es reconocido, el protocolo RC5,
envía un tren de 14 bits, 1.638ms por bit. Cada bit tiene dos mitades donde la
mitad derecha y la mitad izquierda son opuestas. Si el bit a ser transmitido es cero
“0” la mitad izquierda es uno y la otra mitad cero, y si es uno “1” la mitad
izquierda es cero y la otra mitad uno.
FIGURA 19: BITS PROTOCOLO RC5
Cada mitad de bit tiene 32 pulsos, 64 pulsos por bit. Cada uno de estos pulsos
tiene un periodo de 25,6us para una frecuencia de 39KHz. Entonces, si el bit a
transmitir es cero significa que van a verse 32 pulsos de 25,6us y después 32 x
25.6us de silencio. Si es uno, es lo contrario, 32 x 25,6us de silencio seguidos por
32 pulsos de 25,6us.
IEL2-2002-II-06IEL2-2002-II-08
27
FIGURA 20: RECEPTOR INFRARROJO
Para que el infrarrojo trabaje a la frecuencia requerida hay que programar el
Prescaler del PIC trabajando con el TIMER0, para que divida la frecuencia de
trabajo (1.25MHz) en 32 y así obtener los 39KHz del infrarrojo. Esto se logra
programando el registro OPTION_REG así 10000100., para trabajar con el reloj
interno, incrementar en la transición de low-to-high, asignar el prescaler al módulo
Timer0 y dividir el reloj en 32.
FIGURA 21: REGISTRO OPTION_REG
IEL2-2002-II-06IEL2-2002-II-08
28
3.3.3 DIAGRAMAS DE FLUJO DE COMANDOS
ACCESO AL DISPOSITIVO
TEVE
MODIFICARVOLUMEN
ENCENDIDO O APAGADO
CAMBIO DE CANAL
PRENDER APAGAR VOL
SI NO + -MAS MENOS
CANAL
+ -MAS MENOS
FIGURA 22: DIAGRAMA DE FLUJO PARA EL TELEVISOR
ACCESO AL DISPOSITIVO
CAMA
MOVIMIENTOESPALDAR
MOVIMIENTOPIERNAS
ATRAS
+ -MAS MENOS
PIE
+ -MAS MENOS
FIGURA 23: DIAGRAMA DE FLUJO PARA LA CAMA
IEL2-2002-II-06IEL2-2002-II-08
29
ACCESO AL DISPOSITIVO
LUZ
APAGADO
NO
+ -MAS MENOS
ACCESO AL DISPOSITIVO
TEL
LLAMAR CONTESTAR
LLAMAR ALO
FIGURA 24: DIAGRAMAS DE FLUJO PARA LUZ (izquierda) Y TELEFONO (derecha)
3.3.4 MAQUINAS DE ESTADO
TEVE
NO SI
CANAL VOL
MAS
MENOS
Cama
Atras Pie
MAS
MENOS
MASMENOS
MAS
MENOS
Luz
No MAS MENOS
Tel
Llamar Alo
FIGURA 25: MAQUINAS DE ESTADO
IEL2-2002-II-06IEL2-2002-II-08
30
4. DESARROLLO TEORICO
4.1 Parametrización de la señal
4.1.1 Procesado de la señal de voz
Antes de hacer cualquier análisis sobre las muestras de voz hay que transformar
la señal continua en una representación de la información que porta, en vectores
de parámetros. Lo primero que hay que hacer es un proceso de muestreo a
frecuencias típicas de 8 o 16 kHz. Los vectores muestreados contienen entre 10 y
20 parámetros. Para hacer un análisis localizado de la señal, es necesario
seleccionar un tramo mediante técnicas de enventanado. Para esto se obtienen
bloques de la señal entre 10 - 20 msg. Para evaluar cada uno de estos bloques se
utiliza unas ventanas. La más habitual es la ventana de Hamming, de duración
entre 20 y 40 ms. En estos intervalos de tiempo la señal de voz es casi
estacionaria, por esto es por lo que se usa estos tamaños de bloque de la señal y
de la ventana. Típicamente se produce un solape rondando el 50% del ancho de la
ventana.
La utilización de la ventana tiene dos efectos claros:
• Atenuar gradualmente la amplitud de los intervalos de extracción para
prevenir cambios muy pronunciados en los puntos finales.
• Produce la convolución para la Transformada de Fourier de la función
ventana y el espectro de la señal.
Destacar que el tamaño de bloque y el de la ventana son independientes.
Normalmente el tamaño de la ventana será más grande que el de bloque.
Independientemente de que tipo de parámetros son requeridos, algunas
operaciones de procesado pueden ser aplicadas a priori en el análisis de la señal.
IEL2-2002-II-06IEL2-2002-II-08
31
Primeramente, las ganancias del proceso de producción/recogida de la señal
sonora, las perturbaciones acústicas del medio, o los medios de transmisión de la
señal, introducen variaciones que es deseable eliminar. El uso de parámetros
logarítmicos facilita su eliminación, ya que todas estas influencias se manifiestan
aditivamente en la expresión logarítmica. Una técnica bastante usada consiste en
utilizar, en lugar de los parámetros, sus valores menos la media. De esta forma se
consigue retener sólo la información diferencial y eliminar el offset, que no da
información y ”acumula” todas las perturbaciones. La media de los parámetros se
obtiene mediante un conjunto local de muestras anteriores y/o posteriores a la
actual.
Otro proceso a aplicar sobre cada una de las ventanas es el filtro de pre-énfasis
que evita la excesiva influencia de los límites artificiales, introducidos al dividir la
señal en ventanas. El coeficiente de pre-énfasis, k, esta comprendido en el rango
de valores 0 < k < 1.
Después de esto se aplica la ventana de Hamming ya analizada anteriormente.
Por último se debe investigar, y reducir, el número de parámetros sin perder
información. Para ello se realizan estudios estadísticos de correlación entre
parámetros, eliminándose un parámetro de entre todos aquellos en los que se
haya detectado una fuerte correlación.
4.2 Técnicas de análisis
Las técnicas que se pueden usar son muy variadas. Todas tienden a destacar
características independientes del hablante y a reducir las dependientes, pero
manteniendo toda la información necesaria para el reconocimiento. Entre las
técnicas más usuales tenemos LPC (Linear Prediction Coefficients), coeficientes
cepstrales y bancos de filtros.
IEL2-2002-II-06IEL2-2002-II-08
32
Cualquiera de estas técnicas dan como resultado representaciones de la
información sonora más compactas y más eficientes en los subsiguientes
procesos de ajuste de patrones. La información que den debe ser la misma que
poseía la señal sonora original.
4.2.1 Bancos de filtros
El uso de bancos de filtros digitales, implementados inicialmente como filtros
analógicos, ha sido históricamente la primera aproximación al procesamiento del
habla. Un banco de filtros paso banda puede entenderse como un modelo sencillo
de las etapas iniciales del sistema auditivo humano. La señal inicial se
descompone en un conjunto discreto de muestras espectrales, que contienen una
información similar a la que se presenta en los niveles superiores del sistema
auditivo de los seres humanos. Su característica es que no tiene una respuesta
lineal en frecuencia existen diferentes escalas. Algunos ejemplos expresados de
forma analítica, siendo f el valor de la frecuencia en Hz, se muestran a
continuación:
Un banco de filtros está constituido por un conjunto de filtros pasa banda, cada
uno de los cuales retiene la información de una serie determinada de frecuencias
del espectro. A su vez cada uno de ellos puede ponderar de manera diferente las
frecuencias que quedan bajo su ámbito. Un ejemplo de banco de filtros empleando
IEL2-2002-II-06IEL2-2002-II-08
33
escalas de Mel. Este tipo de técnica generalmente se emplea de manera conjunta
con otros métodos como son el cálculo de coeficientes cepstrales.
FIGURA 26: ESCALA DE MEL
4.2.2 Coeficientes Cepstrales
Desde la introducción en los primeros años de la década de los 70, las técnicas
homomórficas de procesado de señal han tenido gran importancia dentro del
campo del reconocimiento de voz. Los sistemas homomórficos son una clase de
sistemas no lineales que obedecen a un principio de superposición. Pueden servir
para separar la acción del tracto vocal (filtro lineal variable en el tiempo) de la
señal de excitación.
La señal de voz s(n) se descompone en una parte de excitación e(n) y en un filtro
lineal H(eιθ). Así en el dominio frecuencial tenemos:
Para la mayoría de las aplicaciones de voz sólo necesitamos la amplitud espectral.
En el dominio logarítmico, las dos componentes anteriores pueden separarse
empleando técnicas convencionales de procesado de la señal
IEL2-2002-II-06IEL2-2002-II-08
34
c(n) son los coeficientes cepstrales derivados de la transformada de Fourier. N es
el número de puntos con los que se hizo la DFT. Lo normal es usar sólo los
primeros términos ( n 20 ). Es posible a la hora de calcular un coeficiente
cepstral emplear bandas definidas según escalas de Mel.
FIGURA 27: COEFICIENTES CEPSTRALES
IEL2-2002-II-06IEL2-2002-II-08
35
4.2.3 Coeficientes MFCC o de Mel
A este tipo de parámetros se les conoce como coeficientes cepstrales con
frecuencia en escalas de Mel o MFCC (Mel Frequency Cepstral Coefficients). La
idea que da origen a estos coeficientes es la obtención de vectores de coeficiente
cepstrum en los cuales el espaciamiento en frecuencia no es lineal, sino que se
distribuye en una escala perceptual tipo Mel:
FIGURA 28: DIAGRAMA MEL
Para realizar el cálculo de los parámetros Mel-cepstrum, se construye un banco de
filtros triangulares equiespaciados en la escala de Mel que es aplicado a la señal
de entrada en frecuencia.
IEL2-2002-II-06IEL2-2002-II-08
36
Normalmente los filtros se extienden sobre todo el rango de frecuencias. Sin
embargo, a veces resulta deseable eliminar frecuencias no deseables o evitar
colocar filtros en regiones en las que no hay energía de señal útil. Para ello se
utilizan unas determinadas frecuencias inferior y superior, y el número
especificado se distribuye uniformemente a lo largo de la banda de paso
resultante. Una vez realizado el filtrado, se toma el logaritmo natural de las salidas
del banco de filtros y se calcula los parámetros Mel-cepstrum como:
donde N es el número de filtros del banco.
4.2.4 Coeficientes de predicción lineal LPC
La técnica LPC consiste en modelar el tracto vocal como un filtro con un número n
de polos. Usando la señal, se calculan los coeficientes de esos polos para cada
ventana. De esta forma se obtiene un vector de LPC para cada ventana, los
cuales representan el filtro que modela el tracto vocal en ese periodo de tiempo.
La representación LPC tiene problemas con algunas degradaciones de la señal
sonora.
Con un número suficiente de parámetros el modelo de predicción lineal puede
constituir una aproximación adecuada a la estructura espectral de todo tipo de
sonidos.
Este método recibe el nombre de predicción lineal porque pretende extrapolar el
valor de la siguiente muestra de voz x(n) como la suma ponderada de muestras
pasadas x(n-1), x(n-2),…, x(n-k):
IEL2-2002-II-06IEL2-2002-II-08
37
Para ello se debe realizar el cálculo de los coeficientes ai minimizando alguna
función de error, por ejemplo la de los mínimos cuadrados sobre una ventana de
tamaño N.
Tanto los coeficientes LPC como los MFCC presentan la ventaja de la naturaleza
aproximadamente ortogonal de los coeficientes obtenidos, lo que permite trabajar
con matrices de covarianza diagonal cuando sea necesario. Otra ventaja
importante en ambos casos es el hecho de que en el dominio cepstral la influencia
del canal de transmisión se convierte en una componente aditiva. Con esto es
posible reducir esta influencia de forma sencilla.
4.3 DTW
Las Series de Tiempo han sido motivo de una gran cantidad de trabajo
recientemente, adaptando algoritmos que se dedican al análisis de datos en
bases de datos de series de tiempo. Casi todos los algoritmos que operan con
datos de series de tiempo necesitan computar la similitud entre ellos. La distancia
Euclidiana, o alguna de sus modificaciones , es aplicada típicamente. La razón
por la cual la distancia Euclidiana puede producir una medida de similitud
intuitivamente correcta entre dos secuencias, es que es muy sensible a pequeñas
distorsiones en el eje de tiempo. La FIGURA 27 muestra dos secuencias que
tienen aproximadamente la misma forma, pero que no están alineadas en el eje de
tiempo. Esta alineación no-lineal va dar como resultado una mayor medida de
distancia calculada.
IEL2-2002-II-06IEL2-2002-II-08
38
FIGURA 29: SECUENCIAS DE VOZ NO ALINEADAS EN EL EJE DE TIEMPO
Hay una técnica que está pensada para detectar formas similares en fases
diferentes llamada DTW (Dynamic Time Warping). Un método ampliamente
conocido en la comunidad de procesamiento de voz, introducido por Berndt and
Clifford, aunque demostraron la utilidad de la aproximación, ellos eran concientes
de que la complejidad de los algoritmos de tiempo es un problema y que el
desarrollo de éstos en bases de datos bastante extensas podría ser una limitación,
sin embargo DTW es ampliamente usada en muchos campos.
El propósito de DTW es producir una función de pandeo que minimice la distancia
total entre los respectivos puntos de las señales. Introduce el concepto de Matriz
de distancias acumuladas (ADM), que contiene el valor respectivo de la LDM más
la mínima distancia acumulada. Podemos utilizar esta matriz para desarrollar un
camino de mapeo que viaja a través de las celdas con la menor distancia
acumulada, minimizando la distancia total entre las dos señales.
IEL2-2002-II-06IEL2-2002-II-08
39
5. PRUEBAS DE CALIDAD Y DESEMPEÑO DEL SISTEMA
5.1 Software
Los datos obtenidos en simulación se encuentran graficados en los siguientes
histogramas. En ellos se observa toda la información necesaria para definir si el
programa es o no óptimo para ser aplicado en este proyecto.
Cuando hicimos las pruebas decidimos por medio de histogramas hacer este
estudio de calidad y desempeño, en cuanto a reconocimiento se refiere. Los
resultados se ven en las figuras 30, 31 y 32, las cuales difieren en la clase de
información que allí se encuentra.
Para nuestras pruebas de software tomamos 3 repeticiones de cada palabra a 6
personas, para probar que el sistema fuera dependiente del hablante. En la
FIGURA 30, vemos todos los resultados obtenidos. La frecuencia mostrada entre
el rango 1,75 – 3.55 es bastante baja debido a que corresponde a las menores
distancias entre las palabras y como podemos ver en las FIGURAS 33 en
adelante, estos resultados solo se presentan cuando la misma palabra es dicha
por la misma persona FIGURA 32.
IEL2-2002-II-06IEL2-2002-II-08
40
FIGURA 30: HISTOGRAMA DE RESULTADOS. TODAS LAS PALABRAS, TODAS LAS PERSONAS
De 3.55 en adelante vemos los resultados de comparar la misma palabra dicha
por las diferentes personas, como puede verse más detalladamente en la
siguiente figura. Hay que resaltar que ninguno de los resultados que se
encuentran debajo de 3.55 es la menor de las comparaciones. De esta manera
concluimos que el software utilizado si era el adecuado y que por lo tanto
podíamos proceder a la implementación.
FIGURA 31: HISTOGRAMA DE RESULTADOS. TODAS LAS PALABRAS DIFERENTES PERSONAS
IEL2-2002-II-06IEL2-2002-II-08
41
FIGURA 32: HISTOGRAMA DE RESULTADOS. TODAS LAS PALABRAS MISMAS PERSONAS
RESULTADOS DE COMPARACIONES CON DIFERENTES HABLANTES
SI
FIGURA 33: MATRIZ DE DISTANCIAS SI
NO
FIGURA 34: MATRIZ DE DISTANCIAS NO
IEL2-2002-II-06IEL2-2002-II-08
42
TEVE
FIGURA 35: MATRIZ DE DISTANCIAS TEVE
CANAL
FIGURA 36: MATRIZ DE DISTANCIAS CANAL
MAS
FIGURA 37: MATRIZ DE DISTANCIAS MAS
IEL2-2002-II-06IEL2-2002-II-08
43
MENOS
FIGURA 38: MATRIZ DE DISTANCIAS MENOS
CAMA
FIGURA 39: MATRIZ DE DISTANCIAS CAMA
ATRAS
FIGURA 40: MATRIZ DE DISTANCIAS ATRAS
IEL2-2002-II-06IEL2-2002-II-08
44
PIE
FIGURA 41: MATRIZ DE DISTANCIAS PIE
ALO
FIGURA 42: MATRIZ DE DISTANCIAS ALO
TEL
FIGURA 43: MATRIZ DE DISTANCIAS TEL
IEL2-2002-II-06IEL2-2002-II-08
45
DOC
FIGURA 44: MATRIZ DE DISTANCIAS DOC
5.2 Hardware
Aunque se cumplieron varios de los objetivos trazados para este proyecto, el
dispositivo no funciono como un todo. El procesamiento de la señal de entrada fue
logrado con éxito ya que a una entrada acústica de algunos milivoltios se le logro
amplificar y filtrar de tal manera que en todas las pruebas que se hicieron la señal
cubría los rangos de ancho de banda propuestos y lograba un ganancia tan
considerable que permite manejar un rango de voltaje desde 120 milivoltios hasta
5 voltios.
Los procesos de lectura y escritura fueron aprobados satisfactoriamente puesto
que en pruebas hechas con el dispositivo programable se logró leer y escribir la
memoria ram interna, flash interna y ram externa usadas para el desarrollo del
dispositivo.
La etapa de salida infrarroja funciona correctamente ya que cuando se implemento
el transmisor y receptor estos transmitían y recibían el protocolo asignado sin
ningún problema.
Aunque los programas en simulación funcionan pues fueron probados y simulados
uno por uno el PIC16f877 dispositivo que se uso para la implementación del
proyecto, no dio resultados satisfactorios, el sistema no adquiere todos los datos
necesarios para empezar el proceso de reconocimiento o entrenamiento y por tal
IEL2-2002-II-06IEL2-2002-II-08
46
motivo queda en un ciclo infinito en el que espera mas datos de entrada y por lo
tanto entra en un estado de Standby.
5.2.1 ENCABEZADOS DE LAS FUNCIONES
Los encabezados de las funciones que fueron programadas en el PIC son:
;*******************************************************************************************;NUMEROS FLOTANTES DE 24 BITS *;*******************************************************************************************; CONFIGURACION: *; -REGISTRO 0 = EXP *; -REGISTRO 1 = B0 *; -REGISTRO 2 = B1 *; *; CADA NÚMERO TIENE 3 REGISTROS UBICADOS EN SUS RESPEC- *; TIVOS ESPACIOS DE MEMORIA. *;*******************************************************************************************
;*******************************************************************************************; ESCRIBIR EN LA RAM ESTERNA *;*******************************************************************************************; ANTES DE LLAMAR LA FUNCION HAY QUE CARGAR X1DIR = PARTE *; BAJA DE LA DIRECCION, X1DIRH = PARTE ALTA *; DE LA DIRECCION Y DATO = NUMERO A GUARDAR EN LA RAM. *; LO QUE HACE ESTA FUNCION ES COGER X1DIR, X1DIRH Y *; DATO, CARGARLOS EN SUS RESPECTIVOS REGISTROS PORTB, *; PORTC Y PORTD Y EJECUTAR LA ESCRITURA HABILITANDO CON *; LOGICA NEGADA CS, OE Y WR BITS DE LA RAM QUE ESTAN UBICADOS *; EN EL PORTE. *; *; VARIABLES USADAS *; -CS *; -OE *; -WR *; REGISTROS USADOS *; -X1DIR *; -X1DIRH *; -DATO *;*******************************************************************************************
IEL2-2002-II-06IEL2-2002-II-08
47
;*******************************************************************************************; LEER LA RAM EXTERNA *;*******************************************************************************************; ANTES DE LLAMAR LA FUNCION HAY QUE CARGAR LOS *; REGISTROS X1DIR Y X1DIRH LOS CUALES LLEVAN LA DIRECCION *; BAJA Y ALTA DEL DATO DE LA RAM QUE SE QUIERE LEER, *; LUEGO HABILITANDO CON LÓGICA NEGADA USANDO CS, OE Y WR *; SE HABILITA LA LECTURA, EL DATO SE LEE DEL PORTD Y SE CARGA *; EN EL REGISTRO DATO. *; *; VARIABLES USADAS *; -CS *; -OE *; -WR *; REGISTROS USADOS *; -X1DIR *; -X1DIRH *; -DATO *;*******************************************************************************************
;*******************************************************************************************; DIST *;*******************************************************************************************; - DIST CALCULA LA DISTANCIA EUCLIDIANA DE DOS ARREGLOS DE *; 12 CEPSTRALES. *; - LA SUMATORIA QUEDA CARGADA EN EL REGISTRO XD. *; - TAMBIEN QUEDA EN A PARA PODER SACARLE LA RAIZ CUADRADA *; Y ASÍ OBTENER LA DISTANCIA. *; *; XD = XD + (X1-X2) ^ 2 *; *; ANTES DE LLAMAR LA FUNCION SE DEBE HACER: *; *; MOVLW XINL *; MOVWF XINDIR ; GUARDA LA DIRECCION DE X1 *; MOVLW XINH *; MOVWF XINDIRH *; MOVLW XREFL *; MOVWF XREFDIR ; GUARDA LA DIRECCION DE X2 *; MOVLW XREFH *; MOVWF XREFDIRH *;*******************************************************************************************
IEL2-2002-II-06IEL2-2002-II-08
48
;*******************************************************************************************; MINIMO *;*******************************************************************************************; - CALULA EL MINIMO DE TRES NUMEROS (X1, X2 Y X3). *; - DEVUELVE EL NUMERO MENOR EN LOS REGISTROS AEXP, *; AARGB0, AARGB1. *;*******************************************************************************************
;*******************************************************************************************; DISTORSION *;*******************************************************************************************; *; XIN = PALABRA DE ENTRADA *; XREF = PALABRA DE REFERANCIA *; XMIN = MENOR DISTANCIA ENTRE XIN Y XREF *; *; - LA FUNCION CARGA LAS DIRECCIONES DE XIN EN LA FLASH Y XREF *; EN LA RAM EXTERNA. *; - CALCULA EL DTW DE DOS ARREGLOS DE VECTORES DE *; CEPSTRALES. *; - COMO SALIDA SE TIENE EL MENOR DE LAS DISTANCIAS ENTRE *; LAS DOS PALABRAS. *; *;*******************************************************************************************
;*******************************************************************************************; PREENFASIS *;*******************************************************************************************; - TENGO LA ÚLTIMA POSICIÓN DEL VECTOR X. *; - PREENFASIS REALIZA LA SIGUIENTE FUNCIÓN: *; *; X[I] = X[I-1]*PREE, DONDE PREE = 0.98 *; *; - PARA LA POSICIÓN CERO SE REALIZA X[0]*=1.0-PREE. *; *;- SE ASIGNA LA ULTIMA POSICION DE XI EN LA FLASH YA QUE EL *; CICLO SE DECREMENTA. *;****************************************************************************************** *
IEL2-2002-II-06IEL2-2002-II-08
49
;*******************************************************************************************;HAMMING *;*******************************************************************************************; - MULTIPLICA LA ENTRADA POR LA VENTANA DE HAMMING *; *; VH = 0.54 - 0.46*COS (2*PI*I/255) *; *; XI = XI*VH *; *; - XI = DATOS DE ENTRADA (VENTANAS DE 256 DATOS) *; - VH = VENTANA DE HAMMING *; - EL RESULTADO SE GUARDA EN LAS MISMAS DIRECCIONES *; DE LA FLASH EN LAS QUE SE GUARDA XI. *;*******************************************************************************************
;*******************************************************************************************; AUTOCORRELACION *;*******************************************************************************************; - CALCULA LA AUTOCORRELACION DE LA VENTANA DE DATOS *; DESPUES DE PASAR POR LA VENTANA DE HAMMING Y EL *; PRE-ENFASIS. *; *; S = S + X[I]*X[I+K] *; *; RXX[K] = S/(256 - (ORDEN+1)) *; *;- EL ORDEN DE LA AUTOCORRELACION UTILIZADO ES DE 12. *; *; S = VARIABLE UBICADA EN LA RAM INTERNA. *; RXX = VECTOR DE AUTOCORRELACION UBICADO EN *; LA RAM INTERNA. *;*******************************************************************************************
IEL2-2002-II-06IEL2-2002-II-08
50
;*******************************************************************************************; LEVINSON *;*******************************************************************************************; - CALCULA EL COEFICIENTE DE REFLECCION DE LA SEÑAL, DESPUES *; DE HABER PASADO POR LS AUTOCORRELACION. *; - ACTUALIZA EL ORDEN DEL ERROR DE PREDICCION DE LOS *; FILTROS Y DE LA PREDICCION *; - CALCULA LA SOLUCION DE LAS ECUACIONES DE YULE-WALKER. *; *; - A = MATRIZ DE 13 X 13 UBICADA EN LA FLASH. *; - b = VARIABLE INTERNA, UBICADA EN LA RAM INTERNA. *; - RXX = VECTOR DE AUTOCORRELACION. *; - AR = SOLUCION DE YULE-WALKER. *; - K, L, M, I = CONTADORES DE LA FUNCION. *; *; - K EMPIEZA EN 2 Y VA HASTA ORDEN. *; - L VA HASTA K-1 Y EMPIEZA EN 1. *; *; b = RXX [K] *; *; b = b – A [K-1][L]*RXX [K-L] *; *; A [K][K] = b / RHO [K-1] *; *; - I VA HASTA K Y EMPIEZA EN 1. *; *; A [K][I] = A[K-1][I] + A [K][K]*A [K-1][K-I] *; *; RHO [K] = (1 – A [K][K]*A [K][K])*RHO [K-1] *; *; - M VA HASTA ORDEN Y EMPIEZA EN 1. *; *; AR [M] = A [ORDEN][M] *; *; AR [0] = RXX [0] *; *;*******************************************************************************************
IEL2-2002-II-06IEL2-2002-II-08
51
;*******************************************************************************************; LPC2CEP *;*******************************************************************************************; - CALCULA LOS CEPTRALES DE CADA VENTANA DE ENTRADA. *; *; SUM = SUM + (N-I)*A[I]*C[N-I] *; *; C[N] = -(A[N] + SUM/N) *; *; SUM = VARIABLE UBICADA EN LA RAM INTERNA. *; A = VECTOR CALCULADO EN LEVINSON. *; C = VECTOR DE CEPTRALES UBICADO EN LA RAM INTERNA. *; *; - C ES UN VECTOR DE 12 POSICIONES QUE GUARDA CADA UNO DE *; LOS CEPTRALES DE CADA VENTANA. *; *;*******************************************************************************************
5.3 CONCLUSIONES
• Existen mejores dispositivos como los DPS (Procesador de señales
digitales) que ayudan ha un mejor desarrollo para esta clase de proyectos
donde el procesamiento de señales y en especial las de audio son
necesarias.
• Debido a las pruebas que se le hicieron a los programas de reconocimiento
en simulación, se puede asegurar el correcto funcionamiento del
dispositivo.
• El PIC16F877 aunque es un buen dispositivo no alcanzo a llevar a
cabalidad todos los procesos que son necesarios para este proyecto, pues
logro implementar unos procesos y otros no.
• El llevar a cabo más pruebas con este dispositivo llegará a una
implementación correcta del proyecto ya que, las dificultades que se tienen
en la actualidad pueden ser causa de problemas en su programación.
IEL2-2002-II-06IEL2-2002-II-08
52
• EL procesamiento de señal es muy bueno ya que la señal obtenida
después de su filtraje y digitalización es una señal acústica limpia, con
buena ganancia y sin problemas para su partición de ventanas.
• La etapa de salida infrarroja es la mejor para el desarrollo de este proyecto
ya que por sus características de transmisión y recepción no genera
problemas para el funcionamiento de los equipos médicos que estén
interactuando con el paciente.
IEL2-2002-II-06IEL2-2002-II-08
53
6. JUSTIFICACIÓN DE POSIBLES DIFERENCIAS ENTRE EL
INFORME DE 50% Y LA ENTREGA FINAL
6.1 DSP
En el informe del 50% se propuso el uso del DSP porque es un elemento
electrónico diseñado para el procesamiento de señales y usado en casi todas las
aplicaciones de sistemas de tratamiento de señales de audio y de voz.
FIGURA 45: TARJETA DE EVALUACION TEXAS TMS320C541
IEL2-2002-II-06IEL2-2002-II-08
54
La universidad se dispone de tarjetas de evaluación Texas Instruments que
contienen un DSP TMS320C541, un conversor análogo digital TAC320XXXX,
puerto serial y paralelo y otros elementos que permitían un total desarrollo del
proyecto en un solo dispositivo. Esta es tarjeta PCI (figura 20) no extraíble, pues
su alimentación dependía directamente del PC. Pero aunque este es un
dispositivo ideal para este tipo de aplicaciones no contamos con la antigüedad de
esta tarjeta y por lo tanto fue complicado instalarla y conseguir el software para el
desarrollo de la misma.
FIGURA 46: DIAGRAMA DE BLOQUES DSP TMS320C541
IEL2-2002-II-06IEL2-2002-II-08
55
6.1.1 Características
• Lleva consigo ocho buses de 16 bits de los cuales cuatro son buses de
datos y programación y los cuatro restantes son de direccionamiento.
Direcciona más de dos datos en memoria por ciclo de reloj del sistema.
• La memoria esta organizada en tres espacios individuales, una ROM de 28
K en la que 20 K se destinaba para la programación y 8 K para otra
información y una SRAM de 5 K para datos I/O de entrada y salida.
• Su ALU, Unidad Lógica Aritmética, es de 40 bits y trabaja en 2-
complemento, además tiene dos acumuladores A y B de 40 bits para un
mejor desempeño de la ALU.
• Contiene una unidad sumadora y multiplicadora que permite la
multiplicación en 2-complemento de dos números con un máximo de 17 bits
y sumas de números de 40 bits.
• Su puerto serial sincrónico es de alta velocidad y puede comunicarse en
forma serial con dispositivos como CODECS, conversores (A/D) y otros
sistemas seriales.
6.1.2 Instalación
El proceso de instalación fue muy complejo ya que este tipo de tarjetas usan
ciertas paginas de memoria del computador (Figura 22), estos espacios eran
seleccionados por la tarjeta dependiendo de la combinación que tuviera en los dos
switches localizados en la tarjeta, si estos espacios son ocupados por otros
dispositivos, la tarjeta no es reconocida y no puede ser instalada.
IEL2-2002-II-06IEL2-2002-II-08
56
FIGURA 47: SWITCHES EN LA TARJETA
6.1.3 Programación
Después de la instalación proseguimos con el proceso de programar el CODEC y
el DSP, pero esta tarea fue difícil de realizar debido a la poca información
disponible sobre este dispositivo, aunque teníamos el programa del codec listo, el
dispositivo no realizaba la tarea que le asignamos y por lo tato nunca pudimos
obtener la señal de voz.
IEL2-2002-II-06IEL2-2002-II-08
57
FIGURA 48: DIAGRAMA DE BLOQUES DEL CODEC
La programación del CODEC no es nada compleja ya que lo que se hace es
configurar ocho registros. Estos son:
• Registro 0: Encargado de permitir el ajuste de fase de la señal.
• Registro 1: Registro que controla el contador A.
• Registro 2: Registro que controla el contador B.
• Registro 3: Controla el ajuste de fase del periodo de muestreo.
• Registro 4: Ajuste de ganancia.
• Registro 5: Controles de la configuración análoga.
• Registro 6: Controles de la configuración digital.
• Registro 7 y 8: Usados cuando se usa la configuración maestro esclavo.
IEL2-2002-II-06IEL2-2002-II-08
58
Lo que se hizo primordialmente fue cargar las constantes necesarias en los
registros 1 y 2 (A y B) obtenidas con las siguientes formulas dadas en el datasheet
del CODEC:
Estas constantes permiten configurar los límites de alta y baja del filtro pasabanda
que trae consigo el CODEC. En nuestro caso como debemos muestrear a 16 k y
el reloj es de 10.368 MHz, el registro A debe tener un valor de 32 y el B de 10
para así obtener como límites 81 Hz – 4 KHz cubriendo las frecuencias de voz
más usadas por las personas.
Luego empezamos con la programación de el DSP pero al tratar de hacerlo nos
dimos cuenta que al escribir algunos comandos el entendía otros en el lenguaje de
la máquina, por lo cual cualquier programa que quisiésemos hacer no lo simulaba
ni programaba bien.
Por esto en ese momento y faltando 35 días para la entrega del proyecto
decidimos cambiar de dispositivo por esto pasamos de un DSP a un PIC, un
elemento que aunque no conocíamos bien, ya otras personas cercanas a nosotros
tenían experiencia con el y podían ayudarnos en su programación.
IEL2-2002-II-06IEL2-2002-II-08
59
Obviamente por este cambio tan drástico de sistema, en el proyecto se sumaron
otros dispositivos que aunque estaban antes en la tarjeta, ahora deberíamos
unirlos y acoplarlos a lo que se necesitaba hacer en este proyecto. Estos son una
memoria RAM para aumentar la capacidad del PIC, un filtro que pudiese adquirir
de forma correcta la señal de voz y un amplificador para poder tener un mejor
procesamiento de señal.
IEL2-2002-II-06IEL2-2002-II-08
60
7. BIBLIOGRAFIA Y FUENTES DE INFORMACION
• B.S. Atal, V. Cuperman, A. Gersho, Advances in Speech Coding, Kluwer
Academic Publishers, 1991.
• P. Bamber et al. "Phoneme-based training for large vocabulary recognition
in six European languages", Proc EUROSPEECH91, pp. 175-182, 1991.
• Antonio Bonafonte, Pablo Aibar, Nuria Castell, Eduardo Lleida, José B.
Mariño, Emilio Sanchís y M. Inés Torres "Desarrollo de un Sistema de
Diálogo Oral en Dominios Restringidos", Jornadas en Tecnologías del
Habla, Sevilla, Noviembre 2000.
• G. Bristow. Electronic Speech Recognition, Techniques, technology &
Applications, McGraw-Hill, 1986.
• H. Dudley, "Remaking Speech", J. Acoust. Soc. Am., vol 11, pp 169-77,
1939.
• S. Furui, Digital Speech Processing, Synthesis and Recognition, Marcel
Dekker, Inc, 1989.
• N.S. Jayant, P. Noll, Digital Coding of Waveforms, principles and
applications to speech and video, Prentice-Hall, 1984
• N.S. Jayant, P. Noll, Digital Coding of Waveforms, principles and
applications to speech and video, Prentice-Hall, 1984
• E.A.Lee, "Programmable DSP Architectures", IEEE ASSP Magazine Vol 5,
nº 4, Part I 1988, Vol 6, nº 1, Part II, 1989.
• S.E. LEvinson, J.P. Olive, J.S. Tshirgi, "Speech Synthesis in
Telecommunications", IEEE Comm. Magazine, Vol 31, nº 11, 1993.
• E. Lleida, J.B. Mariño, A. Moreno, "TELEMACO- A Real Time Keyword
Spotting Application for Voice Dialing", Proc. EUROSPEECH93, pp. 1801-
1804, 1993.
IEL2-2002-II-06IEL2-2002-II-08
61
• J. Mariani, "Recent Advances in Speech Processing", Proc. IEEE ASSP89,
Vol S1, pp. 429-440, 1989.
• R. Moore, Speech Processing, McGraw-Hill, 1990.
• P. Noll, "Wideband Speech and Audio Coding", IEEE Comm. Magazine, Vol
31, nº 11, 1993.
• L.R. Rabiner, "Applications of voice processing to telecommunications", in
New Advances and Trends in Speech Recognition and Coding, Proc of
NATO-ASI, Granada, 1993.
• D.H. Klatt, "Review of the ARPA Speech Understanding Project", J. Acost.
Soc. Am. vol 62, nº 6, 1977.
• L.R. Rabiner, B.H. Juang, Fundamental of Speech Recognition, Prentice-
Hall, 1993.
• D.B. Roe, J.G.Wilpon, "Whither Speech Recognition: the next 25 years",
IEEE Comm. Magazine, Vol 31, nº 11, 1993.
• Y. Sagisaka, "Speech Synthesis from text", IEEE Comm. Magazine, Vol 28,
nº 1, 1990.
• D. O'Shaughnessy, Speech Communications, humman and machine,
Addison-Wesley, 1987.
• R. Sukkar, K. Kinder, "Accessing Custom Calling Telephone Services Using
Speech Recognition", Proc ICSPAT-92, Vol 2 pp. 994-999, 1992.
• Waibel, "System for Natural Human-Human and Human-Computer
Interaction", in New Advances and Trends in Speech Recognition and
Coding, Proc of NATO-ASI, Granada, 1993.
• N.S. Jayant, P. Noll, Digital Coding of Waveforms, principles and
applications to speech and video, Prentice-Hall, 1984.
IEL2-2002-II-06IEL2-2002-II-08
62
• W.V. Kempelen, "Le mechanisme de la parole suivi de la description de un
machine parlante", J.V. Degen, Vienna, 1791.
• W.A. Lea, Trends in Speech Recognition, Prentice-Hall, 198
• David Cook, “http:// www.robotroom.com/Infrared555.html”