124
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD ZACATENCO Ingeniería en Comunicaciones y Electrónica Academia de Acústica RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL HABLA PARA LAS FUNCIONES DE UN AUTOMÓVILTESIS QUE PARA OBTENER EL TÍTULO DE INGENIERO EN COMUNICACIONES Y ELECTRÓNICA PRESENTAN ALFONSO JORGE BONNET FUENTES JOSÉ ALFONSO GUTIÉRREZ OSORIO HÉCTOR ALONSO HERNÁNDEZ BENÍTEZ DIRECTOR DE TESIS: M. EN C. MARIO JIMÉNEZ HERNÁNDEZ. CODIRECTOR DE TESIS: ING. PATRICIA LORENA RAMÍREZ RANGEL.

RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD ZACATENCO

Ingeniería en Comunicaciones y Electrónica

Academia de Acústica

“RECONOCEDOR AUTOMÁTICO DE COMANDOS POR

MEDIO DEL HABLA PARA LAS FUNCIONES DE UN

AUTOMÓVIL”

TESIS

QUE PARA OBTENER EL TÍTULO DE

INGENIERO EN COMUNICACIONES Y ELECTRÓNICA

PRESENTAN

ALFONSO JORGE BONNET FUENTES

JOSÉ ALFONSO GUTIÉRREZ OSORIO

HÉCTOR ALONSO HERNÁNDEZ BENÍTEZ

DIRECTOR DE TESIS: M. EN C. MARIO JIMÉNEZ HERNÁNDEZ. CODIRECTOR DE TESIS: ING. PATRICIA LORENA RAMÍREZ RANGEL.

Page 2: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …
Page 3: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Resumen

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil II

Resumen

La presente tesis muestra el diseño y desarrollo de un programa de reconocimiento

de voz orientado a la implementación de un sistema de control de funciones

dentro de un automóvil. Cabe destacar que el alcance de esta tesis abarcara sólo el

desarrollo del software y no su implementación, por lo que este trabajo puede ser

consultado para futuras referencias.

El método utilizado para la obtención de datos de las señales de voz se le conoce

como Codificación por Predicción Lineal (LPC – por las siglas en inglés Linear

Prediction Coding), el cual junto con la implementación de ventanas obtiene

información característica de una señal de voz haciendo más sencilla y rápida la

comparación entre la señal ingresada y la base de datos. Dicha base está

conformada por seis comandos ( “A”, “Afuera”, “Usuario”, “Llamada”, “Cajuela “

y “Luces”), cada uno grabado veinte veces, formando así un total de ciento veinte

archivos en formato “.wav”, audio monofónico, una tasa de 16 bits y una

frecuencia de muestreo de 22050 Hz. Todos los archivos fueron normalizados y

segmentados.

Se utilizó la plataforma de MATLAB (Matrix Laboratory) y la herramienta “GUIDE”

(Graphical User Interface Development Enviroment – incluida dentro de MATLAB),

para crear una interfaz gráfica capaz de reconocer los diferentes comandos dichos

por el usuario, y a su vez, este pueda visualizar la forma de onda, los LPC y la

transformada rápida de Fourier (FFT por sus siglas en inglés Fast Fourier

Transform), además de darle la oportunidad de trabajar con la señal de voz.

El software obtiene los LPC de la señal del usuario y los compara con los de la

base de datos por medio del error cuadrático medio, y así, se determina qué

comando se expresó.

Page 4: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Agradecimientos

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil III

Agradecimientos

Quiero dedicar y agradecer esta tesis a mis padres Crispina y Alfonso por

brindarme todo su apoyo y cariño para lograr esta meta que sin su ayuda hubiera

sido muy difícil cumplirla, ustedes me dieron las herramientas necesarias para

enfrentarme a la vida, los amo, a mi hermana Adriana por su ayuda y por ser un

modelo a seguir, la amo, a todos mis amigos por animarme en los tiempos más

difíciles y estresantes, a mis profesores de toda la carrera por sus conocimientos y

dedicación, a mis asesores porque sin su orientación este trabajo no hubiera sido

posible y finalmente a mis amigos y compañeros Héctor y José Alfonso por

compartir este trabajo y llevarlo hasta el final, ¡sí se pudo!, les deseo éxito en todo

lo que hagan.

Bonnet Fuentes Alfonso Jorge

Agradezco el apoyo y asesoría que nos brindaron los profesores Mario de la

academia de física, Patricia de la academia de acústica, para el desarrollo de este

proyecto, así como la dedicación y esfuerzo de mis compañeros y amigos Héctor

Alonso y Alfonso Jorge en la realización de tal, por las desmañadas y desveladas,

por nunca rendirse y les agradezco por todas las cosas que aprendí y que por

ustedes seguiré aprendiendo. A los compañeros de clases por la motivación que

nos brindaron. Finalmente a mi familia, por el apoyo incondicional para cualquier

cosa a lo largo no solo del desarrollo de este proyecto, si no a lo largo de toda la

carrera.

Gutiérrez Osorio José Alfonso

Page 5: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Agradecimientos

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil IV

A mi hermosa familia, que en todo momento estuvo ahí para apoyarme y

sustentarme cuando más lo necesitaba, en especial a mis padres, que fueron el pilar

y el motor de todo lo que he realizado como estudiante. A mis compañeros, a los

que siempre supieron hacerme sonreír aún cuando las adversidades estuvieron

presentes, a los que con humildad me brindaron de su conocimiento, a los que tuve

que confrontarme pues de ellos aprendí a escuchar nuevas ideas, a ser más

tolerante y a crecer como persona, y a todos aquellos que en gran o pequeña

medida dejaron una huella en mi vida. A mis profesores, que me ofrecieron la

herramienta del conocimiento para con ellas construir mi futuro, pero sobre todo, a

aquellos que más que conocimiento me compartieron de sus experiencias y

vivencias.

Hernández Benítez Héctor Alonso

Page 6: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Índices

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil V

Índice de contenido Introducción XII Objetivo XIII

Hipótesis XIII

Justificación XIV

Capítulo 1: Antecedentes históricos 1

Capítulo 2: Marco teórico 5

2.1.- Teoría de la producción del habla 5

2.1.1.- Producción anatómica del habla 5 2.1.2.- La fonética 7 2.1.2.1.- Clasificación por su modo de excitación 7 2.1.3.- Fonemas 7

2.2.- Modelo acústico del habla 9

2.2.1.- La producción del habla 9 2.2.2.- Filtrado del tracto vocal 10 2.2.3.- Radiación en los labios 12

2.3.- Modelo digital de la producción del habla 13

2.3.1.- Excitación 13 2.3.2.- Filtrado 15 2.3.3.- Radiación 16 2.3.4.- Modelo completo 17

2.4.- Análisis en el dominio del tiempo 17 2.4.1.- Transducción, muestreo y cuantización del habla 18 2.4.2.- Análisis en tiempo corto 19 2.4.2.1.- Energía 21 2.4.2.2.- Función de autocorrelación 22

2.5.- Análisis de Fourier en tiempo corto 24

2.5.1.- Transformada rápida de Fourier 25

Page 7: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Índices

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil VI

2.6.- Análisis predictivo lineal 26 2.6.1.- Análisis de la señal del habla 27 2.6.2.- Método de autocorrelación 28 2.6.3.- Algoritmo de Levinson-Durbin 29

2.7.- Sistema de verificación de usuario 30

Capítulo 3: Desarrollo del proyecto 32

3.1.- Interfaz grafica de usuario (GUI) 33 3.1.1.- Partes de la GUI 36 3.1.1.1.- Texto estático (static text) 37 3.1.1.2.- Botón (push button) 38 3.1.1.3.- Texto editable (edit text) 39 3.1.1.4.- Ejes (axes) 40 3.1.1.5.- Panel (panel) 41 3.1.2.- Funcionamiento de una GUI 42 3.1.3.- Interfaz del reconocedor de voz 42 3.2.- Base de datos 43 3.2.1.- Grabación 43 3.2.2.- Normalización 45 3.2.3.- Segmentación 47 3.3.- Programación del reconocedor de comandos 49 3.3.1.- Caracterizar 49 3.3.2.- Reconocer 55 3.3.2.1.- Petición y grabación del comando 56 3.3.2.2.- Cálculo de la energía 58 3.3.2.3.- Normalización y cálculo de los LPC 63 3.3.2.4.- Cálculo del error cuadrático medio 67 3.3.2.5.- Determinación del comando 68

Capítulo 4: Pruebas y resultados 78

4.1.- Prueba con automóvil apagado en un ambiente silencioso 79 4.2.- Prueba con el motor encendido en diferentes vehículos 84 4.3.- Prueba con el motor encendido y en un ambiente de tráfico 91

Page 8: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Índices

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil VII

Conclusiones 94

Bibliografía y referencias 96

Anexo A 97

Anexo B 107

Anexo C 109

Page 9: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Índices

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil VIII

Índice de imágenes

Capítulo 2: Marco teórico

Fig. 2.1.- Corte sagital del tracto vocal. 6 Fig. 2.2.- Velocidad – volumen glotal: a) forma de onda (tren de impulsos 9

– línea segmentada), b) magnitud de espectro. Fig. 2.3.- Tubo uniforme sin perdidas de longitud “l” y una abertura con

área “A”. 10 Fig. 2.4.- Respuesta en frecuencia de un tubo uniforme sin perdidas. 11 Fig. 2.5.- Modelo de tubos concatenados (seis secciones). 12 Fig. 2.6.- Radiación de los labios: a) Bafle plano infinito, b) Respuesta en

frecuencia del bafle plano infinito. 13 Fig. 2.7.- Modelo de excitación para sonidos vocálicos. 14 Fig. 2.8.- Modelo de excitación para sonidos sordos. 14 Fig. 2.9.- Modelo completo de la excitación. 15 Fig. 2.10.- Modelo digital de la producción del habla completo. 17 Fig. 2.11.- Implementación de ventana rectangular. 20

Fig. 2.12.- Cálculo de la energía (gráfica azul) de la grabación de la palabra” hipotenusa” (gráfica negra). 21

Fig. 2.13.- Cálculo de la función de autocorrelación (abajo) para una señal periódica (arriba). 23

Fig. 2.14.- Cálculo de la función de autocorrelación (abajo) para una señal no periódica (arriba). 23

Fig.2.15.- Transformada de Fourier de segmentos de señales de voz de diferentes longitudes. (A) Segmento de señal de 5ms. (B) Transformada de Fourier de (A). (C) Segmento de señal de voz de 37.5ms. (D) Transformada de Fourier de (C). 24

Fig.2.16.- Espectro digital utilizando FFT. 25

Capítulo 3: Desarrollo del proyecto

Fig. 3.1.- Primer modo de acceso a la herramienta GUIDE de MATLAB. 34 Fig. 3.2.- Segundo modo de acceso a la herramienta GUIDE de MATLAB. 34 Fig. 3.3.- Ventana de inicio rápido de GUIDE. 35 Fig. 3.4.- Espacio de trabajo para crear una interfaz 35 Fig. 3.5.- Desglose de la paleta de componentes. 36 Fig. 3.6.- Inserción de un texto estático; a) Ícono de texto estático,

b) Texto estático en la interfaz gráfica. 37 Fig. 3.7.- Edición del texto estático en el inspector de propiedades. 38 Fig. 3.8.- Inserción de un botón; a) Ícono de botón, b) Ejemplo de botones en la

interfaz gráfica. 38 Fig. 3.9.- Inserción de un texto editable; a) Ícono de texto editable,

b) Ejemplo de texto editable en la interfaz gráfica. 40 Fig. 3.10.- Inserción de un eje; a) Ícono de ejes, b) Ejemplo de un eje en la interfaz

gráfica. 41

Page 10: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Índices

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil IX

Fig. 3.11.- Inserción de un panel; a) Ícono del panel, b) Ejemplo de panel en la interfaz gráfica. 42

Fig. 3.12- Interfaz del reconocedor de comandos. 43 Fig. 3.13.- Diagrama de flujo para programa de grabación. 44 Fig. 3.14.- Diagrama de flujo para programa de normalización. 45 Fig. 3.15.- Modo de abrir un archivo en Audacity. 47 Fig. 3.16.- Forma de onda dentro de la interfaz de Audacity. 47 Fig. 3.17.- Selección de una parte de la señal de onda. 48 Fig. 3.18.- Forma de onda después de ser segmentada. 48 Fig. 3.19.- a) Diagrama de flujo sección caracterizar. 54 Fig. 3.19.- b) Complemento del diagrama de flujo sección caracterizar. 55 Fig. 3.20.- Menú de opciones en forma de árbol. 56 Fig. 3.21.- Estructura general del proceso de reconocimiento. 56 Fig. 3.22.- Diagrama de flujo para la sección de petición y grabación

del comando. 57 Fig. 3.23.- Diagrama de flujo para el cálculo de la energía. 60 Fig. 3.24.- Ventana con el mensaje “No se ha dicho ningún comando”. 62 Fig. 3.25.- Despliegue de información y señal en la sección de GUI

denominada “Dominio en el Tiempo”. 63 Fig. 3.26.- Gráfica de los LPC de la señal y despliegue de los valores de

error en la sección de la GUI denominada “Procesamiento de la señal”. 63

Fig. 3.27.- Diagrama de flujo para la normalización y cálculo de los LPC. 66 Fig. 3.28.- Diagrama de flujo para el cálculo del error cuadrático medio. 67 Fig. 3.29.- a) Diagrama general de la sección determinación de comando. 70 Fig. 3.29.- b) Parte 1 del diagrama general de la sección determinación de

comando; c) Parte 2 del diagrama general de la sección determinación de comando; d) Parte 3 del diagrama general de la sección determinación de comando. 71

Fig. 3.30.- Mensaje de reconocimiento del comando “A”. 73 Fig. 3.31.- Mensaje de reconocimiento del comando “Afuera”. 74 Fig. 3.32.- Mensaje de reconocimiento del comando “Usuario”. 74 Fig. 3.33.- Mensaje de reconocimiento del comando “Llamada”. 75 Fig. 3.34.- Mensaje de reconocimiento del comando “Luces”. 75 Fig. 3.35.- Mensaje de reconocimiento del comando “Cajuela”. 76 Fig. 3.36.- Ventana para la opción de reinicio. 76

Page 11: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Índices

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil X

Capítulo 4: Pruebas y resultados

Fig. 4.1.- Posicionamiento del individuo y la computadora para pruebas dentro del automóvil. 78

Fig. 4.2.-Respuesta del programa de reconocimiento de voz en porcentaje de cada comando para el sujeto 1 en la prueba 1. 81

Fig. 4.3.- Respuesta del programa de reconocimiento de voz en porcentaje de cada comando para el sujeto 2 en la prueba 1. 82 Fig. 4.4.- Respuesta del programa de reconocimiento de voz en porcentaje de cada comando para el sujeto 3 en la prueba 1. 83 Fig. 4.5.- Comparación de la respuesta del programa de reconocimiento de voz en porcentaje de cada uno de los sujetos. 84 Fig. 4.6.- Respuesta del programa de reconocimiento de voz en porcentaje de cada comando para el sujeto 1 en el vehículo 2 de la prueba2. 86 Fig. 4.7.- Respuesta del programa de reconocimiento de voz en porcentaje de cada comando para el sujeto 1 en el vehículo 1 de la prueba 2. 88 Fig. 4.8.- Señales obtenidas en el vehículo 2 de a) voz y b) su respectivo

espectros de frecuencia. 88 Fig. 4.8.- Señales obtenidas en el vehículo 2 de c) ruido de auto, e) ruido más voz y su respectivo espectros de frecuencia: d) ruido de auto,

f) ruido más voz. 89 Fig. 4.9.- Señal obtenida en el vehículo 1 de a) voz, c) ruido de auto y e) ruido más voz y los espectros de frecuencia b) voz, d) ruido auto, f) ruido más voz. 91 Fig. 4.10.- Respuesta del programa de reconocimiento de voz en porcentaje de cada comando para el sujeto 1 en la prueba 3. 93

Anexo B Fig. B.1.- Descripción física del sonómetro. 108 Fig. B.2.- Curvas de ponderación del sonómetro. 108

Page 12: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Índices

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil XI

Índice de tablas

Capítulo 2: Marco teórico Tabla 2.1.- Fonemas del español. 8 Capítulo 4: Pruebas y resultados Tabla 4.1.- Mediciones del nivel de ruido en la prueba 1. 79

Tabla 4.2.- Resultados del sujeto 1 en la prueba 1. 80

Tabla 4.3.- Resultados del sujeto 2 en la prueba 1. 81

Tabla 4.4.- Resultados del sujeto 3 en la prueba 1. 82

Tabla 4.5.- Mediciones del nivel de ruido en vehículo 2 de la prueba2. 84

Tabla 4.6.- Resultados del sujeto 1 en el vehículo 2 en la prueba 2. 85

Tabla 4.7.- Mediciones del nivel de ruido en el vehículo 1 de la prueba 2. 86

Tabla 4.8.- Resultados del sujeto 1 con el motor encendido en el vehículo 1

en la prueba 2. 87

Tabla 4.9.- Mediciones del nivel de ruido en la prueba 3. 92

Tabla 4.10.- Resultados del sujeto 1 en el tránsito de la prueba 3. 92

Anexo B Tabla B.1.- Especificaciones del instrumento de medición. 107

Anexo C

Tabla C.1.- Especificaciones del sonómetro Phonic PAA3. 109

Page 13: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Introducción

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil XII

Introducción

La presente tesis está dividida en cuatro capítulos que tienen como finalidad

explicar de manera detallada e ingenieril, las bases teóricas y el proceso que se

llevó a cabo para el diseño de un programa que se podría implementar en el

desarrollo de un sistema con el cual el usuario de un automóvil tenga control de

funciones básicas de este.

El capítulo uno se enfoca en los precedentes históricos y tecnológicos, de los

reconocedores de voz, su importancia y la forma en la que desde su concepción

han ido evolucionando.

El segundo capítulo desarrolla y explica las bases teóricas implementadas en el

diseño del reconocedor de voz que aquí se expone. La primera sección de este

capítulo se enfoca en la producción anatómica de la voz y el estudio del habla. La

segunda sección expone el desarrollo de modelos acústicos que simulen la

producción del habla, su estudio y los modelos matemáticos. Partiendo de lo

anterior, en la sección tres se elabora un modelo digital del habla que servirá como

base para la implementación de los LPC. La sección cuatro expone los procesos en

el tiempo que sufre la señal de voz, desde su conversión a energía eléctrica hasta la

obtención de algunos parámetros de ella, como la energía. La quinta sección

expone el tratamiento de la señal en el dominio de la frecuencia, proceso necesario

para la realización de cálculos expresados en la última sección del capítulo.

Finalmente se presentan las ecuaciones que son relevantes en el método

implementado en el reconocimiento de comandos, así como la manera en que se

procesan las señales dentro de estos desarrollos matemáticos.

Page 14: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Introducción

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil XIII

El tercer capítulo comprende el desarrollo del proyecto, en el que se explica a

detalle los pasos realizados para construir el software del reconocedor de voz. El

capítulo está dividido en tres secciones, la primera expone los elementos y

características necesarios para la creación de la interfaz gráfica con la que

interactuará el usuario. La segunda sección se enfoca en la grabación y edición de

la base de datos necesaria para el sistema de reconocimiento de voz. Por último la

tercera sección desarrolla los elementos principales del reconocedor de comandos

que son caracterizar y reconocer, los cuales se enfocan en la obtención y

comparación de los LPC de la base de datos y la señal de entrada.

En el cuarto capítulo se presentan las diferentes pruebas realizadas para cuantificar

la eficiencia del software de reconocimiento así como los resultados de estas.

Objetivo

Diseñar un programa de reconocimiento de voz orientado a la implementación en

un sistema de control de funciones básicas en un automóvil.

Hipótesis

A través del método de reconocimiento de voz LPC y las herramientas que

MATLAB proporciona para el tratamiento de señales, se busca crear un programa

de reconocimiento de voz que sea de calidad, eficaz y de excelente respuesta.

Page 15: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Introducción

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil XIV

Justificación

Hoy en día la industria automovilística, al igual que muchas otras, está invirtiendo

en tecnología que haga de sus automóviles espacios más cómodos, seguros y

acordes a la tecnología que sus clientes estén usando. Ahora los automóviles

cuentan con interfaces de pantallas táctiles para el control del radio o la

calefacción, servicio de GPS (por sus siglas en inglés Global Positioning System) y

control por voz de algunos de los dispositivos del automóvil. Sin embargo son

sólo los autos de alto valor, los que cuentan con la mayoría de estos servicios, por

lo que un grupo muy limitado de personas tiene acceso a este tipo de beneficios

dentro de sus vehículos. La creación de un programa de reconocimiento de voz,

como el que se propone en esta tesis, puede dar pie al desarrollo de un sistema de

control de funciones económico y eficaz.

Page 16: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 1: Antecedentes históricos

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 1

Capítulo 1: Antecedentes históricos

El habla y el lenguaje son las herramientas que los seres humanos usan para

comunicar o intercambiar pensamientos, ideas y emociones. Las condiciones

básicas de la vida social son comprender y expresar. La primera es apropiarse de la

realidad, clasificándola ordenadamente según las palabras comunicadas. La

segunda es hacer eficaz la voluntad del ser humano, actuando sobre los demás

para dejar constancia de su presencia. En sí el habla es la conversación, una de las

formas de expresar el idioma a lo que se denomina fonación.

Los seres humanos han demostrado un gran interés no sólo por comunicarse entre

sí mismos, sino por crear dispositivos que analicen e incluso que compartan

ciertas similitudes con los humanos. En la actualidad es un tema de investigación y

desarrollo que aún sigue vigente, sin embargo se han tenido muchos avances

dentro de todo este ámbito.

En el año 1930, el científico húngaro, Tihamér Nemes quiso patentar el desarrollo

de una máquina de transcripción automática de voz, lamentablemente su iniciativa

fue considerada como poco realista y no progresó. En el año 1936, Bell Laboratories

creó el primer analizador y el primer sintetizador de voz a los que llamaron

Vocoder y Voder respectivamente. Homer Dudley, su creador, reconoció la

naturaleza de la portadora de la voz, observó que la señal de voz se forma

modulando el espectro del sonido producido por la fuente vocal. Estas fuentes

pueden ser periódicas, producto de las vibraciones de las cuerdas vocales, o

aperiódicas, producto de turbulencias del flujo de aire en una constricción. Las

modulaciones en la forma del espectro de voz pudieron ser medidas en términos

de energía en sucesivos filtros de bandas; y las fuentes periódicas y aperiódicas

representarse por un medidor de frecuencia. Voder realiza el proceso inverso,

Page 17: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 1: Antecedentes históricos

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 2

toma los datos del análisis, los entrega a una serie de filtros excitados por una señal

de pulsos periódicos o una fuente de ruido y crea finalmente una señal audible.

Este sistema era operado por sólo una persona, un operador entrenado podía hacer

que el sistema “hable” con una pronunciación razonablemente entendible. El

sistema tenía la habilidad de asombrar y entretener mientras se demostraban sus

principios científicos.

En 1952, los investigadores de Bell Laboratories: K. H. Davis, R. Biddulph y S.

Balashek, construyeron un sistema dependiente del locutor y capaz de reconocer

dígitos del 0 al 9 basándose en las características del espectro de cada número. En

1953, Walter Lawrence creó el primer sintetizador de voz basado en frecuencias

formantes, al que denominó PAT (Por sus siglas en inglés Parametric Artificial

Talker). En 1956, en los laboratorios RCA, los investigadores Harry Olson y Herbert

Belar intentaron reconocer 10 sílabas distintas con un método dependiente del

locutor. El sistema se basó nuevamente en el análisis espectral.

George Rosen, creó en 1958 el primer sintetizador articulatorio: DAVO (Por sus

siglas en inglés Dynamic Analog Vocal tract). Este modelo era controlado por una

grabación de señales de control hechas manualmente.

En 1959, la University College London con sus investigadores Dennis B. Fry y

Peter Denes, crearon un sistema capaz de reconocer cuatro vocales y nueve

consonantes. Emplearon el análisis espectral y comparación de patrones, aunque

en realidad el aspecto innovador fue el uso de información estadística, con ello

determinaron secuencias posibles de fonemas en inglés.

Durante la década de 1960 las técnicas de reconocimiento de voz dieron un nuevo

paso evolutivo. Los investigadores abordaron el problema empleando

Page 18: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 1: Antecedentes históricos

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 3

vocabularios pequeños, dependientes del locutor y con un flujo discreto. La

tecnología digital irrumpió en esta década.

En 1962, el físico Lawrence Kersta de los Bell Laboratories, realizó el primer gran

paso en la identificación de locutores al introducir el término “voiceprint” para un

espectrograma generado por un complejo dispositivo electromecánico.

Paralelamente, IBM y Carnegie Mellon University, investigaban en reconocimiento

de voz continua.

Los años 70 fueron testigos de esfuerzos por mejorar los sistemas dependientes del

locutor con entrada de voz discreta y vocabularios reducidos. ARPA (Por sus siglas

en inglés Advanced Research Projects Agency) de la sección americana de defensa,

comienza a interesarse en el reconocimiento de voz e inicia sus propias

investigaciones. Nacieron técnicas como “time warping”, “modelado

probabilístico” que son aplicaciones de los modelos ocultos de Markov, y el

“algoritmo de retropropagación”.

En 1980, los costos reducidos de las aplicaciones, el fuerte comienzo de desarrollo

de los PC y el apoyo de ARPA beneficiaron el desarrollo del reconocimiento de

habla. Se trabajó en el tamaño del vocabulario, algunos casos llegaron hasta 20,000

palabras y se cambió el enfoque trasladándose desde las técnicas de

reconocimiento según patrones a técnicas probabilísticas como son las cadenas de

Markov. Durante los años 90 se siguió trabajando con vocabularios amplios. Los

costos siguieron disminuyendo y se hicieron más comunes las aplicaciones

independientes del locutor y flujo continuo.

Los primeros modelos neuronales (como por ejemplo el perceptrón), inicialmente

propuesto en los años 50, volvieron a aparecer a finales de esta década gracias al

desarrollo de algoritmos de aprendizaje mucho más eficaces, un ejemplo de su

desarrollo es en el lenguaje de programación MATLAB cuyo nombre deriva de

Page 19: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 1: Antecedentes históricos

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 4

matrix laboratory (en español laboratorio de matrices), creado en 1970 para

proporcionar un sencillo acceso al software de matrices LINPACK y EISPACK sin

tener que usar FORTRAN (por su abreviatura en inglés The IBM Mathematical

Formula Translating System) con el que trabajó inicialmente. Desde la primera

versión muchas otras personas han contribuido al desarrollo de MATLAB. Este

lenguaje de alto nivel fue implementado para realizar cálculos técnicos. Por su

capacidad es un sistema interactivo ideal para aplicaciones de ingeniería. En la

actualidad dispone de una amplia cantidad de programas de apoyo especializados,

denominados “toolboxes”, estos extienden significativamente el número de

funciones incorporadas en el programa principal. Estos cubren prácticamente casi

todas las áreas principales en el mundo de la ingeniería y la simulación, por

ejemplo existen para el proceso de imágenes, procesamiento digital de señales,

control robusto, estadística, análisis financiero, matemáticas simbólicas, redes

neuronales, lógica difusa, entre otros. Integra todos los requisitos claves de un

sistema de computación técnico: cálculo numérico, gráficos, herramientas para

aplicaciones específicas y capacidad de ejecución en múltiples plataformas como

Windows 95/98/XP/NT, Macintosh, Unix y Linux. Todas estas herramientas

proporcionadas por MATLAB permitieron analizar, simular y crear sistemas de

reconocimientos de voz de una manera más sencilla, referente a los gráficos de

señales utilizadas en el proceso y operaciones automáticas de matrices, sin

embargo se sigue trabajando para poder hacer más eficaz las aplicaciones que se le

dan a estos sistemas de programación, debido a que tienden a trabajar con lentitud

a medida que se realizan base de datos más extensos y completos en los

reconocedores. Los sistemas del presente y presumiblemente los que puedan venir

en el futuro se basarán al menos en parte, en modelos y técnicas que aparecieron

relativamente pronto en la historia del reconocimiento automático del habla.

Page 20: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 5

Capítulo 2: Marco teórico

El objetivo del habla siempre ha sido el de la comunicación. Este siempre se ha

utilizado para comunicarse acústicamente entre un humano y otro. A lo largo del

último siglo se han logrado desarrollar tecnologías que permiten transformar esas

señales acústicas en señales eléctricas lo que se ha logrado, entre otras cosas, que el

hombre pueda interactuar con las máquinas por medio de la voz.

A partir de esta conversión de las señales de la voz (analógicas) al formato digital,

ha sido posible analizar y procesar las señales a través de medios digitales, dando

pie a lo que se conoce como procesamiento digital de señales, herramienta con la

cual se desarrollaron los métodos (LPC y la transformada rápida de Fourier) para

el reconocimiento de voz que se usará en el prototipo reconocedor de comandos

que expone esta tesis. Con estas dos bases, el habla y el tratamiento de señales

digitales, se establecerá el marco teórico que comprenderá esta tesis.

Se dividirá el capitulo en dos secciones. La primera sección está comprendida por

tres temas que se enfocan en: la producción del habla, el modelo acústico y el

digital del mismo. La siguiente sección comprende las herramientas matemáticas

que se utilizan para el desarrollo del reconocedor de comandos.

2.1.- Teoría de la producción del habla

2.1.1.- Producción anatómica del habla

El sistema encargado de producir el habla en el hombre es sumamente complicado,

cuenta con un gran número de elementos y cada uno tiene una función específica

dentro de este complejo sistema, es por esta razón que se presentará solamente

una síntesis del proceso.

Page 21: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 6

Los mecanismos utilizados en la producción del habla son: las componentes

subglotales, la laringe, el tracto vocal y los articuladores (ver Fig. 2.1). Los

componentes subglotales son los pulmones y la tráquea. Los primeros son los

encargados de suministrar la energía, en forma de aire, necesaria para producir el

sonido. El segundo canaliza este aire y lo dirige hacia la laringe. Estos dos órganos

juntos son los que ajustan el tono, el volumen y la calidad de la voz. Dentro de la

laringe se encuentran las cuerdas vocales, que son tejidos conformados por

músculos y membranas mucosas, que se extienden a lo ancho de toda la cavidad.

Estas cuerdas sirven como moduladores del aire que pasa a través de la laringe

para así, formar los sonidos. El tracto vocal, compuesto por la faringe y la cavidad

oral, actúa como un tubo resonador que filtra los sonidos. Para producir los

sonidos nasales (consonantes), el velo del paladar baja y el tracto vocal se acopla

acústicamente con la cavidad nasal. Los articuladores, que incluyen al velo del

paladar, lengua, quijada y labios, configuran al tracto vocal para determinar que

frecuencias de sonidos son las que pasan para así, producir los diferentes sonidos,

que serán radiados por los labios o por la ventana de la nariz.

Fig. 2.1.- Corte sagital del tracto vocal

Page 22: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 7

2.1.2.- La fonética

La fonética es el estudio acerca de los sonidos de uno o varios idiomas, sea en su

fisiología y acústica. Estos sonidos pueden ser clasificados por su modo de

excitación o por características especificas como los fonemas.

2.1.2.1.- Clasificación por su modo de excitación

Para el análisis de señales esta clasificación es de mucha ayuda debido a que

separa las características de la fuente del sonido de las que produce el tracto vocal.

Existen tres clases de sonidos dentro de esta clasificación:

Sonidos sonoros: son creados por vibraciones en las cuerdas vocales que

producen pulsos de aire cuasi-periódicos (vocales) a través de la laringe.

Sonidos sordos: son producidos por una excitación turbulenta en el tracto

vocal. Por ejemplo la “s” y la “f”.

Sonidos explosivos: son producidos por una explosión de energía acústica

originada por el escape de la acumulación de presión de aire en el tracto

vocal. Por ejemplo la “t” y la “p”.

2.1.3.- Fonemas

Un fonema está definido como la unidad más pequeña del sonido, que al ser

sustituido puede alterar el contenido lingüístico del mensaje. El español tiene 24

fonemas que incluyen vocales, diptongos, semivocales y consonantes. A

continuación se muestra una tabla con dichos fonemas (Tabla 2.1)

Page 23: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 8

Tabla 2.1 Fonemas del español

fonema grafía ejemplos

/a/ a

/b/ b, v vaso, bote, cava

/ / c, z cena, caza

/k/ c, qu, k casa, queso, kilo

/t∫/ ch chico, muchacho

/d/ d dado

/e/ e

/f/ f fama, café

/g/ g, gu gama, guiso

/i/ i

/x/ j, g paja, gitano

/l/ l ala, mal

/λ/ ll llave, calle

/m/ m mamá

/n/ n nana

/η/ ñ caña

/o/ o

/p/ p piedra, capa

/r/ r para

/ / rr, r perro, remo

/s/ s soy, dos

/t/ t tapa, atar

/u/ u

/ / y, hi mayo, hierba

Page 24: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 9

2.2.- Modelo acústico del habla

Teniendo conocimiento del sistema que se ocupa de producir el habla, es posible

producir un modelo acústico que realice las mismas funciones. Este sistema está

dividido en tres partes: la fuente, el filtrado y la radiación del sonido.

2.2.1.- La producción del habla

La fuente del sonido es lo que genera la energía acústica necesaria para la

producción del habla y es visto como la excitación aplicada al sistema. Esta

excitación puede ser vocálica o fricativa.

Los sonidos vocálicos son producidos por la vibración de las cuerdas vocales (que

se encuentran en la laringe). Esta oscilación, que se produce por la liberación de

presión de aire en la glotis, se repite a una frecuencia fundamental que depende de

la presión de aire detrás de las cuerdas, la masa de las cuerdas y la tensión aplicada

a ellas. El resultado es que la corriente de aire que es modulada por la glotis (junto

con las cuerdas vocales), es liberada como una serie de pulsos (ver Fig. 2.2a). La

frecuencia fundamental a la que oscilan estos pulsos es conocido como el “tono de

voz” de la persona. En la figura 2.2b, se grafica el espectro de una señal donde

pueden verse la frecuencia fundamental y sus armónicos (conocidos también como

“armónicos del tono de voz”).

a)

b)

Fig. 2.2.- Velocidad – volumen glotal: a)forma de onda (tren de impulsos – línea segmentada), b)

magnitud de espectro

Page 25: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 10

2.2.2.- Filtrado del tracto vocal

El tracto vocal filtra acústicamente los pulsos generados y permite que algunas

frecuencias pasen, mientas que a otras las atenúa. La manera más sencilla de

explicar el modelo del tracto vocal es con el “tubo sin perdidas uniforme” (ver fig.

2.3).

Fig. 2.3.- Tubo uniforme sin perdidas de longitud “l” y una abertura con area “A”.

Este es un cilindro de paredes duras, con un área transversal A constante y una

longitud l, y que en uno de sus extremos tiene un pistón que genera un flujo ideal

de presión de aire. Si se asume que en él no hay pérdidas por viscosidad o por la

conducción térmica y que sólo se producen ondas planas, el sonido dentro del

tubo cumple con el siguiente par de ecuaciones de diferenciales parciales (Ec. 2.1).

(Ec. 2.1)

Donde p es la presión y u es el volumen-velocidad, ambos valores en función de la

distancia x y el tiempo t, es la densidad del aire, y c es la velocidad del sonido.

Una característica del tubo acústico es que al resolver la Ec. 2.1 en el dominio de la

Page 26: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 11

frecuencia, se obtiene la relación de volumen-velocidad que hay en la

abertura del tubo y la que se produce en la fuente de excitación . Ver Ec. 2.2.

(Ec. 2.2)

Esta respuesta en frecuencia está ilustrada en la Fig 2.4, para l = 17.5 cm y c = 35000

cm/seg. Estos polos de (en los que el denominador vale cero) son las

frecuencias de resonancia del tubo acústico. En el habla a estas frecuencias de

resonancia del tracto vocal se llaman formantes.

Fig. 2.4.- Respuesta en frecuencia de un tubo uniforme sin perdidas.

Un modelo más realista puede obtenerse al concatenar varios tubos acústicos de

diferentes áreas transversales como se muestra en la Fig. 2.5. Hay que asumir en

este diseño, que las longitudes de los tubos deben de ser las mismas, y tener en

cuenta que la señal es parcialmente propagada y reflejada en cada conjunción. Para

calcular el coeficiente de reflexión de la n-ésima conjunción se utiliza la Ec. 2.3.

(Ec. 2.3)

Page 27: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 12

Donde representa la cantidad de la onda que se reflejó en esa unión. De esta

manera la respuesta en frecuencia del tracto vocal queda determinada por los

coeficientes de reflexión, el área de empalme de los tubos y los polos de la función

de transferencia.

Fig. 2.5.- Modelo de tubos concatenados (seis secciones).

2.2.3.- Radiación en los labios

La relación entre el volumen-velocidad y la presión en los labios

puede ser modelado por un bafle plano con una abertura de área A (Fig. 2.6.a), está

dado por la Ec 2.4.

(Ec. 2.4)

Donde la impedancia de radiación está dada por la Ec. 2.5.

(Ec. 2.5)

En la Fig 2.6.b., se observa la radiación que se obtendría al tener una resistencia

y una inducción de radiación .

Page 28: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 13

a)

b)

Fig. 2.6.- Radiación de los labios: a) Bafle plano infinito, b) Respuesta en frecuencia del bafle plano infinito.

2.3.- Modelo digital de la producción del habla

En la sección anterior, se vio con detalle la producción del habla desde el punto de

vista fisiológico, para así desarrollar un modelo acústico que facilite la

comprensión del fenómeno físico. A partir de dicho modelo se procederá a crear

una representación digital, con el propósito de hacer un análisis de las señales del

habla, las cuales se manejan en tiempo discreto y limitadas a una frecuencia de

Nyquist, cabe destacar que el modelo digital se considerará como un sistema lineal.

A continuación se analizará por separado cada sección del modelo acústico para

crear su versión digital. Éste se divide básicamente en tres secciones: excitación,

filtrado y radiación, en donde al final del capítulo se unirán para así obtener por

completo el modelo digital de la producción del habla.

2.3.1.- Excitación

Como se vio en la sección 2.2.1, los sonidos vocálicos son de tipo cuasi periódicos

por lo que la representación digital de estos se modela de la siguiente manera:

primero un tren de impulsos separados por el periodo de la fundamental es

generado, donde posteriormente son filtrados por un modelo de la glotis llamado

, con el cual se obtiene una forma de onda muy similar a la producida en el

Page 29: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 14

modelo biológico o acústico (ver Fig. 2.2). Por último, el resultado es multiplicado

por un controlador de amplitud denominado A. La Fig. 2.7, ilustra de una manera

sencilla lo descrito anteriormente. El modelo de la glotis , es un filtro que tiene

una respuesta al impulso infinito con dos polos (es decir un filtro IIR – por sus

siglas en inglés Infinite Impulse Response), el cual es descrito por la Ec. 2.6, en donde

y son reales o complejos conjugados.

Fig. 2.7.- Modelo de excitación para sonidos vocálicos.

(Ec. 2.6)

Para el caso de los sonidos sordos, el modelo de excitación se basa en la

implementación de un generador de ruido Gaussiano. Fonemas como /f/ o /s/ al

ser producidos por el sistema biológico tienen una forma de onda similar a este

tipo de ruido. Al igual que en el modelo de sonidos vocálicos, después del

generador de ruido existe un controlador de ganancia denominado A. La Fig. 2.8,

muestra el modelo de excitación para los sonidos sordos.

Fig. 2.8.- Modelo de excitación para sonidos sordos.

Page 30: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 15

La producción del habla es una combinación de ambos tipos de sonidos, por lo que

el modelo completo de excitación se ilustra en la Fig. 2.9. Si se desea producir un

sonido de tipo vocálico uno sordo, un switch elegirá el modelo correspondiente.

Fig. 2.9.- Modelo completo de la excitación.

2.3.2.- Filtrado

Esta sección del modelo digital comprende lo que es el tracto vocal, en donde se

producen sonidos nasales y no nasales; y también donde se generan las formantes

para cada fonema.

De acuerdo al sistema acústico de tubos concatenados, en lo que respecta a los

sonidos no nasales, la función de transferencia está determinada por los

coeficientes de reflexión y contiene sólo polos. Por lo tanto, el modelo digital se

representa por la Ec. 2.7, donde es el número de polos y estos últimos son las

raíces de la función .

(Ec. 2.7)

Page 31: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 16

Debido a que la forma de onda que ha sido filtrada es real, los polos complejos

aparecerán en pares simétricos los cuales corresponden a las formantes de la

señal. Así que, la función puede ser encontrada por el conjunto de coeficientes

de reflexión de la siguiente manera:

Para el caso de la producción de sonidos nasales, es necesario agregar ceros a la Ec.

2.7, pero se sabe que esto puede ser sustituido agregando un número infinito de

polos a . Evidentemente, esta solución no es factible, ya que se requieren de

más parámetros para caracterizar el filtro, por lo que sólo es suficiente

implementar la Ec. 2.7.

2.3.3.- Radiación

En esta sección se incluye el efecto de presión de los labios que se ejerce a la hora

de producir un sonido. Como se vio anteriormente, la respuesta en frecuencia de la

radiación en los labios (Fig. 2.6.b) se comporta como un filtro pasa altas. La Ec. 2.8

representa dicho modelo de radiación, el cual es un diferenciador digital con un

cero en corriente directa.

(Ec. 2.8)

Page 32: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 17

2.3.4.- Modelo completo

Una vez analizadas las secciones 2.3.1, 2.3.2 y 2.3.3 se procede a formar el sistema

digital de la producción del habla, el cual se ilustra en la Fig. 2.10. En este un switch

es el encargado de elegir el modo de excitación deseado, para así pasar por el filtro

el cual se describe en la Ec. 2.9, para al final producir una señal . Este

modelo digital es la base para el diseño de los sintetizadores de voz comerciales.

Fig. 2. 10.- Modelo digital de la producción del habla completo.

(Ec. 2.9)

2.4.- Análisis en el dominio del tiempo

En los apartados 2.2 y 2.3 se expusieron dos modelos de producción del habla

(acústico y digital), sin embargo no se ha contemplado como sería posible que un

sistema electrónico o computacional pudiese entender lo que se le dice. Para lograr

esto, es necesario convertir las señales acústicas en digitales y realizar un análisis

en tiempo corto sobre ellas, con el fin de poder cuantificar parámetros como la

energía o la autocorrelación, elementos clave en el procedimiento de

reconocimiento de voz.

Page 33: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 18

La sección se divide en dos partes: digitalización de la señal (transducción,

muestreo y cuantización del habla) y análisis en tiempo corto.

2.4.1.- Transducción, muestreo y cuantización del habla

Todos los sonidos, incluyendo los producidos por el habla, se deben a los cambios

de presión en el aire. El oído humano es sensible a estos cambios, debido a que la

membrana timpánica responde a ellos, convirtiendo dicha energía acústica en

energía mecánica, que después es convertida en energía eléctrica por las células

ciliadas que se encuentran en el oído interno. Una vez convertido el sonido en

señales eléctricas, el cerebro las procesa.

Algo similar se requiere para que un sistema electrónico o computacional entienda

y procese una señal sonora. Para ello se requiere utilizar un micrófono, el cual es

un transductor acústico-mecánico-eléctrico, que simularía el funcionamiento del

oído humano. Este dispositivo convierte el sonido en señales eléctricas, las cuales

son continuas en amplitud y tiempo, siendo esto un impedimento para los sistemas

digitales ya que sólo pueden procesar señales discretas en amplitud y tiempo. Por

ello, las señales continuas deben pasar por dos procesos: muestreo y cuantización.

La primera tarea que se debe de realizar para digitalizar una señal es discretizarla

en tiempo. A esto se le conoce como muestreo, y consiste en tomar valores de la

señal continua en tiempos discretos. El teorema de Nyquist establece que para

poder representar una señal de manera discreta en el tiempo y poderla reconstruir

a su forma original (continua), es necesario realizar el muestreo a una velocidad

del doble o más respecto a la frecuencia más alta (frecuencia de Nyquist) que se

encuentre en dicha señal. De esta manera se tiene la información más

representativa de la señal continua en el tiempo.

Page 34: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 19

Algunos estándares importantes en la industria son: La telefonía digital utiliza una

frecuencia de muestreo de 8KHz por lo que la frecuencia de Nyquist es 4KHz,

siendo esto lo suficiente para poder transmitir voz. Los discos compactos utilizan

una frecuencia de muestreo aproximada de 44KHz, teniendo una frecuencia

Nyquist o máxima de 22KHz, así garantizando que se reproducirá todo el ancho de

banda audible del ser humano.

Una vez discretizada la señal en el tiempo, es necesario hacerlo en amplitud. Para

ello existe el proceso de cuantización que funciona de la siguiente manera: se

toman los valores continuos de amplitud de la señal muestreada y se representan

por una serie de valores finitos de amplitud de un formato digital de bits, en

otras palabras, los valores de amplitud de la señal muestreada son redondeados o

aproximados a unos valores finitos ya establecidos de acuerdo al número de bits

que se utilicen en el formato digital. Entre mayor número de bits se utilicen, menor

error o ruido de cuantización existirá, esto se puede apreciar en la Ec. 2.10, que

muestra la relación señal a ruido expresada en dB.

(Ec. 2.10)

2.4.2.- Análisis en tiempo corto

Para estudiar las propiedades principales de una señal de audio digital es

necesario introducir el concepto de análisis en tiempo corto. Si se deseara, por

ejemplo, encontrar la frecuencia fundamental de una conversación de un minuto,

sería muy difícil, ya que la señal de audio es variante en el tiempo y dentro de la

conversación se emiten varios fonemas. Pero a escalas de tiempo muy pequeñas,

se puede notar que las propiedades de la señal de audio cambian lentamente

conforme pasa el tiempo, otorgándole la característica de ser invariante. Para

analizar dicho audio, se procede a segmentarlo en marcos o ventanas para así tener

Page 35: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 20

la suficiente información y caracterizar las propiedades a estudiar (energía y

función de autocorrelación). A esto se le conoce como ventaneo y se representa con

la función . Se recomienda que en cada ventana se encuentren al menos dos

periodos de la frecuencia fundamental. Por lo regular se utiliza un ancho de

ventana de 30ms y un desplazamiento cada 10ms. Dentro de las ventanas más

utilizadas se encuentran las rectangulares, las de Hamming, las de Hanning y las

de Blackman, pero en el desarrollo de esta tesis sólo se implementará la

rectangular (Ec. 2.11), la cual vale 1 en todo el ancho de ventana y 0 para el resto.

La Fig. 2.11 muestra como se utiliza .

(Ec. 2.11)

Fig. 2.11.- Implementación de ventana rectangular.

Dos mediciones o funciones que comúnmente se estudian en las señales del habla

haciendo uso del análisis en tiempo reducido son: la energía y la función de

autocorrelación. A continuación se describe a detalle en qué consiste cada una de

ellas.

Page 36: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 21

2.4.2.1.- Energía

La energía se obtiene de la suma de los cuadrados de los valores de la señal

ponderados por la ventana elegida, donde lo anterior se describe en la Ec. 2.12.

(Ec. 2.12)

Si el tamaño de la ventana es muy grande no se apreciarán los cambios en las

propiedades energéticas de la señal, mientras que al elegir un tamaño muy

pequeño existirán demasiados cambios en tales propiedades.

Esta medición permite identificar si en una grabación existe silencio, siempre y

cuando los niveles de ruido sean muy bajos, es decir, la SNR sea alta. En la Fig. 2.12

se ilustra el cálculo de la energía de la palabra “hipotenusa”. En ella se observa

cómo los máximos existen en los segmentos vocálicos, mientras que para los

segmentos sordos o silenciosos, la energía decae.

Fig. 2.12.- Cálculo de la energía (gráfica azul) de la grabación de la palabra” hipotenusa” (gráfica negra).

Page 37: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 22

2.4.2.2.- Función de autocorrelación

Dicha medición permite saber que tan parecida es una muestra de otra, he de ahí

su nombre. La función de autocorrelación se define en la Ec. 2.13, donde es el

retraso de la señal.

(Ec. 2.13)

Cuando una muestra pasada es similar a la presente, el valor que se obtiene en la

función es máximo, por lo tanto es evidente que las periodicidades que se

encuentran en la señal cumplen con lo anterior, por ejemplo si la señal tiene

un periodo , entonces en la función de autocorrelación se puede decir que

Como se mencionó en la introducción de este tema, es necesario implementar el

concepto de ventaneo, por lo que la función de autocorrelación finalmente se

expresa en la Ec. 2.14.

(Ec. 2.14)

Independientemente de que la señal sea periódica o no lo sea, cuando la

función de autocorrelación es máxima y corresponde al cálculo de la energía, esto

es .

Para ilustrar de una mejor manera lo descrito anteriormente, se exponen a

continuación dos cálculos de autocorrelación, uno es para una señal periódica, y el

otro para una no periódica. En la Fig. 2.13 la señal tiene un periodo , por lo que

la función de autocorrelación obtiene valores máximos aproximadamente iguales

cada veces, por ende se puede decir que hay una correlación en los valores de .

Page 38: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 23

Fig. 2.13.- Cálculo de la función de autocorrelación (abajo) para una señal periódica (arriba).

De manera contraria, si la señal no es periódica, en la función de autocorrelación

se puede observar que no existe ninguna similitud en todos los valores de , por

lo que se dice que no hay una correlación en la señal, tal como puede ser apreciado

en la Fig. 2.14.

Fig. 2.14.- Cálculo de la función de autocorrelación (abajo) para una señal no periódica (arriba).

Page 39: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 24

2.5.- Análisis de Fourier en tiempo corto

La transformada de Fourier es una técnica implementada para pasar una señal del

dominio del tiempo al dominio de la frecuencia o viceversa. De igual manera esto

permite identificar las frecuencias en las cuales una señal produce energía. La

transformada de Fourier está dada por la Ec. 2.15:

(Ec. 2.15)

La Fig. 2.15 (A) y Fig. 2.15(C) son segmentos de señales de voz de diferentes

longitudes, la Fig. 2.15 (B) y Fig. 2.15 (D) son sus respectivas transformadas de

Fourier, notando que la estructura armónica en la transformada de la señal de

35.5ms es más notoria que en la de 5 ms, al igual que la estructura de formantes.

Fig.2.15.- Transformada de Fourier de segmentos de señales de voz de diferentes longitudes

(A) Segmento de señal de 5ms. (B) Transformada de Fourier de (A). (C) Segmento de señal de voz de 37.5ms. (D) Transformada de Fourier de (C).

Page 40: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 25

2.5.1.- Transformada rápida de Fourier

Es un eficiente algoritmo matemático que permite calcular la transformada de

Fourier discreta (DFT – por sus siglas en inglés Discrete Fourier Transform) y su

inversa. La DFT es el proceso matemático con el cual se obtiene la transformada de

Fourier para señales discretas. Las siglas FFT son la abreviatura usual del inglés

para Fast Fourier Transform. Este algoritmo es de gran importancia en una amplia

variedad de aplicaciones, desde el procesamiento digital de señales hasta en

diseños de filtros digitales. En general su función es la de resolver ecuaciones

diferenciales, ecuaciones diferenciales parciales o algoritmos de multiplicación

rápida de grandes enteros.

La Fig. 2.16 ilustra el espectro digital en tres dimensiones (x para la frecuencia, y

para la magnitud y z para el tiempo). La transformada de Fourier en tiempo corto

se utiliza también para las técnicas de codificación de la voz (como el canal de

codificación de voz), donde los parámetros de dominio de frecuencia se codifican y

se transmiten, y para la mejora del habla y la modificación de la señal.

Fig.2.16.- Espectro digital utilizando FFT

Page 41: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 26

2.6.- Análisis predictivo lineal

Comúnmente llamada coeficientes de predicción lineal LPC (por sus siglas en

inglés Linear Predictive Coding), es considerada una de las mejores herramientas

para las señales de voz debido a que se adapta al modelo de producción del habla

digital que se presentó en la sección 2.3, y es muy conocida por su velocidad de

cálculo.

La idea básica de predicción lineal es que una muestra se predice a partir de

la suma de muestras anteriores, ponderadas linealmente, como se muestra en la

Ec. 2.16.

(Ec. 2.16)

El conjunto son los coeficientes de predicción lineal, este está

determinado por minimizar la diferencia media cuadrática entre las muestras de

habla y las predichas. La ecuación anterior puede ser escrita de manera alternativa

como se muestra en la Ec. 2.17.

(Ec. 2.17)

El modelo de la agrupación del habla se muestra en la Fig. 2.10 donde la función de

transferencia produce una salida de voz mediante una excitación en la

entrada (tren de pulsos o ruido aleatorio) y una ganancia aplicada al filtro.

Este es el modelo de todos los polos de la producción del habla, donde las raíces

del polinomio del denominador son al cual se le denomina filtro inverso

(Ec.2.7). La Ec. 2.18 muestra el modelo de producción del habla.

Page 42: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 27

(Ec. 2.18)

Si se pasa la Ec. 2.18 al dominio del tiempo, se obtiene la ecuación del modelo de

producción del habla en su forma diferencial (Ec. 2.19).

(Ec. 2.19)

Como se puede apreciar la Ec. 2.19 es similar a la Ec. 2.17. Por esta razón es que se

considera el método de LPC como apto para la implementación en el

reconocimiento de voz ya que con este se obtienen los coeficientes del filtro inverso

.

2.6.1.- Análisis de la señal del habla

El error que se estima entre las señales predichas y las reales viene dado por la Ec.

2.20. Donde los parámetros son las estimaciones de los coeficientes del filtro

LPC.

(Ec. 2.20)

Es posible determinar esas estimaciones de los coeficientes del filtro, minimizando

el error cuadrático medio sobre una sección de la señal (Ec. 2.21).

(Ec. 2.21)

Para minimizar el error cuadrático medio se calcula la derivada parcial

con lo que se obtiene un conjunto de ecuaciones.

Page 43: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 28

(Ec. 2.22)

Dos diferentes formulaciones son posibles, dependiendo del intervalo de y de la

minimización que se produzca, los cuales son: el método de autocorrelación y de

covarianza. De estos dos métodos, sólo se usará el de autocorrelación para la

solución de la matriz expuesta en la Ec. 2.22.

2.6.2.- Método de autocorrelación

En este método se asume que y la forma de onda se ventanea, de

modo que todo lo que está fuera de esta ventana toma el valor de cero, esto

es: , donde es una ventana de longitud finita (de N

puntos) que cubre el intervalo deseado.

Debido a que este método intenta predecir las primeras muestras de la señal que

se encuentran fuera de la ventana, puede que el error resultante sea muy grande,

para evitar esto es preferible usar la ventana de Hamming debido a que esta

reduce suavemente los extremos de la señal a cero. Por lo que la ecuaciones

normales (Ec. 2.22) se rescriben:

(Ec. 2.13)

Donde

La matriz que se traduce en el lado izquierdo de Ec. 2.13 es simétrica, positiva y

Toeplitz (los elementos a lo largo de cualquier diagonal son iguales). Un método

Page 44: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 29

muy eficiente llamado la recursión de Levinson puede utilizarse para resolver este

sistema de ecuaciones.

2.6.3.- Algoritmo de Levinson-Durbin

La matriz de la Ec. 2.13 puede ser resuelta por un método muy eficiente, el cual fue

inventado por Levinson y reformulado por Durbin, de ahí su nombre.

El algoritmo de Levinson-Durbin se muestra en el conjunto de ecuaciones Ec. 2.14.

Dicho proceso de resolución de la matriz es de forma cíclica, donde i es el número

de iteración y es indicado en los índices entre paréntesis, k es el orden del filtro

predictor, R(i) el valor de autocorrelación, ai(i) son los elementos de pivotaje, aj(i) son

los coeficientes LPC; y E es el error de predicción. La ecuación Ec. 2.14a sólo es la

inicialización del ciclo, por lo que las iteraciones serían desde Ec. 2.14b hasta Ec.

2.14d. Para una iteración, una vez inicializado el error de predicción, se calculan

los coeficientes de pivotaje y con ellos se obtienen los coeficientes LPC. Al final de

la iteración se calcula el error de predicción con los elementos de pivotaje.

a)

(Ec. 2.14)

b)

c)

d)

Page 45: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 30

Este método comparado con otros es más eficiente en los procesos

computacionales debido a que el número de las operaciones que realiza es

proporcional a k2 mientras que para otros es de k3, también es que el orden del

predictor puede ser de cualquier valor y si se desea, es posible colocar un umbral

para el error predictivo para que así al momento de llegar a este el cálculo cese.

2.7.- Sistema de verificación de usuario

Una aplicación que ha implementado toda la teoría expuesta anteriormente y

también hace uso de más técnicas de reconocimiento de voz, fue desarrollada por

Rosenberg y compañía. A esta aplicación se le conoce como sistema de verificación

de usuario, y consiste en una computadora que hace una petición para que la

persona por reconocer diga una expresión, la cual habilitará alguna función

específica (como si fuera una contraseña).

El sistema funciona realizando tres procesos. El primero es el del tratamiento de la

señal, es decir, eliminar las partes de la grabación donde no se grabó el mensaje

para sólo quedarse con la señal de voz. El segundo es para que se obtengan los

parámetros necesarios (para esta aplicación son detector de pitch, energía, LPC y

analisis de formantes) los cuales serán ocupados en el tercer proceso, el cual trata

sobre una comparación de una referencia, almacenada previamente, con la

expresión. De acuerdo al resultado de esta comparación, el sistema tomará la

decisión si la persona ha sido reconocida o no.

Dentro del proceso de comparación, no es necesario hacer uso del pitch, la energía

o análisis de formantes, debido a que el orador no dice la expresión de manera

constante en cada repetición. Para solucionar esto, se vio en la necesidad de

deformar no linealmente la escala del tiempo para obtener los mejores registros de

los patrones a usar, y esto con el fin de alinear el contorno de la expresión con el de

Page 46: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 2: Marco teórico

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 31

la referencia. Esta distorsión es muy importante y ha sido aplicada en varios

procesos que involucran el procesamiento del habla.

Lo único que hace falta para concluir el tercer proceso es el de obtener la medición

de la distancia entre la referencia y la expresión, la cual puede ser obtenida por la

Ec. 2.15, donde ajs(i) es el valor de la j-ésima medición del contorno en el tiempo i,

ajr(i) es el valor de la j-ésima medición del contorno de referencia en el tiempo i,

aj(i) es la desviación estándar de la j-ésima medición en el tiempo i.

(Ec. 2.15)

Este sistema previamente descrito ha sido muchas veces un caso de estudio y

puesto en práctica debido a su eficiencia. Para el desarrollo de esta tesis, parte de

esta se ha basado en este procedimiento, sólo que la distancia que se usará se

expresa en la Ec. 2.16. la cual es el error cuadrático medio.

(Ec. 2.16)

Donde es la muestra k de la señal de entrada, es la muestra k de la señal de

referencia y N es la cantidad de muestras analizadas.

Page 47: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 32

Capítulo 3: Desarrollo del proyecto

El objetivo de este capítulo es explicar de manera detallada el proceso de

elaboración del programa que se encargará del reconocimiento de voz, desde la

presentación (interfaz gráfica) hasta las entrañas del mismo (programación y base

de datos). Esta sección está comprendida por tres partes. La primera se refiere al

aspecto visual del proyecto, en este caso, la creación de una interfaz grafica en

MATLAB con la que el usuario interactuará. En esta primera parte se explicará a

detalle el proceso para la creación de la interfaz, los componentes que la integran y

la implementación de estos. La segunda parte de este capítulo comprende lo

relacionado con la grabación y edición de la base datos, parte fundamental del

programa de reconocimiento de voz utilizando dos programas auxiliares

desarrollados de igual manera en MATLAB (“Grabadora” y “Normalizador”) y el

software Audacity. En esta se desarrolla cómo fueron grabados los comandos “A”,

“Afuera”, “Llamada”, “Usuario”, “Cajuela” y “Luces”, las características de estas

grabaciones y la edición que se aplicó a las mismas para evitar problemas a la hora

de implementar la base de datos. Se utilizaron estos comandos con la intención de

cumplir con las siguientes tareas que normalmente se llevan a cabo al utilizar un

automóvil.

Comando “A”: Habilita las funciones que se realizarán dentro del vehículo.

Comando “Afuera”: Habilita las funciones que se realizan al exterior del

vehículo.

Comando “Llamada”: Permite contestar una llamada telefónica entrante.

Comando “Usuario”: Enciende el automóvil.

Comando “Cajuela”: Abre la cajuela del auto.

Comando “Luces”: Enciende los faros delanteros del carro.

Page 48: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 33

En la última parte se explican las secciones centrales del programa que son:

caracterizar y reconocer. La primera obtiene los promedios de los LPC de cada

comando y la segunda hace una comparación entre dichos promedios y la señal

producida por el usuario. Estas secciones son la esencia del programa pero no lo

conforman del todo, por ello en el anexo A se ha agregado el programa completo

para un análisis a mayor detalle.

3.1.- Interfaz gráfica de usuario (GUI)

El ambiente de desarrollo de interfaz gráfica de usuario (GUIDE, por sus siglas en

inglés Graphical User Interfase Development Environment) es una serie de

herramientas que se extienden por completo en el software de MATLAB,

diseñadas para crear interfaces graficas de usuario (GUI´s, por sus siglas en inglés

Graphical User Interfaces) de manera fácil, pues no existe la necesidad de que el

programador tenga que agregar código para el desarrollo de la misma, debido a

que MATLAB automáticamente realiza esta acción, y rápida, ya que presta ayuda

en el diseño y presentación de los elementos de la interfaz, reduciendo la labor al

grado de seleccionar, tirar, arrastrar y personalizar propiedades. Los elementos

que se usan son: botones (push buttons), ejes (axes), texto estático (static text), panel

(panel) texto editable (edit text), que serán explicados más adelante.

Una vez que los elementos están en posición se editan las funciones de llamada

“callback” de cada uno de ellos, escribiendo el código de MATLAB que se ejecutará

cuando el elemento sea utilizado. Cabe destacar que el orden del programa con el

que trabaja la GUI, está determinado por el usuario, pues no existe un flujo

establecido como en el caso de un programa común de MATLAB, dándole al

usuario la opción de elegir qué elementos y en qué momento usarlos, sin ser esto

motivo para que la GUI termine su funcionamiento, a menos de que el usuario así

lo desee.

Page 49: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 34

El desarrollo de la GUI se realiza en dos etapas:

Diseño de los componentes (botones, textos, paneles y ejes) que la

formarán.

Programación de cada uno de los componentes ante la interacción del

usuario.

A la herramienta GUIDE se accede de varias maneras, la primera de ellas es

tecleando “guide” en la ventana de comando, como se muestra en la Fig. 3.1.

Fig. 3.1.- Primer modo de acceso a la herramienta GUIDE de MATLAB.

Otra manera de acceder, es a través del menú “File” “New” “GUI”, como se

muestra en la Fig. 3.2.

Fig. 3.2.- Segundo modo de acceso a la herramienta GUIDE de MATLAB.

Page 50: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 35

Una vez que es llamada la función GUIDE, aparecerá la ventana de inicio rápido

de GUIDE (GUIDE Quick start), como se muestra en la Fig. 3.3.

Fig. 3.3.- Ventana de inicio rápido de GUIDE.

Donde se presentan diferentes modalidades para la creación de una GUI. En este

caso se utilizará la opción “Blank GUI (Default)”, la cual creará una interfaz en

blanco predeterminada, en la que se diseñará la interfaz conforme a las

necesidades. Al seleccionar esta opción se generará el siguiente espacio de trabajo

donde se crea esta. Tal y como se muestra en la Fig. 3.4.

Fig. 3.4.- Espacio de trabajo para crear una interfaz.

Page 51: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 36

Los componentes principales de la GUIDE son:

Barra de menús: Aquí se encuentran las funciones elementales de edición de

las GUI.

Paleta de componentes (component palette): Aquí se encuentran los

componentes que formarán parte de la interfaz gráfica (botones, textos

editables, etc.).

La Barra de Herramientas: En ella se encuentran botones que ayudan a la

edición de una GUI. En el desarrollo de esta tesis sólo se utilizaron los

siguientes botones.

o Botón de ejecución (run button): Al presionarse ejecuta el código referido

a la GUI y crea la figura de la interfaz diseñada en el espacio de trabajo

(layout area).

o Alineación de Componentes (alignment tool): Esta opción permite alinear

los componentes que se encuentra en el área de trabajo (layout area) de

manera personalizada.

3.1.1.- Partes de la GUI

Las partes que pueden componer una GUI son las siguientes (Fig. 3.5):

Fig. 3.5.- Desglose de la paleta de componentes.

De esta lista de componentes, los utilizados en esta tesis se explican a continuación.

Page 52: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 37

3.1.1.1.- Texto estático (static text)

Un texto estático puede exhibir símbolos, mensajes o incluso valores numéricos de

una GUI, y colocarse en un lugar deseado. Como su nombre lo indica, estos

elementos no se modificarán durante la ejecución del programa.

Dentro de la interfaz gráfica de esta tesis se utilizaron once textos estáticos para

exponerle al usuario que tipo de información está visualizando como la duración,

frecuencia de muestreo, cuantización y el número de muestras de la grabación o el

segmento graficado, así como para etiquetar los errores de cada comando. Por

último se utilizó uno de estos textos estáticos para colocarle un encabezado al

programa.

Para colocar un texto estático, se selecciona de la paleta de componentes el ícono

de “static text” y se arrastra hacia el espacio de trabajo, como se muestra en la Fig.

3.6.

a)

b)

Fig. 3.6.- Inserción de un texto estático; a) Ícono de texto estático, b) Ejemplo de texto estático en la interfaz

gráfica.

Para editar el texto estático se accede al inspector de propiedades (property

inspector), haciendo doble clic sobre el elemento. Desde esta ventana (Fig. 3.7) se

modifica el texto que se muestra (string) y el nombre de la función (tag), con el que

se identificará dentro del código del programa como se muestra a continuación:

Page 53: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 38

Fig. 3.7.- Edición del texto estático en el inspector de propiedades.

3.1.1.2.- Botón (push button)

Los botones son elementos que ejecutan una sección del código específica cuando

se hace clic con el puntero del ratón sobre ellos.

Dentro de la interfaz gráfica que se desarrolló se incluyeron diez botones los cuales

al ser presionados realizarán alguna función en específico. Los botones incluidos

fueron “Reproducir”, “Reiniciar”, “Segmentar”, “Normalizar”, “FFT”, “LPC”,

“Reconocer”, “Abrir”, “Guardar” y “Salir”.

Para insertar un botón, se selecciona de la paleta de componentes el ícono de “push

button” y se coloca en el espacio de trabajo, como se muestra en la Fig. 3.8.

a)

b)

Fig. 3.8.- Inserción de un botón; a) Ícono de botón, b) Ejemplo de botones en la interfaz gráfica.

Page 54: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 39

Si se desea editar las características del botón, se recurre al inspector de

propiedades haciendo doble clic sobre él. Al igual que en con el texto estático,

pueden modificarse el texto del botón y el nombre de la función. Este último es de

vital importancia ya que de esta manera se identificará la rutina que se realizará al

ser oprimido.

El código que se genera al colocar un botón en la GUI es el siguiente:

A partir de esta línea de código se escribe la rutina específica para el botón, que en

este caso tiene el tag “pushbutton1”, la cual se ejecutará al momento de ser

oprimido. La rutina debe de terminar con la siguiente instrucción:

3.1.1.3.- Texto editable (edit text)

El elemento texto editable permite al usuario teclear una cadena de entrada o al

software desplegar datos.

En el desarrollo de esta tesis se requirió de agregar diez textos editables para que el

programa desarrollado arrojara información que será útil al usuario. Se leerán los

valores de la cuantización, la frecuencia de muestreo, el número de muestras y la

duración de la señal o segmento mostrado. De igual manera se imprimen en

pantalla los valores de los errores.

Para introducir un texto editable, se selecciona de la paleta de componentes el

ícono de “edit text” y se arrastra hacia el espacio de trabajo, como se ilustra en la

Fig. 3.9.

Page 55: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 40

a)

b)

Fig. 3.9.- Inserción de un texto editable; a) Ícono de texto editable, b) Ejemplos de textos editables en la

interfaz gráfica.

Para modificar el texto editable, se utiliza el inspector de propiedades haciendo

doble clic sobre él, pudiendo modificar el texto del botón y el nombre de la

función. Este último es de vital importancia pues de esta manera se identificará la

caja de texto que podrá ser utilizada para ingresar o mostrar el valor de una

variable.

El código que se genera al colocar un texto editable es el siguiente:

3.1.1.4.- Ejes (axes)

El elemento ejes permite a un GUI desplegar gráficos e imágenes. Como todo

objeto gráfico, este tiene propiedades que pueden controlar muchos aspectos de su

comportamiento y apariencia.

Dentro de esta tesis se utilizaron dos ejes, uno de ellos para mostrar la señal en el

dominio del tiempo y una más para graficar los procesos que se le hayan realizado

Page 56: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 41

a la señal original como la transformada rápida de Fourier y los coeficientes de

predicción lineal.

Para colocar un eje se selecciona de la paleta de componentes el botón “axes” y se

arrastra al espacio de trabajo, como se muestra en la Fig.3.10.

a)

b)

Fig. 3.10.- Inserción de un eje; a) Ícono de ejes, b) Ejemplo de eje en la interfaz gráfica.

Para modificar el tag de un eje se utiliza el inspector de propiedades haciendo

doble clic sobre él. Es importante conocer el tag para recurrir a él cuando sea

necesario imprimir en pantalla una imagen o grafica sobre este eje.

El código que se genera al colocar un texto editable es el siguiente:

3.1.1.5.- Panel (panel)

El componente panel permite colocar dentro de él, un conjunto de elementos

(textos estáticos, textos editables, botones, etc.) su uso es para dar presentación a la

GUI.

En esta ocasión se utilizaron dos paneles para dividir la interfaz gráfica en dos

secciones, la primera denominada ”Dominio en el Tiempo”, en la que se trabaja

Page 57: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 42

con la señal en tal dominio, y una segunda sección “Procesamiento de la Señal”, en

la que se aplicaran modelos matemáticos a la señal como la FFT o el cálculo de los

coeficientes de LPC.

Para colocar un panel se selecciona de la tabla de componentes el ícono “panel” y se

arrastra hacia el espacio de trabajo, como se ilustra en la Fig. 3.11.

a)

b)

Fig. 3.11.- Inserción de un panel; a) Ícono del panel, b) Ejemplo de un panel en la interfaz gráfica.

El código que se genera al colocar un texto editable es el siguiente:

3.1.2.- Funcionamiento de una GUI

Una GUI consta de dos archivos, el .m y el .fig. El archivo .m es el que contiene el

código de programación, y el .fig la parte gráfica. Para ejecutar una GUI, si se ha

etiquetado con el nombre uno.fig, simplemente ejecutamos en la ventana de

comandos

3.1.3.- Interfaz del reconocedor de voz

Utilizando todos los elementos descritos anteriormente, se realizo una GUI que

contará con las partes necesarias para el funcionamiento adecuado del proyecto. A

continuación se muestra en la Fig. 3.12., la interfaz a utilizar para el reconocer de

comandos.

Page 58: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 43

Fig. 3.12- Interfaz del reconocedor de comandos.

3.2.- Base de datos

3.2.1.- Grabación

El software de reconocimiento de voz desarrollado en esta tesis, requiere de una base de

datos, debido a que sin la existencia de esta no podría contar con la información necesaria

para realizar las comparaciones pertinentes y tomar una decisión.

Los comandos que van a ser reconocidos son “A”, “Afuera”, “Usuario”, “Llamada”,

“Luces” y “Cajuela”. Cada uno de ellos fue grabado veinte veces, con lo que se obtuvo un

total de ciento veinte archivos. A estas grabaciones se les calculó sus coeficientes de

predicción lineal, para así obtener un promedio de LPC por cada comando.

El procedimiento de grabación fue el siguiente, se seleccionó un aula común como recinto

de grabación. Utilizando la tarjeta de audio de la Laptop Compaq, modelo CQ43-405LA y

el micrófono de esta, se hicieron las ciento veinte grabaciones con una frecuencia de

muestreo de 22050 Hz con lo cual se abarca todo el ancho de banda de la voz humana, una

tasa de cuantización de 16 bits para no tener un error de redondeo significativo, formato

monofónico debido a que no es de interés realizar una vista panorámica de la fuente de

Page 59: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 44

sonido, y finalmente guardado con el formato de archivo “.wav”, para así, obtener una

mayor cantidad de información de la señal de voz y este no utiliza compresión.

Para realizar el procedimiento de grabación anteriormente mencionado, se desarrolló un

programa auxiliar en MATLAB llamado “grabadora”. En la Fig. 3.13 se aprecia el

algoritmo de este mediante un diagrama de flujo.

Fig. 3.13.- Diagrama de flujo para programa de grabación.

A continuación se muestra el código utilizado, basado en el diagrama de flujo de la Fig.

3.13, para realizar las ciento veinte grabaciones.

En dicho código, se asigna a la variable Fs, el valor de 22050, el cual es la frecuencia de

muestreo a la que se pretende grabar. La variable y recibe las muestras grabadas durante

tres segundos wavrecord(3*Fs,”,”), en formato monofónico wavrecord(“,”,1). Finalmente se

guarda la grabación con la función wavwrite donde se especifica, la variable que contiene

Page 60: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 45

las muestras a guardar wavwrite(y,”,”,”), la frecuencia de muestreo a la que se grabó

wavwrite(“,Fs,”,”), la tasa de bits a la que se desea guardar wavwrite(“,”,16,”), y el nombre

del archivo wavwrite(“,”,”,’nombre_del_archivo.wav’).

3.2.2.- Normalización

Una vez grabados todos los archivos es necesario normalizarlos, debido a que algunos

tienen amplitudes muy pequeñas con respecto a otros, pues durante la grabación,

variables como la distancia respecto al micrófono y la amplitud de voz no son constantes,

de esta manera se asegura que todas las grabaciones tengan la amplitud máxima igual a 1.

Para llevar a cabo el proceso de normalización se utilizó otro programa auxiliar

igualmente desarrollado en MATLAB llamado “normalizador”. El programa lee los veinte

archivos de cada comando, y encuentra para cada uno de ellos el valor absoluto mayor, el

cual se asigna a la variable d. Las muestras del archivo son divididas entre esta variable

para llevar la amplitud máxima a 1. Esta modificación se guarda en un archivo “.wav” con

el mismo nombre (se sobrescribe). En la Fig. 3.14 se muestra el algoritmo de dicho proceso

mediante un diagrama de flujo.

Fig. 3.14.- Diagrama de flujo para programa de normalización.

Page 61: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 46

El código implementado para lograr normalizar los archivos es el siguiente.

Si bien, los programas “grabadora” y normalizador”, no son parte del reconocedor de

comandos como tal, sirven para desarrollar con mayor facilidad la base de datos.

Page 62: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 47

3.2.3.- Segmentación

Debido a que el archivo que se guarda no utiliza en su totalidad los tres segundos de

grabación, se decidió segmentarlos. Para eliminar estos espacios de silencio y el poco

ruido que pueda existir en ellos, se utilizó un software especializado en la edición de audio

digital llamado Audacity.

Para segmentar los archivos es necesario abrirlos dentro del programa, para esto se accede

al menú “Archivo” “Abrir…”, tal cual como se puede observar en la Fig. 3.15.

Fig. 3.15.- Modo de abrir un archivo en Audacity.

Una vez abierto el archivo, aparece la forma de onda dentro de la interfaz de trabajo de

Audacity, como se muestra en la Fig. 3.16.

Fig. 3.16.- Forma de onda dentro de la interfaz de Audacity.

Page 63: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 48

Para segmentar se selecciona con el mouse la parte de la señal que se desea eliminar y se

presiona la tecla supr o delete (ver Fig. 3.17).

Fig. 3.17.- Selección de una parte de la señal de onda.

Después de este proceso se obtiene una señal como la mostrada a continuación en la Fig.

3.18.

Fig. 3.18.- Forma de onda después de ser segmentada.

Al final se guarda el archivo con las características de formato anteriormente expuestas.

Para realizar esto se accede al menú “Archivo” “Exportar…”.

Este proceso se realiza en las ciento veinte grabaciones, para tener en la base de datos las

señales de la manera más limpia y representativa posible. Con este paso, se comprendería

en su totalidad el proceso de grabación y edición de la base de datos.

Page 64: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 49

3.3.- Programación del reconocedor de comandos

En esta sección del desarrollo se explican a detalle las dos secciones del programa

que son medulares para el funcionamiento de este: caracterizar y reconocer.

Caracterizar se dedica a obtener los promedios de los LPC de cada comando de la

base de datos, mientras que reconocer realiza la comparación de estos promedios

con la señal de entrada producida por el usuario. A pesar de que el programa

contiene otras funciones secundarias, estas no serán explicadas en esta sección, sin

embargo pueden encontrarse en el anexo A de esta tesis en el que se presenta el

programa completo.

3.3.1.- Caracterizar

La sección caracterizar comienza inicializando dos variables, una que contiene la

extensión de los archivos (.wav) y una segunda que corresponderá a la matriz que

contenga los promedios de los LPC de la base de datos. Después entra en un ciclo

para elegir uno de los seis comandos grabados, en el que por cada ronda que se

realice cambiará el comando del que se obtendrá el promedio. Cada ronda el

programa preguntará si ya se han obtenido los coeficientes de cada comando. Por

ejemplo, suponiendo que fuese la segunda ronda, el programa preguntará si el

primer comando obtuvo el promedio de sus LPC, como se han obtenido lo saltará

y preguntará lo mismo para el segundo comando, como este no ha pasado por

dicho proceso, el programa entrará en una nueva etapa, en la que a la variable

“nom” se le asignará la cadena correspondiente al nombre con el que se guardaron

los archivos de audio para dicho comando. Después ingresará en un nuevo bucle

del que no saldrá hasta que no se hayan leído los veinte audios de dicho comando.

Para que esto suceda el programa debe de convertir el número de la grabación en

una cadena de caracteres para posteriormente concatenarla con las cadenas que

contienen la extensión y el nombre del comando. Por dar un ejemplo, en la primera

Page 65: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 50

ronda del primer comando, el número de la grabación es “1”, este se convierte en

cadena y se concatena con las de “ha” y “.wav”, dando como resultado la cadena

“ha1.wav”. Una vez realizada esta concatenación se lee el archivo con dicho

nombre e inmediatamente se obtienen los LPC de dicha señal. Una vez que se han

terminado de obtener los LPC de los veinte archivos y se han sumado estos valores

en un vector, se le divide a este entre veinte para así obtener el promedio de los

LPC del comando. Todo este proceso puede visualizarse en el diagrama de flujo de

la Fig. 3.19 a y 3.20 b.

La programación de la función caracterizar está dividida en dos diferentes

apartados, cada uno enfocado en una función específica. El primer apartado está

dedicado a la inicialización de variables.

La primera línea de este apartado es una asignación directa a una variable,

ex=’.wav’, con la que se trabajará después para acceder a todos los archivos de la

base de datos mediante un for que será explicado posteriormente.

Las siguientes cuatro líneas corresponden a la inicialización de la matriz que será

utilizada durante la obtención de los promedios de LPC de la base de datos. Dicha

matriz es handles.prom, con un tamaño de 6 líneas por 19 columnas, que

corresponden a los seis comandos y a los diecinueve LPC que se obtendrán de

cada archivo. Cabe destacar que se toma la decisión de obtener sólo diecinueve

LPC (se pueden obtener tantos como las muestras que se tengan en caso de no ser

especificado en el programa), debido a que son estos los de mayor relevancia y los

que muestran una mayor cantidad de información, con esto es posible visualizar

una mayor diferencia entre los LPC de cada comando lo que hace más sencilla la

comparación entre estos. De igual manera es importante agregar que las variables

Page 66: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 51

(en este caso matrices) del tipo handles pueden utilizarse en todas las secciones del

programa y no sólo en la que se está declarando, en este caso se decide esto debido

a que la sección reconocer necesita de los datos que se produzcan en caracterizar

para realizar las comparaciones pertinentes.

El segundo apartado de caracterizar corresponde a la obtención del promedio de

los LPC por comando. Para realizar esto se construyó un for que comprendiera los

seis comandos existentes dentro de la base de datos. Donde la variable i

representará cada uno de los comandos.

Y una serie de if’s que seleccionan la parte de la base de datos correspondiente a un

comando en especifico. Con estos if’s por cada ciclo que se cumpla en el for la

cadena de caracteres asignada a la variable nom cambiará y así se asegurará que

sólo se le de lectura a los archivos correspondientes a dicho comando.

Page 67: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 52

Para obtener los LPC de los veinte archivos de cada comando, se creó un for

anidado.

Las primeras líneas dentro de este, dan lectura del archivo correspondiente al ciclo.

La línea un=num2str (x) convierte a la variable x (que corresponde al número de

ciclo), en una cadena de caracteres, para después concatenarla con las variables

nom y ex y así poder leer el archivo correspondiente y asignarlo a la variable ar.

Inmediatamente después de darle lectura al archivo, se obtienen sus LPC con la

función lpc (ar,18), en donde se especifica que se calcularán sólo dieciocho

coeficientes después del primero, que corresponde a la energía (y su valor siempre

Page 68: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 53

es uno), con lo que se obtienen los diecinueve propuestos desde un principio. Al

mismo tiempo estos coeficientes son asignados a la variable coef, como se expresa

en la siguiente línea.

La función lpc() trabaja con el método de autocorrelación para obtener la matriz de

los coeficientes de un filtro lineal de orden p y esta se resuelve con la recursión de

Levinson-Durbin. En la sintaxis, el primer argumento especifica la variable (que

contiene las muestras de la señal) a la que se le calculará los LPC, y el segundo

especifica el orden del filtro p.

Por último, los LPC del archivo son sumados a la matriz handles.prom (en el vector

correspondiente a su comando i).

Una vez que se han sumado los veinte archivos que corresponden al comando en

turno, se divide entre veinte el vector correspondiente de la matriz handles.prom,

para así, obtener los valores promedio de los LPC de dicho comando.

Con este proceso se obtienen los valores necesarios para poder realizar la

comparación entre los LPC de la base de datos, con los de la señal de entrada. Esto

se explicará a en la siguiente sección, que corresponde a la función reconocer, en la

que se realiza la obtención de los LPC de entrada y la comparación de estos.

Page 69: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 54

Fig. 3.19.- a) Diagrama de flujo sección caracterizar.

Page 70: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 55

Fig. 3.19.- b) Complemento del diagrama de flujo sección caracterizar.

3.3.2.- Reconocer

Esta sección del programa es la encargada de realizar el procedimiento de

reconocimiento de voz, este se estructura de la siguiente manera. Primero se hace

la petición al usuario de que diga el comando que desee activar, posteriormente

verifica si la grabación es un silencio o contiene información de voz. Si es el primer

caso el programa termina la función, sino se calculan los LPC de la grabación e

inmediatamente se hace una comparación de dichos coeficientes con los de la base

de datos aplicando el error cuadrático medio. Finalmente, el programa da como

resultado el reconocimiento del comando que presenta un menor error. Toda esta

Page 71: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 56

estructura trabaja a la par con un menú de opciones en forma de árbol que son

habilitadas por cada comando. Este menú puede observarse en la Fig. 3.20.

Fig. 3.20.- Menú de opciones en forma de árbol.

Como puede apreciarse, se espera que el código de programación resultará muy

extenso. Por otro lado, esta sección es uno de los pilares del programa, así que la

explicación de su funcionamiento se realizará a partir de la estructura general (ver

Fig. 3.21) en cinco partes: petición y grabación del comando, cálculo de la energía,

normalización y cálculo de los LPC, cálculo del error cuadrático medio y la

determinación del comando, en donde esta última se incluye la explicación del

menú de opciones en forma de árbol.

Fig. 3.21.- Estructura general del proceso de reconocimiento.

3.3.2.1.- Petición y grabación del comando

En esta parte de la sección reconocer, al ser presionado el botón “Reconocer”, el

programa reproducirá un mensaje previamente grabado que dice “ingrese

comando después del tono”, siendo la petición del programa al usuario para que

este diga el comando deseado. Durante este proceso, el software graba durante

cinco segundos en formato .wav monofónico, con una frecuencia de muestreo de

22050 Hz y una tasa de 16 bits la voz del usuario. La razón por la que se graban

Page 72: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 57

cinco segundos es porque cuando se ejecuta la instrucción sound(), MATLAB

continúa con las instrucciones que le siguen, sin esperar a que termine la

reproducción, por lo que hay que compensar la duración del mensaje con lo que se

desee grabar. En consecuencia, es necesario eliminar las muestras de la grabación

que comprenden las muestras del mensaje previamente grabado, para así obtener

solamente las muestras de la voz del usuario. Utilizando la función length() es

posible determinar el número de muestras del mensaje. Lo descrito anteriormente

se aprecia el diagrama de flujo de la Fig. 3.22.

Fig. 3.22.- Diagrama de flujo para la sección de petición y grabación del comando.

El código funciona de la siguiente manera. La primera línea utiliza la función

wavread() con el objetivo de asignar las muestras y la frecuencia de muestreo del

mensaje previamente grabado (con el nombre “ingrese.wav”) a las variables

mensaje y fmen respectivamente. Utilizando estas últimas, con la instrucción sound()

el mensaje es reproducido. Inmediatamente la función wavrecord() entra en acción

con lo que inicia la grabación del comando durante cinco segundos, a una

frecuencia de muestreo de 22050 Hz en formato monofónico (5*fmen, fmen,1) y las

muestras resultantes son asignadas a la variable mgra. Finalmente mgra es

segmentada desde la última muestra del mensaje previamente grabado hasta la

última muestra del comando mgra(length(mensaje):5*fmen), posteriormente esta

Page 73: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 58

modificación es reasignada a mgra. El código que realiza lo anteriormente

mencionado es el que sigue:

3.3.2.2.- Cálculo de la energía

Para averiguar si el usuario no ha dicho algún comando y ha guardado silencio, se

hará uso de la teoría explicada en la sección 2.4.2.1, en las que se menciona el uso

de ventanas para calcular la energía de una señal de voz.

Para esta función, el programa realiza el siguiente proceso. Como en otras

secciones del programa, el primer paso es inicializar un grupo de variables para

realizar los cálculos pertinentes. En esta ocasión se utilizarán cinco variables:

inc.- Es el punto desde donde inicia la ventana.

delta.- Representa la distancia de traslapamiento que habrá entre cada

ventana.

nvent.- Muestra el número de la ventana en la que se está trabajando.

tvent.- Designa el tamaño de la ventana que se utilizará.

E.- Asignada como el vector que guardará los valores de energía de cada

una de las ventanas.

sum.- Variable a la que se le asignará la suma de los valores de cada

muestra.

Una vez inicializadas estas variables comienza el proceso de ventaneo y cálculo de

la energía. Durante este, el programa analiza doscientas cincuenta y seis muestras

Page 74: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 59

de la grabación (ventaneo) y por medio de la Ec. 2.12 calcula la energía en dicha

ventana, la cual es de tipo rectangular. Este resultado se asigna al vector E que

contendrá los valores de energía de cada ventana. Una vez que se hayan analizado

todas las muestras de la señal por este método, el programa comparará el resultado

con un umbral de energía con valor de 0.01, que produce una señal de silencio o de

ruido bajo y basado en esta comparación se determinará si se ha dicho algo o se ha

guardado silencio durante el periodo de reconocimiento de comandos. El proceso

anterior se explica por medio del diagrama de flujo que se muestra en la Fig. 3.23.

La programación de esta sección se explica a detalle a continuación.

La inicialización de variables corresponde a las primeras cinco líneas del código

correspondiente al cálculo de la energía.

La variable inc se inicializa en cero para analizar la señal desde la primera muestra,

delta toma el valor de 150, que será la distancia de traslapamiento que existirá entre

cada ventana, a nvent se le asigna el valor de 185 pues sólo es necesaria esta

cantidad de ventanas para cubrir toda la señal a analizar. Para calcular este valor se

realizó la siguiente operación:

Donde:

El valor 27965 corresponde al total de muestras que comprenden la señal de entrada.

256, es el tamaño de la ventana a analizar.

150 es la distancia de traslpamiento entre dichas ventanas.

Page 75: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 60

Fig. 3.23.- Diagrama de flujo para el cálculo de la energía.

Page 76: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 61

La variable tvent vale 256, debido a que con este tamaño de ventana se puede

considerar a la señal “estacionaria”. Y por último se inicializa el vector E

asignándole ceros.

Para el ventaneo y el cálculo de la energía se inicia un for en el que se analizarán las

185 ventanas que cubrirán las 27965 muestras de la señal de entrada. Dentro de

este for se inicializa la variable sum asignándole un cero.

Después se inicia un for anidado en el que se realiza el cálculo de la energía de las

256 muestras que corresponden al tamaño de la ventana. Antes de realizar la

operación para calcular esto, se aplica un condicional if para finalizar el for

principal en caso de que la muestra a analizar salga del intervalo de las 27965

muestras que comprenden la señal.

Una vez establecida esta condición puede realizarse la operación correspondiente a

la Ec. 2.12. El resultado se asigna a uno de los 185 valores del vector E.

Page 77: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 62

Para finalizar el for principal se incrementa la variable inc sumándole delta con lo

que se asegura que se analizan otras 256 muestras a partir de dicho

desplazamiento.

Una vez que se ha realizado el análisis de toda la señal se comparan las

componentes del vector E y el valor de 0.01 (que se asignó como representativo de

una señal de silencio o de bajo ruido). En el caso de que E sea menor a este valor, se

abrirá un ventana con el mensaje “No se ha dicho ningún comando” (ver Fig 3.24),

y el programa se mantendrá inactivo hasta que se presione de nuevo el botón

“Reconocer” u otro botón. En caso contrario el programa continuará con las

funciones que le siguen.

Fig. 3.24.- Ventana con el mensaje “No se ha dicho ningún comando”.

Page 78: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 63

3.3.2.3.- Normalización y cálculo de los LPC

La normalización consiste en llevar la amplitud máxima de una señal de audio al

valor de 1. Una vez que se introduce la señal del habla, el programa analizará todo

el archivo hasta encontrar el nivel más alto, para establecerlo como referencia y

dividir toda la señal con este valor. La finalidad es que se maneje la misma relación

de amplitudes entre la base de datos y el comando grabado. Posteriormente se

hace un respaldo del comando y se adquieren las características de este, como la

tasa de bits, frecuencia de muestreo, longitud del comando y su duración, para ser

desplegadas en la interfaz gráfica en la sección llamada “Dominio en el Tiempo”

(ver Fig. 3.25).

Fig. 3.25.- Despliegue de información y señal en la sección de GUI denominada “Dominio en el Tiempo”.

Después de haber realizado lo anterior se calculan los coeficientes de predicción

lineal (LPC) y se grafican en la interfaz gráfica llamada “Procesamiento de la

Señal” (ver Fig. 3.26).

Fig. 3.26.- Gráfica de los LPC de la señal y despliegue de los valores de error en la sección de la GUI

denominada “Procesamiento de la Señal”.

Page 79: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 64

Lo anterior se ve desarrollado en el diagrama de flujo de la Fig. 3.27.

La programación desarrollada para esta sección es la siguiente. Una vez que se

introduce el mensaje , el programa recorre la longitud de las muestras del

archivo con y busca a través de un la amplitud más

grande del absoluto de dichas muestras, guardándola en la variable previamente

inicializada con 0. Posteriormente mgra será divida entre el valor de d,

, estableciendo una amplitud máxima de 1. Hasta este punto queda

concluida la normalización. La estructura del código del procedimiento anterior se

muestra a continuación.

Ya normalizado el mensaje, se crea un archivo .wav de respaldo utilizando la

función con la cual se guardan las muestras mgra del comando a la

frecuencia de muestreo fmen.

A continuación, se leen las propiedades (muestras, frecuencia de muestreo y tasa

de bits) del archivo de respaldo (“graba.wav”). A la variable handles.mr se le

Page 80: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 65

asignan las muestras por si la señal es modificada por el botón “Segmentar”. Esta

variable es utilizada por el botón “Reiniciar” para regresar a la forma original de la

señal.

Una vez adquiridos estos datos, se obtiene la longitud del mensaje y con esto se

calcula su duración. De igual manera se grafica la forma de onda del comando

Toda esta información es desplegada en la interfaz gráfica en la sección “Dominio

en el Tiempo” por medio de las siguientes líneas.

Después, la función lpc(handles.m,18) retorna 19 coeficientes LPC de las muestras

de la señal handles.m, y se asignan a la variable coef. Una vez que se obtienen estos

se despliegan gráficamente en el axes2 que corresponde a la sección de la interfaz

gráfica “Procesamiento de la Señal”.

Page 81: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 66

Fig. 3.27.- Diagrama de flujo para la normalización y cálculo de los LPC.

Page 82: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 67

3.3.2.4.- Cálculo del error cuadrático medio

La cuarta sección del programa sólo se enfoca en una actividad, que es la obtención

del error cuadrático medio. Con este dato se tiene una referencia respecto a qué tan

parecidos o no son los coeficientes LPC de la señal de entrada a uno de los seis

comandos de la base de datos.

El procedimiento para realizar este cálculo es el siguiente. Se genera un vector para

que contenga los valores de error de los seis comandos. Una vez inicializado este

vector se calcula el error que existe entre los coeficientes LPC de la señal de entrada

y el promedio de los coeficientes de la base de datos. Lo anterior se plasma en el

diagrama de flujo Fig. 3.28.

Fig. 3.28.- Diagrama de flujo para el cálculo del error cuadrático medio.

El código correspondiente a esta función comprende las siguientes líneas de

comandos. La primera es la creación del vector error, en el que se contendrán los

resultados de la operación del error cuadrático medio.

Page 83: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 68

Después se inicia un for, asignado para realizar el cálculo del error para los seis

comandos. Dentro de este se abre un nuevo for en el que se realiza la operación

correspondiente al error cuadrático medio (Ec. 2.16).

Donde es el coeficiente de la señal de entrada, es el coeficiente del

comando de la base de datos y es el total de coeficientes de la señal (en este caso

19).

3.3.2.4.- Determinación del comando

Una vez que el reconocedor de comandos tiene la capacidad de calcular la

aproximación (error cuadrático medio) que existe entre la señal de entrada y la

base de datos, es capaz de determinar qué comando se ha dicho. Para realizar esto,

el programa hace una serie de condicionales, en los que la elección del comando

depende de cuál tenga el menor error con respecto a la señal de entrada.

El reconocedor tiene una estructura en forma de árbol (Fig. 3.20), por lo que es

necesario ayudarse de algunas variables que sirvan de indicadores para que el

reconocedor identifique en que sección del árbol se encuentra. Para esto al inicio

del programa se declaran tres variables tipo handles: narbol, sel1 y sel2. La primera

variable dice en qué nivel del árbol se encuentra el usuario. Si handles.narbol es

Page 84: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 69

igual a 0, se está comparando los comandos “A” y “Afuera”, cuando es igual a 1 el

programa compara a los comandos “Usuario” y “Llamada”, en caso de que sea 2 se

realiza la comparación entre “Luces” y “Cajuela”, y por último, para hanldes.narbol

igual con 3 se han recorrido lo dos niveles del árbol por lo que el programa ofrece

la opción de reiniciar y regresar al primer nivel de comparación, o de mantenerse

en el nivel en el que se encuentre.

Las otras dos variables (handles.sel1 y hanldes.sel2), le indican al programa que

comparaciones ya se han realizado. La primera es específica del primer nivel e

indica qué comando de entre “A” y “Afuera” obtuvo el menor error al momento

de compararse con la base de datos, sí fuese “A”, la variable sel1 tomaría el valor

de 1, en caso contrario, tomaría el valor 2 y así el programa identificaría qué

comparación sería la siguiente. La segunda variable ayuda a especificar en cuál de

los dos secciones del segundo nivel se encuentra el usuario. Para la sección

comprendida por los comandos “Llamada” y “Usuario”, la variable sel2 toma el

valor 1, mientras que para “Luces” y “Cajuela” esta vale 2. Con esto no sólo se le

indica al reconocedor que ha recorrido los dos niveles de comparación del

programa, sino que de igual manera ayuda al momento de preguntar si se desea

reiniciar, pues con estos valores se indica cuál de las dos secciones se volverá a

comparar (ya sea “Llamada” y “Usuario”, o “Luces” y “Cajuela”), sin la necesidad

de tener que ir al nivel superior para volver a seleccionar el comando

correspondiente (“A” y “Afuera”).

Para ejemplificar estos procesos de comparación, se utilizará un diagrama de flujo

(Fig. 3.29), en el que quedan especificados los pasos que realiza el programa.

Page 85: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 70

a)

Fig. 3.29.- a) Diagrama general de la sección determinación de comando.

Page 86: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 71

b)

c)

Fig. 3.29.- b) Parte 1 del diagrama general de la sección determinación de comando; c) Parte 2 del diagrama

general de la sección determinación de comando.

d)

Fig. 3.29.- d) Parte 3 del diagrama general de la sección determinación de comando.

Page 87: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 72

La programación de esta sección está estructurada de la siguiente manera:

La primera parte corresponde a la declaración de las variables handles.narbol,

handles.sel1 y handles.sel2, que como se comentó al inicio de este subcapítulo, se

declaran al principio de todo el programa y no en la sección correspondiente al

botón “Reconocer”, pues si se hiciera dentro de esta, cada vez que se presionara el

botón, se inicializarían las variables, haciendo imposible la identificación del nivel

de reconocimiento en el que se esté trabajando en ese momento. Lo anterior se

expresa en las siguientes líneas de código.

Una vez inicializadas estas variables, comienza formalmente lo que se realiza

dentro de la sección reconocer al presionar el botón correspondiente. El primer

proceso que se hace es un condicional if en el que se pregunta si la variable

hanldes.narbol corresponde al valor 3. Si es así, significa que se ha terminado el

proceso de comparación y se abre una ventana en la que el programa pregunta si

se desea reiniciar o no, si el usuario decide reiniciar, se inicializarán de nuevo todas

las variables de identificación de nivel (narbol, sel1 y sel2), en caso contrario

preguntará si la variable sel2 es igual a 1 ó 2, el primer caso indicaría que se está en

la sección de los comandos “Usuario” y “Llamada”, por lo que handles.narbol debe

tomar de nuevo el valor de 1, para volver a realizar esta comparación, el segundo

caso indicaría que se está en la sección de los comandos “Luces” y “Cajuela” donde

handles.narbol toma el valor de 2. Para el caso de que handles.narbol tenga el valor

diferente a 3, el programa ejecuta las secciones de petición y grabación de

comando, normalización y cálculo de los LPC, cálculo de la energía y cálculo del

error cuadrático medio consecutivamente. Hay que recordar que en la sección del

cálculo de la energía, si se determinaba que no se había dicho algún comando, el

Page 88: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 73

programa no seguiría con las demás funciones. Lo anterior se traduce en las

siguientes líneas de código.

El segundo proceso consiste en preguntar en qué nivel del árbol se encuentra el

reconocedor. Primero se pregunta si handles.narbol es igual con cero, si es así el

programa compara los comandos “A” y “Afuera”, esto lo realiza con un if que

determina cuál de los valores 1 y 2 de la matriz error (los cuales fueron calculados

como se vio en la sección 3.3.2.3) es el menor, si error(1) es menor a error(2) significa

que se ha dicho “A” y aparece un mensaje como se aprecia en la Fig. 3.30 y al

mismo tiempo la variable handles.sel1 se le asigna el valor 1, en caso contrario

Fig. 3.30.- Mensaje de reconocimiento del comando “A”.

Page 89: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 74

aparecerá un mensaje (Fig. 3.31) que indica que se reconoció el comando “Afuera”

y la variable handles.sel1 toma el valor de 2. Después de determinar qué comando

se ha dicho, el programa despliega en los textos editables los valores de error(1) y

error(2). Las siguientes líneas de código realizan estas acciones.

Fig. 3.31.- Mensaje de reconocimiento del comando “Afuera”.

Posteriormente el programa pregunta si la variable handles.narbol tiene el valor de

1. Si es así, los comandos que se compararán son “Usuario” y “Llamada”. Si

error(3) es menor a error(4) se determina que el comando dicho fue “Usuario”,

mientras que en el caso contrario el comando reconocido es “Llamada” y en ambos

casos la variable handles.sel2 se le asigna el valor 1 (para posteriormente indicar que

se ha llegado al último nivel del árbol). Al igual que en el proceso anterior se

Fig. 3.32.- Mensaje de reconocimiento del comando “Usuario”.

Page 90: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 75

despliegan los mensajes de reconocimiento para cada comando (Figs. 3.32 y 3.33) y

los errores correspondientes en los textos editables. Lo anterior se traduce en las

siguientes líneas de código.

Fig. 3.33.- Mensaje de reconocimiento del comando “Llamada”.

Ahora el programa pregunta si handles.narbol tiene el valor de 2, si se cumple esto

comparará los comandos “Luces” y “Cajuela”. Si error(5) es menor a error(6), el

comando reconocido será “Luces”, sino será “Cajuela”. En ambos casos la variable

handles.sel2 se le asigna el valor de 2 (para posteriormente indicar que se ha llegado

al último nivel del árbol). En seguida se muestra el mensaje de reconocimiento del

Fig. 3.34.- Mensaje de reconocimiento del comando “Luces”.

Page 91: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 76

comando (Figs. 3.34 y 3.35), así como los errores de cada uno en los textos

editables. Lo anterior se transcribe en las siguientes líneas de código.

Fig. 3.35.- Mensaje de reconocimiento del comando “Cajuela”.

l tercer proceso consiste en un conjunto de condicionales que permitirán asignar el

nivel al que se accesará la siguiente vez que se oprima el botón “Reconocer”. Si

handles.sel1 es igual a 1, el programa permitirá comparar los comandos que se

encuentren en la primera sección del segundo nivel del árbol (comandos “Usuario”

y “Llamada”), si no es el caso, pregunta si handles.sel1 tiene el valor de 2, por lo que

se podrá acceder a la segunda sección del segundo nivel del árbol (comandos

Fig. 3.36.- Ventana para la opción de reinicio.

Page 92: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 3: Desarrollo del proyecto

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 77

“Luces” y “Cajuela”), si no se cumpliera lo anterior, se pregunta si la variable

handles.sel2 tiene asignados los valores 1 ó 2, en cualquiera de estos se asignará a la

variable handles.narbol el valor de 3, lo que le indicará al programa que la siguiente

ocasión que se presione el botón “Reconocer” deberá desplegar una ventana en la

que se dé la opción de reiniciar o no tal como se muestra en la Fig. 3.36. Lo

anteriormente descrito se desarrolla en las siguientes líneas de código.

Con esto se concluye la parte medular del programa, como se mencionó al

principio de este capítulo las demás secciones están expuestas en el anexo A de

esta tesis.

Page 93: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 4: Pruebas y resultados

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 78

Capítulo 4: Pruebas y resultados

En el presente capítulo se desarrollarán las tres pruebas a las que se sometió el

programa de reconocimiento de comandos, así como los resultados que se

obtuvieron de cada una de ellas. Es importante realizar dichas pruebas debido a

que permitirá conocer la eficiencia del programa.

La evaluación del software se basó tomando en cuenta diferentes factores a los que

estaría expuesto el reconocedor dentro de un automóvil en caso de que este fuese

implementado, en las cuales se consideraron como importantes, las pruebas en

silencio o ruido bajo, con el motor encendido y en condiciones de tránsito. Estas

fueron realizadas con la persona que grabó la base de datos. Para tener un punto

de comparación en la eficiencia del reconocedor se realizó la prueba en silencio con

dos individuos ajenos a esta.

Las pruebas se realizaron con la computadora con la que se grabó la base de datos

y en la que se desarrolló el software, la cual se encontraba posicionada en la zona

del conductor como se muestra en la Fig. 4.1. Cabe destacar que estas pruebas

fueron sólo del software, por lo que no hubo interacción con el automóvil.

Fig. 4.1.- Posicionamiento del individuo y la computadora para pruebas dentro del automóvil.

Page 94: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 4: Pruebas y resultados

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 79

4.1.- Prueba con automóvil apagado en un ambiente silencioso

Esta es la primera prueba que se realizó para evaluar el reconocedor de comandos

y se describe a continuación. Dicha prueba, se llevó a cabo dentro del vehículo 1, el

cual se encontraba apagado, totalmente cerrado y en una zona silenciosa, el

individuo que ingresaría los comandos estaba posicionado según la Fig. 4.1. Para

este procedimiento, se requirió la participación de tres sujetos, de los cuales uno de

ellos grabó la base de datos que utiliza el programa.

Antes de realizar la evaluación, se midió el nivel de ruido que ingresaba al

automóvil con un sonómetro de la marca Extech Instruments modelo 407768 (ver

anexo B), utilizando la curva de ponderación A y una respuesta rápida. Se tomaron

diez lecturas cada cinco segundos. Los resultados de la medición se muestran en la

Tabla 4.1.

Tabla 4.1.- Mediciones del nivel de ruido en la prueba 1.

Medición Nivel de ruido [dbA]

1 39.3

2 34.6

3 34.8

4 34.7

5 34.5

6 34.7

7 35.1

8 35.5

9 34.6

10 35.6

(4.1)

Para obtener el nivel de ruido promedio que ingresaba al vehículo se utilizó la

ecuación 4.1. Donde Rj es el nivel de ruido de la medición j, y NR es el promedio

del ruido.

Page 95: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 4: Pruebas y resultados

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 80

Sustituyendo las mediciones de la Tabla 4.1 en la ecuación 4.1 se obtiene que el

nivel de ruido promedio es de 35.6 dBA.

Después de que se midiera el ruido, empezó la evaluación del reconocedor de

comandos. Para los tres casos, el sujeto de prueba dijo veinte veces cado uno de los

comandos, y los resultados se registraron tal y como se muestran en las Tablas 4.2,

4.3 y 4.4. Hay que señalar que el sujeto 1 se identificará como el que grabó la base

de datos. Las cruces (X) en las tablas indican que el reconocedor de voz falló en el

reconocimiento de dicho comando, mientras que una paloma () indica lo

contrario. Las gráficas de las Figs. 4.2, 4.3 y 4.4 corresponden a las Tablas 4.2, 4.3 y

4.4 respectivamente y muestran el porcentaje de identificación de cada uno de los

comandos.

Tabla 4.2.- Resultados del sujeto 1 en la prueba 1.

Número de repetición

“A” “Afuera” “Usuario” “Llamada” “Luces” “Cajuela”

1 X X X

2 X X

3 X X X X

4 X X X X

5 X X X

6

7 X X

8 X X

9 X X

10 X X X X

11 X X

12 X X

13 X

14 X X

15 X X

16 X X X X

17 X

18 X X X

19 X X

20 X % Correcto 55 55 50 65 50 95

Page 96: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 4: Pruebas y resultados

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 81

Fig. 4.2.- Respuesta del programa de reconocimiento de voz en porcentaje de cada comando para el sujeto

1 en la prueba 1.

Tabla 4.3.- Resultados del sujeto 2 en la prueba 1.

Número de repetición

“A” “Afuera” “Usuario” “Llamada” “Luces” “Cajuela”

1 X X X 2 X X X 3 X X X 4 X X X 5 X X X

6 X X X

7 X X 8 X X X X

9 X X 10 X X X 11 X X X

12 X X X X

13 X X X

14 X X X

15 X X

16 X X 17 X X X 18 X X X

19 X X X

20 X X % Correcto 80 25 20 90 50 50

Page 97: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 4: Pruebas y resultados

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 82

Fig. 4.3.- Respuesta del programa de reconocimiento de voz en porcentaje de cada comando para el sujeto 2 en la prueba 1.

Tabla 4.4.- Resultados del sujeto 3 en la prueba 1.

Número de repetición

“A” “Afuera” “Usuario” “Llamada” “Luces” “Cajuela”

1 X X X X

2 X X X 3 X X X 4 X X X 5 X X 6 X X X 7 X X X 8 X X X 9 X X X

10 X X 11 X X X 12 X X 13 X X 14 X X X 15 X X 16 X X X 17 X X X X 18 X X X 19 X X X 20 X X X X

% Correcto 95 15 5 95 5 95

Page 98: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 4: Pruebas y resultados

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 83

Fig. 4.4.- Respuesta del programa de reconocimiento de voz en porcentaje de cada comando para el sujeto 3 en la prueba 1.

En la Fig. 4.5 se compara el porcentaje de identificación por cada individuo de

prueba para todos los comandos. Se aprecia que en los sujetos 2 y 3 la respuesta del

reconocedor tiende a tener picos de identificación en alguno de los dos comandos

de cada nivel del árbol, con lo que se dice que el programa en sí no está haciendo

labor de reconocimiento para estos individuos, pues diga lo que se diga casi

siempre caerá uno de los casos del par. Por ejemplo, para el sujeto 2, existe un 20%

de que se identifique el comando “Usuario” al decirlo y un 90% el de “Llamada” al

decirlo, es decir, tenderá a identificar casi siempre este último por defecto sin

importar lo que se diga, lo mismo para el sujeto 3 en el comando “Cajuela” para el

que existe un 95% de probabilidad de que se identifique al decirlo mientras que

“Luces” un 5% al decirlo, por defecto casi siempre se identificará “Cajuela” sin

importar qué palabra se pronuncie. Para el caso del sujeto 1, quien es el que grabó

la base de datos, se observa que no existe el caso de que un comando se identifique

por defecto, pues las probabilidades de que se identifique un comando al decirlo

son muy cercanas, tal y como se puede apreciar en la Tabla 4.2.

Page 99: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 4: Pruebas y resultados

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 84

Fig. 4.5.- Comparación de la respuesta del programa de reconocimiento de voz en porcentaje de cada uno de los sujetos.

4.2.- Prueba con el motor encendido en diferentes vehículos

La segunda prueba se llevó a cabo con el sujeto 1, el cual grabó la base de datos.

Esta prueba constó en evaluar al reconocedor de comandos en dos autos con la

condición de que estos estuvieran con el motor encendido.

A continuación se presentan las mediciones que se obtuvieron en el vehículo 2 con

las ventanas abiertas. Antes de realizar las evaluaciones del programa, se midió el

nivel de ruido que ingresaba al automóvil, con el sonómetro Phonic PAA3 (ver

anexo C), utilizando la curva de ponderación A y con una respuesta rápida. Se

tomaron diez lecturas en periodos de cinco segundos. Los resultados de la

medición se muestran en la Tabla 4.5.

Tabla 4.5.- Mediciones del nivel de ruido en el vehículo 2 de la prueba 2.

Medición Nivel de ruido [dbA]

1 39.9

2 39.7

3 39.9

4 39.5

5 40.1

Medición Nivel de ruido [dbA]

6 40.2

7 40.1

8 40.2

9 39.8

10 39.7

0%

20%

40%

60%

80%

100%

Suj 1 Suj 2 Suj 3

A

Afuera

Usuario

Llamada

Luces

Cajuela

Page 100: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 4: Pruebas y resultados

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 85

Para obtener el nivel de ruido promedio, se utilizó la ecuación 4.1 y sustituyendo

los valores de la Tabla 4.5 en dicha ecuación se obtiene un nivel de 39.9 dBA.

El sujeto 1 dijo veinte veces cada uno de los comandos, el resultado de esta

evaluación se muestra en la Tabla 4.6 así como su respectiva gráfica (Fig. 4.6),

donde se muestra el porcentaje que se reconoció de cada comando.

Tabla 4.6.- Resultados del sujeto 1 en el vehículo 2 en la prueba 2.

Número de repetición

"A" "Afuera" "Usuario" "Llamada" "Luces" "Cajuela"

1 X X X

2 X X X

3 X X X

4 X X X

5 X X X

6 X X X

7 X X X

8 X X X

9 X X X

10 X X X

11 X X X

12 X X X

13 X X X

14 X X X

15 X X X

16 X X X

17 X X X

18 X X X

19 X X X

20 X X X

% Correcto 0 100 100 0 100 0

La segunda prueba se realizó en el vehículo 1 con las ventanas cerradas. Las

mediciones de ruido se muestran en la Tabla 4.7 las cuales se realizaron con el

sonómetro de la marca Extech Instruments modelo 407768, utilizando la curva de

ponderación A y una respuesta rápida. De igual manera que en las pruebas

anteriores se tomaron diez mediciones cada cinco segundos.

Page 101: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 4: Pruebas y resultados

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 86

Fig. 4.6.- Respuesta del programa de reconocimiento de voz en porcentaje de cada comando para el sujeto 1 en vehículo 2 de la prueba 2.

Tabla 4.7.- Mediciones del nivel de ruido en el vehículo 1 de la prueba 2.

Medición Nivel de ruido [dbA]

1 45.8

2 45.8

3 45.7

4 45.9

5 46.3 6 45.7

7 45.3

8 45.3

9 46.2

10 45.3

Utilizando la Ec. 4.1 se obtuvo un nivel de ruido promedio de 45.7 dBA.

El resultado de la evaluación que realizó el sujeto 1 se muestra en la Tabla 4.8,

donde este repitió veinte veces cada comando, los promedios de esta evaluación se

muestran en la Fig. 4.7.

0%

20%

40%

60%

80%

100%

Sujeto 1

A

Afuera

Usuario

Llamada

Luces

Cajuela

Page 102: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 4: Pruebas y resultados

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 87

Tabla 4.8.- Resultados del sujeto 1 con el motor encendido en el vehículo 1 en la

prueba 2.

Número de repetición

"A" "Afuera" "Usuario" "Llamada" "Luces" "Cajuela"

1 X X X X

2 X X X X X

3 X X X X

4 X X X

5 X X X

6 X X X

7 X X X

8 X X X

9 X X X

10 X X

11 X X X

12 X X X

13 X X X

14 X X

15 X X X X

16 X X

17 X X X

18 X X X

19 X X

20 X X X X

% Correcto 5 65 75 20 85 40

Al comparar las Tablas 4.8 con la 4.6, puede observarse que existe una diferencia

entre los resultados obtenidos en el vehículo 1 y el vehículo 2, pues aunque los

niveles de ruido existentes en la prueba del vehículo 2 son más bajos que en los del

vehículo 1, el sistema tuvo una mejor respuesta en este último y no en la primera.

Page 103: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 4: Pruebas y resultados

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 88

Fig. 4.7.- Respuesta del programa de reconocimiento de voz en porcentaje de cada comando para el sujeto 1 en el vehículo 1 de la prueba 2.

Esta cuestión queda solucionada al ver la respuesta en frecuencia del programa de

reconocimiento de voz ante las señales presentadas por el ruido producido por el

motor del vehículo 1 y el del vehículo 2. Si se obtiene la transformada del ruido

producido por el vehículo 2, se observa la señal de la Fig. 4.8c, cuyo espectro en

frecuencia es la Fig. 4.8d.

a)

b)

Fig. 4.8.- Señales obtenidas en el vehículo 2 de a) voz y b) su respectivo espectro de frecuencia.

0%

20%

40%

60%

80%

100%

Sujeto 1

A

Afuera

Usuario

Llamada

Luces

Cajuela

Page 104: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 4: Pruebas y resultados

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 89

Dicha señal cuenta con amplio contenido en frecuencias bajas que al combinarse

con la señal de voz (Fig 4.8.a) del usuario (persona que grabó la base de datos),

causa una confusión en el sistema, como se puede ver en las Fig. 4.8e y 4.8f.

c)

d)

e)

f)

Fig. 4.8.- Señales obtenidas en el vehículo 2 de c) ruido auto, e) ruido más voz, y sus respectivos espectros de frecuencia d) ruido auto f) ruido más voz.

Page 105: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 4: Pruebas y resultados

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 90

De igual manera se presentan los resultados obtenidos del programa en el vehículo

1 (ver Fig. 4.9), que como puede observarse, el ruido tiene una menor amplitud en

su espectro dentro de esas frecuencias, lo que hace que la respuesta del

reconocedor sea mayor.

a)

b)

c)

d)

Page 106: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 4: Pruebas y resultados

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 91

e)

f)

Fig. 4.9.- Señales obtenidas en el vehículo 1 de a) voz, c) ruido de auto y e) ruido más voz, y los espectros de frecuencia b) voz, d) ruido auto y f) ruido más voz.

4.3.- Prueba con el motor encendido y en un ambiente de tráfico

La última prueba que se realizó fue en el vehículo 1 con las ventanas abiertas, bajo

condiciones de tránsito y con el motor encendido, de igual manera el sujeto 1 dijo

veinte veces cada comando. Los resultados de la evaluación se muestran en la

Tabla 4.10 y la gráfica del porcentaje de respuesta de cada comando se muestra en

la Fig. 4.10. Las medidas de ruido se realizaron con el sonómetro Phonic PAA3,

utilizando la curva de ponderación A y con una respuesta rápida. Se tomaron diez

lecturas en periodos de cinco segundos. Los resultados de la medición de ruido se

muestran en la Tabla 4.9.

El nivel de ruido promedio que se obtuvo de la sustitución de los valores

contenidos de la Tabla 4.9 en la ecuación 4.1 fue de 63.0 dBA.

Page 107: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 4: Pruebas y resultados

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 92

Tabla 4.9.- Mediciones del nivel de ruido en la prueba 3.

Medición Nivel de ruido [dbA]

1 54.0

2 55.7

3 56.5

4 71.9

5 58.1 6 55.0

7 57.9

8 61.2

9 57.7

10 53.3

Tabla 4.10.- Resultados del sujeto 1 en el tránsito de la prueba 3.

Número de repetición

"A" "Afuera" "Usuario" "llamada" "Luces" "Cajuela"

1 X X X

2 X X X

3 X X X

4 X X X

5 X X X

6 X X X

7 X X X

8 X X X

9 X X

10 X X X

11 X X X

12 X X X

13 X X X

14 X X X

15 X X X

16 X X X

17 X X X

18 X X X

19 X X X

20 X X X

% Correcto 0 100 100 5 100 0

Page 108: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Capítulo 4: Pruebas y resultados

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 93

Fig. 4.10.- Respuesta del programa de reconocimiento de voz en porcentaje de cada comando para

el sujeto 1 en la prueba 3.

0%

20%

40%

60%

80%

100%

Sujeto 1

A

Afuera

Usuario

Llamada

Luces

Cajuela

Page 109: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Conclusiones

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 94

Conclusiones

La presente tesis demuestra la eficiencia del reconocedor de comandos por medio

del habla, el cual está orientado a la implementación dentro de un automóvil. El

proyecto se basó en comandos que los usuarios podrían utilizar dentro de un auto

con la finalidad de facilitar el uso de este y por su comodidad.

Entre los beneficios que nos ofrece el reconocedor son: una alta velocidad de

procesamiento en los cálculos realizados por la computadora al utilizar el método

LPC el cual no requiere que las señales hayan sido tratadas con algún filtro,

evitando que el programa se vuelva más complejo, haciendo que sea más sencilla

la creación de una base de datos y que el procesamiento de la señal de entrada sea

más rápido. Lo anterior haría que su precio en el mercado se redujera

gradualmente.

A partir de los resultados obtenidos se observa que el sistema responde de manera

más eficiente cuando es utilizado por la persona que grabó la base de datos. Si al

programa existente se le adjuntaran otros métodos de reconocimiento (como el

análisis de formantes), este podría llegar a convertirse en un sistema de seguridad,

esto demuestra la gran flexibilidad que tiene este método para diferentes tipos de

aplicaciones.

Por otro lado las pruebas permitieron observar que el reconocedor de voz a pesar

de trabajar bien bajo ciertas condiciones, necesita de algunas modificaciones para

aumentar su desempeño bajo todas las condiciones de ruido o en su caso de la

mayoría. Entre los puntos considerables para presentar modificaciones al

programa se encuentran que el reconocedor de voz no es robusto, debido a que si

se comparaban más de dos comandos al reconocedor le era difícil identificar

alguno de estos, de igual manera los niveles superiores a 36 dBA afectan al

Page 110: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Conclusiones

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 95

programa interfiriendo con un correcto reconocimiento de voz. También se

encontró que la acústica de los recintos donde se realizaron las pruebas y donde se

desarrolló la base de datos, así como la forma en que se pronunciaban los

diferentes comandos afectan el desempeño del programa de reconocimiento, lo

que obliga al usuario a tener que decir de una sola manera el comando que fue

grabado, sino este no era reconocido.

Bajo estas consideraciones se puede decir que el reconocedor a pesar de su

simplicidad cumple con el objetivo de reconocer comandos dentro de un

automóvil por medio del habla.

Page 111: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Bibliografía y referencias

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 96

Bibliografía y referencias

C. H. Chen, “Signal Processing Handbook”, año 1988, Estados Unidos de América, Editorial Marcel Dekker Inc., ISBN 0-8247-7956-8, pp. 511 – 543. J. Bernal, J. Bobadilla, P. Gómez, “Reconocimiento de voz y fonética acústica”, año 2000, México D.F., Editorial Alfaomega, ISBN 970-15-0541-7, pp. 23 – 37, 141-147, 157, 195, 203 – 206, 236. L. Rabiner, R. Schafer, “Digital Processing of Speech Signals”, año 1978, Estados Unidos de América, Editorial Prentice-Hall signal processing series, ISBN 0-13-213603-1, pp. 98-105. B. Jacob, M. M. Sondhi, Y. Huang “Springer Handbook of Speech Procesing”, año 2008, Estados Unidos de América, Editorial Springer Science+Business Media, e-ISBN 978-3-540-49127-9, pp. 7-13, 124, 125. http://musica.unq.edu.ar/personales/ebonnier/cam2/matlab/tutorial2632.html?page=intro [Fecha de consulta: Febrero 2012]. http://www.mathworks.com/matlabcentral/fileexchange/12122?controller=file_infos&download=true [Fecha de consulta: Febrero 2012]. http://www.mathworks.com/help/signal/ref/lpc.html [Fecha de consulta: Noviembre 2012]. http://www.extech.com/instruments/resources/manuals/407768_UMsp.pdf [Fecha de consulta: Noviembre de 2012]. https://phonic.boxcn.net/shared/fx8ydgar4a [Fecha de consulta: Noviembre de 2012]. http://lema.rae.es/drae/?val=fon%C3%A9tica [Fecha de consulta: Septiembre de 2012].

Page 112: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Anexo A

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 97

Anexo A Programa completo

Page 113: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Anexo A

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 98

Page 114: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Anexo A

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 99

Page 115: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Anexo A

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 100

Page 116: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Anexo A

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 101

Page 117: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Anexo A

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 102

Page 118: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Anexo A

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 103

Page 119: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Anexo A

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 104

Page 120: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Anexo A

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 105

Page 121: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Anexo A

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 106

Page 122: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Anexo B

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 107

Anexo B

Especificaciones del sonómetro Extech Instruments modelo 407768

El instrumento de medición de nivel de sonido de escala automática de la marca Extech Instruments modelo 407768 cumple con las normas de precisión IEC y ANSI Tipo II. En las Figs. B.1 y B.2 se muestran la descripción física del sonómetro y las curvas de ponderación que maneja respectivamente, mientras que la Tabla B.1 indica sus especificaciones técnicas.

Tabla B.1.- Especificaciones del instrumento de medición.

Concepto Descripción

Pantalla LCD multi-función con escala automática

Amplitud de banda de frecuencia 31.5Hz a 8kHz

Micrófono 0.5” Micrófono condensador eléctret

Terminales de salida Puerto RS-232 aislado ópticamente y salida CA

Escalas de medición Escala automática:30 a 130dB Escalas manuales: 30 a 80dB, 50 a 100dB, 80 a 130dB

Ponderación de frecuencia A y C (Programable)

Normas aplicables ANSI/IEC Tipo II

Precisión/Resolución 1.5dB/0.1dB

Registro de máximos/mínimos Las lecturas alta y baja son almacenadas para recuperación posterior

Retención de datos La lectura indicada es retenida al oprimir la tecla HOLD

Retención de máximos Sólo se indica la lectura más alta

Tiempo de respuesta Rápido: 125ms/Lento: 1s (Programable)

Salida análoga CA 0.5VCA rms escala total (600 impedancia salida)

Tensión Batería: 9V; Consumo: 6mADC aproximadamente

Temperatura de operación 0 a 5C

Humedad de operación Menor a 80% RH

Dimensiones/Peso 268x68x29mm/285g

Page 123: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Anexo B

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 108

Fig. B.1.- Descripción física del sonómetro.

Fig. B.2.- Curvas de ponderación del sonómetro.

Page 124: RECONOCEDOR AUTOMÁTICO DE COMANDOS POR MEDIO DEL …

Anexo C

Reconocedor automático de comandos por medio del habla para las funciones de un automóvil 109

Anexo C

Especificaciones del sonómetro Phonic PAA3

La Tabla C.1 indica las especificaciones técnicas del sonómetro Phonic PAA3.

Tabla C.1.- Especificaciones del sonómetro Phonic PAA3.

Concepto Descripción

Entrada/Salida

Micrófono Miniatura integrado omnidireccional de condensador

Línea Jacks XLR para entrada y salida de línea

Puerto de datos Interfaz USB 1.1

Pantalla LCD 160x160 con ajuste de contraste y luz de fondo

NPS, dBu, dBV, Voltaje Gráficas de barra y pantalla digital

RTA 31 bandas, resolución de 0.5dB, frecuencias centrales ISO de 20 Hz a 20kHz

Rango de medición

NPS (Entrada de micrófono) 30 a 130dB

dBu (Entrada de línea) -50 a 40dBu

dBV (Entrada de línea) -52 a 38dBV

Voltaje 5mV a 80V

Configuración

Ponderación A, C o plana

Retención de pico ON/OFF

Nivel máximo RESET

Tiempo de respuesta 35ms, 125ms, 250ms, 1s

Otras funciones

RT60 Pantalla de tiempo de reverberación, hasta 30 s

Memoria 10 RTA+6 cálculo promedio

Cálculo promedio Para 10 memorias de RTA

Pantalla de valores de configuración de EQ

31 bandas

Análisis de fase A través de señal de polaridad

Transmisión Operación simultánea con PC a través del puerto USB

Generador de ruido (basado en alimentación a 6VDC)

Ruido rosa Salida balanceada, -10dBu

Señal de 1kHz Salida balanceada, -10dBu

Señal de polaridad Salida balanceada, -10dBu

Alimentación 4 baterías AA

Dimensiones 144.95x82.95x39.42mm

Peso (con baterías) 354g