SlideShare una empresa de Scribd logo
1 de 81
Descargar para leer sin conexión
Escuela Superior de Ingeniería Mecánica y Eléctrica
Ingeniería en Comunicaciones y Electrónica
“Sistema de Seguridad Por
Reconocimiento de Voz”
TESIS
Que para Obtener el Título de:
Ingeniero en Comunicaciones y Electrónica
PRESENTAN
Pérez Badillo Eyra Oxana
Poceros Martínez Fernando
Villalobos Ponce José Alexis
ASESORES
M. en C. Jiménez Hernández Mario
Ing. Patricia Lorena Ramírez Rangel
INSTITUTO POLITECNICO NACIONAL
México, D.F., Septiembre 2013
a
I
RESUMEN
El presente trabajo de tesis se basa en un sistema de reconocimiento de voz que permite
que el usuario grabe una palabra por medio de un micrófono y ésta sea reconocida en la
base de datos existente en ese momento. Este tipo de proyectos han sido aceptados
usando metodologías desde la comparación de plantillas hasta análisis de espectros en
hogares desde que se tuvo la necesidad de mejorar la seguridad del hogar.
El sistema en sí posee un entorno gráfico en la computadora por medio del software
MATLAB llamado GUI, que proporciona las selecciones de grabación, donde la señal de
voz es ingresada a la computadora, grabada y es procesada por los algoritmos del
programa que modifican la señal llamado Predicción Lineal, obteniendo los parámetros
LPC significativos de la señal de voz, para luego ser almacenados en la computadora. La
selección de reconocimiento permite que la palabra sea comparada con la base de datos
almacenada en la computadora en un proceso llamado comparación de coeficientes
LPC, dicha base de datos ya fue procesada digitalmente por el programa, esta selección
reconoce la palabra que fue grabada por el usuario al momento de querer ingresar a su
hogar. El entorno gráfico proporciona, por otra parte, un análisis gráfico de las palabras
grabadas y reconocidas. Como el Sistema de Reconocimiento de Voz es un sistema de
procesamiento digital de señales de voz, el análisis gráfico en el reconocimiento es un
análisis del espectro de frecuencias de la señal de voz.
Para poder comprobar que el sistema fuera confiable se hicieron 2 tipos de pruebas; Una
entre los usuarios del hogar tratando de acceder uno con el usuario del otro y otra donde
personas ajenas a las almacenadas en la Base de Datos trataran de acceder. Se pudo
comprobar que el sistema de reconocimiento por voz es confiable haciendo uso de
diferentes métodos, los cuales limiten la posibilidad de error de identificación ya sea
entre usuarios almacenados o no, la dificultad más grande de este proyecto se debió a
que si el usuario cambia su tono de voz el sistema podría no reconocerlo, esto se debe a
que si el usuario dice su contraseña en estado de ebriedad, de tristeza o felicidad su voz
cambia y por consiguiente tambien los parámetros LPC.
RESUMEN
II
ÍNDICE
Pág.
Resumen I
Índice II
Índice de Figuras IV
Índice de Tablas V
Objetivo General 1
Objetivos Específicos 1
Planteamiento del problema 1
Hipótesis 2
Justificación 2
Capítulo 1. Conceptos importantes en los Reconocedores de Voz 3
Introducción 3
1.1. Historia del reconocedor de voz 3
1.2. Orden Cronológico de los Reconocedores de Voz 4
1.3. Características de la señal de voz 5
1.3.1. Articulación 6
1.3.2. Señal Acústica 8
1.3.3. Percepción Auditiva 10
1.4. Funcionamiento de un sistema de reconocimiento de voz 11
Capítulo 2. Métodos y Etapas para el Reconocimiento de Voz 12
2.1. Digitalización de la señal de voz 12
2.1.1. Codificación de la señal de voz 12
2.1.2. Muestreo y Cuantizacion 13
2.2. Métodos de Reconocimiento de Voz 17
2.2.1. Aproximación en Base a Plantillas 18
2.2.2. Predicción Lineal 20
2.2.3. Análisis Cepstral 21
2.3. Diagrama de Flujo del Reconocedor de Voz 21
2.4. Etapas del Reconocimiento de Voz 22
2.4.1. Generación de la señal Acústica 22
2.4.2. Conversión A/D o Adquisición 22
2.4.3. Pre-procesamiento 24
2.4.4. Eliminación de Ruido y Normalización 24
2.4.5. Filtro Pre-énfasis 25
2.4.6. Segmentación 25
2.4.7. Extracción de las Características 26
INDICE
III
2.4.8. Calculo de la Distancia 26
2.4.9. Toma de Decisión 27
Capítulo 3. Planteamiento del problema 28
Capítulo 4. Desarrollo de un Sistema de Seguridad por Reconocimiento
de Voz 31
4.1. Metodología 31
4.2. Micrófono 32
4.3. Entrenamiento y Base de Datos 32
4.3.1. Adquisición 32
4.3.2. Eliminación de Silencios y Normalización 33
4.3.3. Promedio 33
4.3.4. Base de Datos 34
4.4. Desarrollo 34
4.4.1. Adquisición 34
4.4.2. Eliminación de Silencios y Normalización 35
4.4.3. Parametrización 36
4.4.4. Reconocimiento de Habla (Toma de decisión) 38
4.4.5. Selección de la Acción a Realizar 40
4.4.6. Interfaz Grafica 40
4.4.7. Programa Completo 46
4.5. Implementación 46
Capítulo 5. Pruebas y Resultados 48
5.1. Pruebas Generales 49
5.1.1. Comparación de Contadores con usuario Alexis 49
5.1.2. Comparación de Contadores con usuario Fernando 51
5.1.3. Comparación de Contadores con usuario Oxana 53
5.1.4. Uso de los promedios 54
5.2. Pruebas de Reconocimiento 55
5.3. Pruebas Con intrusos o personas no Identificadas 57
5.4. Solución del Problema 59
5.5. Estudio Socio Económico 60
Conclusiones 63
Bibliografía y/o Referencias 65
Anexos 66
Anexo1 Programa Completo 66
Anexo 2 Diagrama de Conexión 72
Glosario 73
INDICE
IV
ÍNDICE DE FIGURAS
Figura 1.1. Proceso de Comunicación del Habla 6
Figura 1.2. Órganos del cuerpo que intervienen en el aparato fonador 7
Figura 1.3. Diagrama a Bloques del Proceso General Del Reconocimiento de voz 11
Figura 2.1. Diferentes tipos de Transductores Eléctrico – Acústicos 13
Figura 2.2. Señales Senoidales Muestreadas a diferentes valores 14
Figura 2.3. Señal Cuantizada con 4 y 16 bits respectivamente 15
Figura 2.4. Señal Cuantizada Uniformemente 16
Figura 2.5. Señal Cuantizada No Uniformemente 16
Figura 2.6. Procesos en la que la señal obtiene sus características principales 18
Figura 2.7. Diagrama de Flujo de un Reconocedor de Voz 21
Figura 2.8. Diagrama de generación de la señal acústica 22
Figura 2.9. Diagrama de la adquisición de Voz 22
Figura 2.10. Señal tratada Digitalmente para ser muestreada 23
Figura 2.11. Diagrama de la digitalización de la señal de Voz 24
Figura 2.12. Diagrama de eliminación de ruido y Normalización 24
Figura 2.13. Diagrama de los filtros de énfasis 25
Figura 2.14. Diagrama de segmentación, ventaneo y recorte de la señal acústica 25
Figura 2.15. Diagrama que explica los procesos de extracción de características 26
Figura 2.16. Formula que muestra el cálculo realizado para obtener las distancias 26
Figura 2.17. Diagrama que muestra el proceso para obtener y comparar las distancias 27
Figura 3.1. Peligros En México 28
Figura 3.2. Intento de robo en México 29
Figura 3.3. Tecnología de Protección y/o seguridad 29
Figura 3.4. Seguridad en el hogar (Entrada principal) 30
Figura 4.1. Micrófono que se usara en el proyecto 32
Figura 4.2. Icono de GUIDE en MATLAB para crear interfaces 41
Figura 4.3. Selección de la GUI o abrir una nueva GUI 41
Figura 4.4. Inicio de la GUI con su ventana lateral izquierda de selección de objetos 42
Figura 4.5. Colocación, edición y uso de un Botón en la GUI 42
Figura 4.6. Interfaz gráfica imagen de la GUI 43
Figura 4.7. Interfaz gráfica del Reconocedor de Voz creado en MATLAB 43
Figura 4.8. Interfaz gráfica después de haber apretado el botón Grabar 44
Figura 4.9. Interfaz gráfica después de haber apretado el botón Identificar 45
Figura 4.10. Ventana que aparece después de presionar el botón Salir 45
Figura 4.11. Menú de Funciones del Sistema que despliega las acciones
que se puede realizar 46
Figura 4.12. Ventana que aparece después de seleccionar la Acción de Abrir Puerta 46
Figura 4.13. Maqueta e Interfaz grafica 47
Figura 4.14. Tarjeta de Adquisición de datos USB6008 47
Figura 5.1. Análisis de Factor Peso (Plantilla) 61
INDICE DE FIGURAS
V
ÍNDICE DE TABLAS
Tabla 5.1. Pruebas con ruido de 49.5 a 56 dBA 48
Tabla 5.2. Pruebas con ruido de 62.8 a 69.4 dBA 48
Tabla 5.3. Pruebas con ruido de 66.2 a 75.4 dBA 49
Tabla 5.4. Pruebas de Alexis mencionando Alexis 49
Tabla 5.5. Pruebas de Alexis mencionando Fernando 50
Tabla 5.6. Pruebas de Alexis mencionando Oxana 50
Tabla 5.7. Pruebas de Fernando mencionando Alexis 51
Tabla 5.8. Pruebas de Fernando mencionando Fernando 51
Tabla 5.9. Pruebas de Fernando mencionando Oxana 52
Tabla 5.10. Pruebas de Oxana mencionando Alexis 53
Tabla 5.11. Pruebas de Oxana mencionando Fernando 53
Tabla 5.12. Pruebas de Oxana mencionando Oxana 54
Tabla 5.13. Promedios Obtenidos para Alexis 55
Tabla 5.14. Promedios Obtenidos para Fernando 55
Tabla 5.15. Promedios Obtenidos para Oxana 55
Tabla 5.16. Resultados del Reconocimiento de Alexis 55
Tabla 5.17. Resultados del Reconocimiento de Fernando 56
Tabla 5.18. Resultados del Reconocimiento de Oxana 57
Tabla 5.19. Resultados del Reconocimiento para un Hombre Adulto 57
Tabla 5.20. Resultados del Reconocimiento para una Mujer Adulta 58
Tabla 5.21. Resultados del Reconocimiento para una Niña 58
Tabla 5.22. Análisis de PF (Factor de Peso) 61
Tabla 5.23. Análisis de Costos 62
Tabla 5.24. Análisis Total de Costo 62
INDICE DE TABLAS
1
OBJETIVO GENERAL
Diseñar un sistema de seguridad para el hogar que funcione en base al reconocimiento
de voz.
OBJETIVOS ESPECÍFICOS
a) Aplicar métodos acústicos, matemáticos y físicos de la voz para identificar y reconocer
a los dueños del hogar.
b) Analizar la transmisión, aplicación y manipulación de las señales de voz para poderlas
utilizar en el sistema de seguridad
c) Aplicar un software que funcione como interfaz con el usuario y que además realice
las comparaciones y cálculos necesarios para el reconocimiento de voz, en este caso se
usó MATLAB.
PLANTEAMIENTO DEL PROBLEMA
Dado que en la actualidad es necesario tener mejores y más innovadores sistemas de
seguridad que interactúen con el dueño y que sean capaces de tener un procesamiento
de información veloz y precisa que les permita tomar decisiones rápidas y confiables.
Se propone el diseño, implementación y mejora de sistemas de reconocimiento de voz,
por medio de algoritmos implementados en un software (MATLAB) para analizar la señal
capturada por un micrófono y obtener un mejor reconocimiento de la voz.
OBJETIVOS
2
HIPOTESIS
Al implementar un sistema de seguridad en el hogar por reconocimiento de voz en
MATLAB la seguridad será mejor, eficaz y barata a largo plazo haciendo uso de los
métodos de cuantificación de la señal de voz con ayuda de los coeficientes LPC y
Cepstrum.
Se hará uso del software MATLAB para desarrollar e implementar el reconocedor de voz,
debido a que se está familiarizado con él y es mejor y más preciso que otros.
JUSTIFICACION
Debido a la inseguridad actual que se presenta en la Ciudad de México se realizara un
sistema de seguridad para el hogar utilizando la voz, con la finalidad de proponer a los
habitantes de la Ciudad un sistema capaz de resguardar su hogar.
OBJETIVOS
3
Capítulo 1. Conceptos importantes en los
Reconocedores de Voz
INTRODUCCION
En el presente trabajo se encuentra la propuesta de un desarrollo realizado para lograr
un sistema de seguridad por reconocimiento de voz en un hogar, con el afán de facilitar
el acceso a su domicilio y la seguridad de que solo esa persona podrá tener acceso a él.
En la Actualidad los Sistemas de Reconocimiento de Voz han tenido un gran desarrollo y
han sido importantes en la vida cotidiana.
Primero se hará referencia a los conceptos básicos que debe de tener en cuenta para el
desarrollo de un sistema de seguridad, así como algunas consideraciones con respecto
al habla y a las señales de voz que se necesitan manejar.
Se darán a conocer los diferentes tipos de Métodos que existen para el reconocimiento
de Voz, así como las Etapas por las cuales debe pasar un reconocedor de voz para
poder procesar la voz y manejarla por medio de software.
Después se enfocara al planteamiento del problema relacionado con la realidad que vive
México en cuanto a la delincuencia justificando el uso de los reconocedores de voz como
sistemas de seguridad.
Se generara una propuesta de un sistema de reconocimiento de voz tanto en el
desarrollo como las observaciones que se obtuvieron dentro de él, aplicando los
conceptos, métodos y etapas vistos.
Por último se darán las conclusiones, observaciones y problemas encontrados del
trabajo desarrollado así como un estudio socio-económico para calcular el costo del
proyecto.
1.1. Historia del Reconocedor de Voz
La historia de los primeros Reconocedores de voz comienza hace 40 años pero los
sucesos más importantes que se desarrollaron dentro de la industria fueron gracias a
que AT&T introdujo su Sistema de reconocimiento de voz en 1992 para llamadas por
cobrar, para a finales de 1993 procesaba 50 millones de llamadas al mes. En 1995 los
teléfonos celulares ya ofrecían servicios de marcado activado por voz.
En los 1990's en el sector Salud se inicia la generación de reportes clínicos por voz en
salas de emergencia (fomentado por las empresas se seguros Blue Cross y Blue Shield).
Posteriormente se amplió a diversas áreas de hospitales como radiología, cardiología,
etc.
CAPITULO 1: Conceptos importantes en los Reconocedores
4
En 1995 se desarrollan los primeros prototipos de aparatos electrodomésticos Whirlpool
Corp.
Actualmente las PC's integran utilerías de voz. Microsoft Corp.: Facilidades para
construir objetos de comandos de voz (voice-commandobjects) en Win95. CreativeLabs
integra Procesamiento automático en la mayoría de sus tarjetas soundblaster. Compaq y
PureSpeech desarrollan conjuntamente tecnología de voz. SeagateTech compró 25% de
DragonSystems.
1.2. Orden Cronológico De los Reconocedores de Voz
1870's Alexander Graham Bell:
Quería construir un sistema/dispositivo que hiciera el habla visible a las personas con
problemas auditivos. Resultado: el teléfono
1880's Tihamir Nemes:
Solicita permiso para una patente para desarrollar un sistema de transcripción
automática que identificara secuencias de sonidos y los imprimiera (texto). Pero fue
rechazado como "Proyecto no Realista"
30 años después AT&T Bell Laboratories:
Construye la primera máquina capaz de reconocer voz (basada en Templates) de los 10
dígitos del inglés. Requería extenso reajuste a la voz de una persona, pero una vez
logrado tenía un 99% de certeza. Por lo tanto surge la esperanza de que el
reconocimiento de voz es simple y directo.
A mediados de los 60's:
La mayoría de los investigadores reconoce que era un proceso mucho más intrincado y
sutil de lo que habían anticipado. Por lo tanto empiezan a reducir los alcances y se
enfocan a sistemas más específicos:
 Dependientes del Locutor.
 Flujo discreto de habla (con espacios / pausasentre palabras)
 Vocabulario pequeño (menor o igual a 50 palabras)
Estos sistemas empiezan a incorporar técnicas de normalización del tiempo (minimizar
diferencia en velocidad del habla)
Además, ya no buscaban una exactitud perfecta en el reconocimiento.
Después:
IBM y CMV trabajan en reconocimiento de voz continuo pero no se ven resultados hasta
los 1970's.
CAPITULO 1: Conceptos importantes en los Reconocedores
5
Principios 1970's:
Se produce el 1er Producto de reconocimiento de voz, el VIP100de
ThresholdTechnology Inc. (utilizaba un vocabulario pequeño, dependiente del locutor, y
reconocía palabras discretas). Gana el U.S. NationalAward en 1972.
Luego:
Nace el interés de ARPA del U.S. Department of Defense, y gracias al lanzamiento de
grandes proyectos de investigación y financiamiento por parte del gobierno se precipita
la época de la inteligencia artificial.
El proyecto financiado por ARPA busca el reconocimiento de habla continua, de
vocabulario grande. Impulsa que los investigadores se enfoquen al entendimiento del
habla.
Los sistemas empiezan a incorporar módulos de:
 Análisis léxico (conocimiento léxico)
 Análisis sintáctico (Estructura de Palabras)
 Análisis semántico (Significado)
 Análisis pragmático (Intención)
80's a 90's:
Surgen los sistemas de vocabulario amplio, que ahora son la norma. (Más de1000
palabras). Adicionalmente bajan los precios de estos sistemas.
Empresas importantes actualmente:
 Philips
 Lernout&Hauspie
 SensoryCircuits
 DragonSystems
 Speechworks
 Vocalis
 Dialogic
 Novell
 Microsoft
 NEC, Siemens, Intel (apoyo / soporte técnico), entre otros.
[3]
1.3. Características de la señal de voz
Los sistemas de reconocimiento de voz se enfocan en las palabras y los sonidos que
distinguen una palabra de la otra en un idioma. Estas son los fonemas. Por ejemplo,
"tapa", "capa", "mapa", "napa", son palabras diferentes puesto que su sonido inicial se
reconoce como fonemas diferentes en español.
CAPITULO 1: Conceptos importantes en los Reconocedores
6
Existen varias maneras para analizar y describir el habla. Los enfoques más
comúnmente usados son:
1. Articulación: Análisis de cómo el humano produce los sonidos del habla.
2. Señal Acústica: Análisis de la señal de voz como una secuencia de sonidos.
3. Percepción Auditiva: Análisis de cómo el humano procesa el habla.
Los tres enfoques proveen ideas y herramientas para obtener mejores y más eficientes
resultados en el reconocimiento.
Figura 1.1.Proceso de Comunicación del Habla
En la imagen anterior se observa que partes del oído intervienen en el proceso de
comunicación del habla.
1.3.1. Articulación
La Articulación se compone del sistema fonador que es un conjunto de órganos que
intervienen en la producción de sonidos. También llamado aparato bucal o articulatorio.
El aparato fonador consiste en tres grupos de órganos diferenciados [Figura 1.2]:
Órganos de respiración-cavidades infra-glóticas: pulmones, bronquios y tráquea.
Órganos de fonación-cavidades glóticas: laringe, cuerdas vocales y resonadores -
nasal, bucal y faríngeo.
Órganos de articulación-cavidad supra-glóticas: paladar, lengua, dientes, labios y
glotis.
[2]
CAPITULO 1: Conceptos importantes en los Reconocedores
7
Figura 1.2.Órganos del cuerpo que intervienen en el aparato fonador
El correcto funcionamiento del aparato fonador, es controlado por el sistema nervioso
central. Específicamente, se sabe que el control del habla se realiza en el área de
Broca que se encuentra en el hemisferio izquierdo de la corteza cerebral.
La articulación centra su atención en el aparato vocal: Garganta, boca, nariz, en donde
se producen los sonidos del habla.
 Garganta: Contiene las cuerdas vocales, cuya vibración produce los fonemas
"hablados".
 Boca y Nariz: "Cavidades de resonancia" por que refuerzan ciertas frecuencias
sonoras.
o Cuando el paladar suave baja y deja el aire pasar por la nariz se generan
los fonemas nasales (/m/ /n/)
o La boca consiste de:
 Puntos de articulación
 Dientes
 Puente alveolar (puente óseo atrás de los dientes superiores)
CAPITULO 1: Conceptos importantes en los Reconocedores
8
 Paladar duro
 Paladar suave o velum
 Articuladores
 Labios
 Lengua
[1]
1.3.2. Señal Acústica
Un reconocedor no puede analizar los movimientos en la boca. En su lugar, la fuente de
información es la señal de voz misma.
El Habla es una señal analógica, es decir, un flujo continuo de ondas sonoras y silencios.
El conocimiento de la ciencia de la acústica se utiliza para identificar y describir los
atributos del habla que son necesarios para un reconocimiento de voz efectivo.
Algunas características importantes del análisis acústico son:
 Frecuencia y amplitud
Todos los sonidos causan movimientos entre las moléculas del aire. Algunos sonidos,
tales como los que produce una cuerda de guitarra, producen patrones regulares y
prolongados de movimiento del aire. Los patrones de sonidos más simples son los
sonidos puros (pure tones), y se pueden representar gráficamente por una onda sinoidal.
Frecuencia: Número de vibraciones (ciclos) del tono por segundo 100 por segundo = 100
ciclos/segundo = 100 Hz.
Tonos altos = Mayor frecuencia
Tonos bajos = Menor frecuencia
El volumen de un sonido refleja la cantidad de aire que es forzada a moverse. Se
describe y representa como amplitud de la onda y se mide en decibeles dB.
[2]
 Resonancia
La resonancia se define comúnmente como la habilidad que tiene una fuente vibrante de
sonido de causar que otro objeto vibre gracias a ella.
La mayoría de los sonidos incluyendo del habla tienen una frecuencia dominante llamada
frecuencia fundamental también conocida como pitch (tono) que se combina con
frecuencias secundarias en el habla, la frecuencia fundamental es la velocidad a la que
vibran las cuerdas vocales al producir un fonema sonoro.
CAPITULO 1: Conceptos importantes en los Reconocedores
9
Sumadas a la frecuencia fundamental hay otras frecuencias que contribuyen al timbre
del sonido. (Son las que nos permiten distinguir una trompeta de un violín, etc. o las
voces de diferentes personas)
Algunas bandas de la frecuencia secundarias juegan un rol importante en la distinción de
un fonema de otro. Se les llama formantes y son producidas por la resonancia.
La garganta, boca y nariz son cámaras de resonancia que amplifican las bandas o
frecuencias formantes contenidas en el sonido generado por las cuerdas vocales. Estas
formantes amplificadas dependen del tamaño y forma de la boca y si el aire pasa o no
por la nariz.
Los patrones de las formantes son más fuertes (distinguibles) para vocales que para las
consonantes no sonoras.
 Estructura Armónica y Ruido
El habla no es un tono puro es continuación de múltiples frecuencias y se representa
como una onda compleja.
Vocales se componen de 2 o más ondas simples son ricos en frecuencias secundarias y
contienen estructuras internas que incluyen ondas cíclicas y a cíclicas.
Las ondas a cíclicas no tienen patrones repetitivos generalmente llamados ruido forman
parte de todos los fonemas sonoros, consonantes y semivocales.
Las frecuencias y características de los patrones a cíclicos proveen información
importante sobre la identidad de los fonemas.
La identidad de las consonantes también se revela por el cambio en las formantes que
resultan cuando los articuladores se mueven de un fonema anterior a la consonante y de
ella al siguiente fonema llamadas transiciones de formantes. Estas se analizan utilizando
técnicas como la transformada rápida de Fourier (FFT) generando espectrogramas.
La complejidad de las formas de onda de los fonemas y las constantes transiciones de
un patrón a otro dificultan el análisis de los patrones utilizando las representaciones
complejas de las ondas.
Los patrones armónicos y de ruido se muestran con más claridad utilizando los
espectrogramas de banda ancha.
La localización (la distancia entre ellas) y cambio en las formantes ayudan a identificar
fonemas y palabras.
CAPITULO 1: Conceptos importantes en los Reconocedores
10
 Coarticulación
Los fonemas aparentemente tienen parámetros acústicos claramente definidos, pero
más bien, los fonemas tienden a ser abstracciones implícitamente definidas por la
pronunciación de palabras en un lenguaje.
La forma acústica de un fonema depende fuertemente del contexto acústico en el que
sucede a éste efecto se le llama coarticulación.
Investigadores, utilizan este concepto para distinguir entre la característica conceptual de
un sonido del habla (fonema) y una instancia o pronunciación específica de ese fonema
(tono).
[1]
1.3.3. Percepción Auditiva
La variabilidad del habla producida por coarticulación y otros factores hacen del análisis
de la voz extremadamente difícil.
La facilidad del humano en superar estas dificultades sugiere que un sistema basado en
la percepción auditiva podría ser un buen enfoque desafortunadamente el conocimiento
de la percepción humana es incompleto, lo que se sabe es que el sistema auditivo está
adaptado a la percepción de la de voz.
El oído humano detecta frecuencias de 20Hz a 20,000 Hz pero es más sensible al rango
entre 1000 y 6000 Hz. También es más sensible a cambios pequeños en la frecuencia
en el ancho de banda crítico para el habla. Además el patrón de sensibilidad a cambios
en el tono (pitch) no corresponde a la escala lineal de frecuencias de ciclos por segundo
de la acústica.
Para representar mejor al patrón de percepción acústica, se tiene una escala llamada
mel-scale, la cual es una escala logarítmica que representa los niveles de la señal.
El humano no procesa frecuencias individuales independientemente, como lo sugiere el
análisis acústico. En su lugar escucha grupos de frecuencias por lo cual es capaz de
distinguirlas de ruidos alrededor.
CAPITULO 1: Conceptos importantes en los Reconocedores
11
1.4. Funcionamiento de un sistema de Reconocimiento de
Voz
El reconocimiento de voz generalmente es utilizado como una interfaz entre humano y
computadora para algún software.
Debe cumplir 3 tareas:
 Pre-procesamiento: Convierte la entrada de voz a una forma que el reconocedor
pueda procesar.
 Reconocimiento: Identifica lo que se dijo (traducción de señal a texto).
 Comunicación: Envía lo reconocido al sistema (Software/Hardware) que lo
requiere.
Componentes en una aplicación:
Figura 1.3. Diagrama a Bloques del Proceso General
Del Reconocimiento de voz
Existe una comunicación bilateral en aplicaciones, en las que la interfaz de voz está
íntimamente relacionada al resto de la aplicación. Estas pueden guiar al reconocedor
especificando las palabras o estructuras que el sistema puede utilizar. Otros sistemas
sólo tienen una comunicación unilateral.
Los Procesos de pre-procesamiento, reconocimiento y comunicación deberían ser
invisibles al usuario de la interfaz. El usuario lo nota en el desempeño del sistema de
manera indirecta como: certeza en el reconocimiento y velocidad. Estas características
las utiliza para evaluar una interfaz de reconocimiento de voz.
[6]
CAPITULO 1: Conceptos importantes en los Reconocedores
12
Capítulo 2. Métodos y Etapas para el Reconocimiento
de Voz
En este Capítulo se darán a conocer los diferentes tipos de Métodos que existen para el
reconocimiento de Voz, así como las Etapas por las cuales debe pasar un reconocedor
de voz para poder procesar la voz y manejarla por medio de software.
2.1. Digitalización de la señal de Voz
Para poder manipular la señal de voz este debe de ser transformada a una señal digital
para poder ser utilizada por el software de programación, este proceso se lleva a cabo
en etapas con consideraciones variables que hacen que la adquisición de la señal sea
de forma correcta.
2.1.1. Codificación de la señal de voz
La codificación de una señal se refiere al método para convertir digitalmente el habla
para utilizarlo en diversos ambientes, desde juguetes parlantes, CD’s hasta
transmisiones vía telefónica.
Para utilizar la voz como dato en aplicaciones tan diversas como el voice mail,
anotaciones en un texto o un directorio parlante, es necesario almacenar la voz de
manera que una computadora pueda recuperarla.
La presentación digital de la voz nos provee también con las bases para el
reconocimiento y síntesis de voz.
El método convencional o secuencial de almacenamiento de datos, la cinta magnética
requiere que se le adelante y regrese hasta encontrar la posición buscada. Es propensa
a daño mecánico, no se pueden editar (cut/paste) y no duran mucho tiempo en uso.
Algunos factores que se deben de considerar para codificar la señal dependiendo del
uso que se le dé son:
 Memoria y Ancho de banda necesario para flexibilidad de uso.
 Costo de transmisión.
 Rangos de calidad
 Aplicación.
 Codificadores de Voz.
 Inteligibilidad: La mayor calidad posible
 Error e inteligibilidad.
 Edición Simple.
 Eliminación del silencio: Ahorrar espacio
 Time-scaling: Reproducción más rápida.
CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
13
 Adaptación de Velocidad
 Robustez
2.1.2. Muestreo y Cuantización
El habla es una señal continua y varia en el tiempo. Las variaciones en la presión del
aire se irradian desde la cabeza y se transmiten por el aire.
Un micrófono convierte esas variaciones en presión del aire a variaciones en voltaje. Una
señal Análoga se puede transmitir a través de un circuito telefónico (voltaje) o
almacenados en una cinta magnética (flujo magnético).
En el Mundo Real los estímulos sensoriales son análogos. Sin embargo, para las
computadoras es necesario digitalizar la señal (primera fase del procesamiento de la
señal)
Para esto se usan series de valores numéricos con una frecuencia regular (frecuencia de
muestreo). El número posible de valores está limitado por el número de bits disponible
para representar a cada muestra.
Figura 2.1. Diferentes tipos de Transductores Eléctrico – Acústicos
CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
14
 Muestreo
El muestreo asigna un valor numérico a la señal en unidades discretas de tiempo
constante dependiendo de la frecuencia Nyquist que específica la frecuencia máxima a
la que una señal puede reproducirse completamente.
El teorema de Nyquist establece que:
Frecuencia muestreo = 2 veces la frecuencia máxima de la señal para poder
reproducirla.
Para poder reproducir la señal análoga debe pasar por un filtro pasa-bajas a la
frecuencia de muestreo (quitar ruidos creados por el muestreo).
Figura 2.2. Señales Senoidales Muestreadas a diferentes valores
Si la señal varía más rápido se requiere una T más pequeña por lo tanto un menor ancho
de banda de frecuencias.
El humano produce señales de Voz desde los 100(hombre)-400(mujer) Hertz hasta los
15000Hz. Teléfono: 3100Hz por lo tanto se muestrea a 8000 Hz, inteligible pero baja
calidad. Comparado con un CD, se muestrea a 44.1Hz.
El ancho de banda es mayor para instrumentos que para voz. Pero la diferencia es
audible. Por lo tanto se requiere mayor espacio para almacenar y transmitirla.
CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
15
 Cuantización
La cuantizacion consiste en que cada muestra se representa con un valor digital
limitando el rango de valores discretos correspondiente a la original.
Ejemplo:
Utilizando 4 bits se pueden representar 16 valores diferentes.
Con 8 bits ya son 256 valores.
Figura 2.3. Señal Cuantizada con 4 y 16 bits respectivamente
Esto se puede ver como la resolución:
1. El error o diferencia entre la señal original y la reconstruida se percibe como
ruido.
2. Por lo tanto, a mayor resolución mayor cuantización y menor ruido como
consecuencia.
3. La resolución (# de bits por muestra) se describe generalmente en términos de la
relación señal-a-ruido (signaltonoise ratio o SNR).
4. A mayor SNR es mayor la fidelidad de la señal digitalizada.
5. SNR aproximadamente 2^B (B=bits/muestra)
6. Es independiente de la frecuencia de muestreo.
Existen diferentes técnicas de cuantizacion:
 Cuantización uniforme
 Cuantización no uniforme
 Cuantización logarítmica
 Cuantización vectorial
CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
16
 Cuantificación uniforme
En los cuantificadores uniformes o lineales la distancia entre los niveles de
reconstrucción es siempre la misma, la mayoría usan un número de niveles que es una
potencia de 2. No hacen ninguna suposición acerca de la señal a cuantificar, de allí que
no proporcionen los mejores resultados.
Su ventaja es que son más fáciles y económicos al implementarlos.
Figura 2.4. Señal Cuantizada Uniformemente
 Cuantificación no uniforme
El problema de la cuantificación uniforme es que conforme aumenta la amplitud de la
señal, también aumenta el error. Este problema lo resuelve el cuantificador logarítmico
de forma parcial. Sin embargo, si conocemos la función de la distribución de
probabilidad, podemos ajustar los niveles de reconstrucción a la distribución de forma
que se minimice el error cuadrático medio. Esto significa que la mayoría de los niveles de
reconstrucción se den en la vecindad de las entradas más frecuentes y,
consecuentemente, se minimice el error (ruido).
Figura 2.5. Señal Cuantizada No Uniformemente
CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
17
 Cuantificación logarítmica
Las señales de voz pueden tener un rango dinámico superior a los 60 dB, por lo que
para conseguir una alta calidad de voz se deben usar un elevado número de niveles de
reconstrucción. Sin embargo, interesa que la resolución del cuantificador sea mayor en
las partes de la señal de menor amplitud que en las de mayor amplitud. Por tanto, en la
cuantificación lineal se desperdician niveles de reconstrucción y, consecuentemente,
ancho de banda. Esto se puede mejorar incrementando la distancia entre los niveles de
reconstrucción conforme aumenta la amplitud de la señal.
Para evitar desperdicio de niveles de reconstrucción y de ancho de banda se utiliza un
método sencillo para mejorar el incremento de la distancia entre los niveles de
reconstrucción conforme aumenta la amplitud de la señal. Para conseguir esto se hace
pasar la señal por un compresor logarítmico antes de la cuantificación. Esta señal
comprimida puede ser cuantificada uniformemente. A la salida del sistema la señal pasa
por un expansor. A esta técnica se le llama compresión.
 Cuantificación vectorial
Este método cuantifica los datos en bloques de N muestras. En este tipo de
cuantificación, el bloque de N muestras se trata como un vector N-dimensional. La
cuantificación vectorial ofrece mejores resultados que la cuantificación escalar, sin
embargo, es más sensible a los errores de transmisión y lleva consigo una mayor
complejidad computacional.
[4,6,9]
2.2. Métodos de Reconocimiento de voz
En el reconocimiento del habla, la señal de voz se ingresa a un procesamiento para
producir una representación de la voz en forma de secuencia de vectores o
agrupaciones de valores que se denominan parámetros, que deben representar la
información contenida en la envolvente del espectro.
Hay que tener en cuenta que el número de parámetros debe ser reducido, para no
saturar la base de datos, ya que mientras más parámetros tenga la representación
menos fiables son los resultados y más costosa la implementación.
Existen distintos métodos de análisis para la extracción de características, y se
concentran en diferentes aspectos representativos. En este trabajo de tesis utilizaremos
los dos de mayor importancia para el análisis de la voz tomando en cuenta su
predecesor de Aproximación en base a plantillas:
 Análisis de predicción lineal (LPC)
 Análisis Cepstral [8]
CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
18
2.2.1. Aproximación en base a plantillas
Teoría que ha dado lugar a toda una familia de técnicas de reconocimiento de voz,
causando un considerable avance durante las décadas de los 70’s y 80’s.
Figura 2.6. Procesos en la que la señal obtiene sus características principales
El principio es simple, se almacenan patrones de voz típicos (templates) como modelos
de referencia en un diccionario de palabras candidato. El reconocimiento se lleva a cabo
comparando la expresión desconocida a los patrones almacenados (templates)
seleccionando el que más se le parece usualmente se construye patrones para las
palabras completas.
Ventaja: Se evitan errores debidos a la segmentación o clasificación de unidades
pequeñas que pueden variar mucho acústicamente, como los fonemas.
Desventaja: Cada palabra requiere de su patrón y el tiempo de preparar y compararlos
se vuelve demasiado al incrementarse el tamaño del vocabulario.
Inicialmente se pensaba que se restringía sólo a reconocimiento dependiente del locutor.
Sin embargo se logro un reconocimiento independiente del loc. Utilizando técnicas de
Cluster para generar automáticamente grupos de patrones para cada palabra del
vocabulario.
También pasó de ser para el reconocimiento de palabras aisladas a habla continua
utilizando técnicas de programación dinámica para encontrar la mejor cadena de
patrones.
 Medición de características.
Se trata básicamente de una técnica de reducción de datos en la cual el gran número de
datos en la señal grabada es transformado en un grupo más pequeño de características
que describen las propiedades importantes de la señal.
CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
19
El tipo de características que se calculan depende de:
1. Tiempo para calcularlas
2. Espacio para almacenarlas
3. Facilidad de Implementación.
Análisis mediante banco de filtros, Una muestra de voz se puede aproximar como una
combinación lineal de muestras anteriores.
 Determinación de similitud entre patrón de referencia de voz y
serial capturada.
R(t) T(t)
Se busca una función de alineamiento w(t) que mapee R y las partes correspondientes
de T.
El criterio de correspondencia es la minimización de una medida de distancia D(T,R)
Por lo tanto se busca una w(t) tal que mística d(T(t), R(W(t))) función de ponderación
deriva de w(t)
D(T,R)= min INTEGRAL
dw(t)
Se buscan una alineación en tiempo "optima" a través de una curva que relacione el eje
de tiempo m de R al eje de tiempo del patrón T.
m=w(n)
Restricciones w(I)=1
W(NT)=NR
Para determinar el tipo de la alineación se propusieron diversas técnicas:
1. Alineamiento lineal m=w(n)=(n-1)[(NR-1)/(NT-1)]+1
2. Mapeo de eventos temporales (significativos) en ambos patrones
3. Máxima Correlación se varía la función para maximizar la correlación entre RyT
4. Dynamic Time Warping (se calcula la distancia entre R y T)
Se debe encontrar una medida que indique qué tan similares con los patrones R y T.
Para ello es necesario alinearlos de alguna forma.
[5,8]
 Reglas de decisión
El candidato con la menor distancia o una lista ordenada por distancias (de menos a
mayor) Se usa cuando se tienen varios patrones de referencia para cada cantidad R.
CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
20
2.2.2. Predicción Lineal
Se trata de una de las técnicas más potentes de análisis de voz, y uno de los métodos
más útiles para codificar voz con buena calidad.
Su función es representar la envolvente espectral de una señal digital de voz en una
forma comprimida, utilizando la información de un modelo lineal, con lo cual se
proporcionan unas aproximaciones a los parámetros de la voz muy precisas.
Se fundamenta en establecer un modelo de filtro de tipo “todo polo”, para la fuente de
sonido, el filtro “todo polo” justifica su uso ya que permite describir la función de
transferencia de un tubo, que sin perdidas está formado por diferentes secciones.
El modelo recibe este nombre porque pretende extrapolar el valor de la siguiente
muestra de voz s(n) como la suma ponderada de muestras pasadas:
s(n) = s(n-1), s(n-2),…, s(n-K)……(2.1)
 Estimación de los LPC
Una estima o predicción de s(n) basada en p muestras anteriores, puede calcularse
como lo muestra la siguiente fórmula:
( ) ∑ ( ) ( )
y el error de predicción se obtiene de:
( ) ( ) ∑ ( ) ( )
Los LPC se obtienen minimizando un criterio cuadrático en los errores de predicción,
para cada cuadro en que es dividido el segmento de voz.
El número de coeficientes LPC que se obtienen dependen la frecuencia de muestreo
como se indica en la siguiente fórmula:
( ) ( )
[5]
CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
21
2.2.3. Análisis Cepstral
Como se sabe los sonidos de la voz se pueden representar mediante un espectrograma,
que indica las componentes frecuenciales de la señal de voz.
Es así entonces como el espectro nos proporciona información acerca de los parámetros
del modelo de producción de voz, tanto de la excitación como del filtro que representa el
tracto vocal. Estos coeficientes fueron utilizados solo para mostrar la señal acústica no
se usaron para cálculos, estimaciones, etc.
2.3. Diagrama de Flujo del Reconocedor de Voz
El siguiente diagrama de flujo muestra las acciones que deben seguirse para que el
Reconocedor de Voz funcione.
Figura 2.7. Diagrama de Flujo de un Reconocedor de Voz
CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
22
2.4. Etapas del Reconocimiento de Voz
Las etapas para el correcto funcionamiento de un Reconocedor de Voz se mencionan a
continuación.
2.4.1. Generación de la Señal Acústica
Figura 2.8. Diagrama de generación de la señal acústica
2.4.2. Conversión A/D o Adquisición
Figura 2.9. Diagrama de la adquisición de Voz
 Obtención de la señal por el micrófono
El micrófono es un transductor electro-acústico. Su función es la de transformar la
presión acústica ejercida sobre su capsula por las ondas sonoras en energía eléctrica.
Cuando un micrófono está operando las ondas de sonido hacen que vibre el elemento
magnético del micrófono causando una corriente eléctrica hacia la tarjeta de sonido,
donde el convertidor A/D básicamente graba los voltajes eléctricos en intervalos
específicos.
 Muestreo
El muestreo es para transformar una señal analógica o señal continúa a una señal digital
o discreta, es decir de la señal original (analógica) se toman muestras cada determinado
tiempo y se hace una copia de su valor en tiempos definidos, de esta forma surge la
frecuencia de muestreo que es la cantidad de muestras que se tienen de una señal en
una unidad de tiempo y se mide en Hz (ciclos por segundo).
CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
23
Figura 2.10. Señal tratada Digitalmente para ser muestreada
La frecuencia de audio que percibe el ser humano está entre los 20 Hz y 20kHz,
frecuencias más elevadas el oído humano no lo percibe.
La frecuencia de la voz se encuentre entre frecuencias de 100Hz a 8kHz.
[4]
 Resolución o Cuantificación
El proceso de cuantificación es uno de los pasos que se siguen para lograr
la digitalización de una señal analógica. Este proceso es convertir una sucesión de
muestras de amplitud continua en una sucesión de valores discretos preestablecidos
según el código utilizado.
Durante el proceso de cuantificación se mide el nivel de tensión de cada una de las
muestras, obtenidas en el proceso de muestreo, y se les atribuye un valor finito de
amplitud, seleccionado por aproximación dentro de un margen de niveles previamente
fijado.
La cuantificación más comúnmente usada, es de 8 bits, mínimo requerido para una
calidad baja, puede mejorarse su S/R con una técnica no lineal de cuantificación, se
obtienen excelentes resultados aumentando la cuantificación a 16 bits.
[3,4]
CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
24
 Ganancia
El siguiente paso es amplificar las señales a niveles que sean manejables. La señal
vocal tiene componentes de frecuencia que pueden llegar a los 10 kHz., sin embargo la
mayor parte de los sonidos vocales tiene energía espectral significativa hasta los 5 Khz.
solamente los sonidos fricativos poseen componentes que pueden llegar a los 10 kHz.
Para tomar y no eliminar información se debe amplificar la ganancia.
2.4.3. Pre-procesamiento
Figura 2.11. Diagrama de la digitalización de la señal de Voz
Para el análisis de la señal de voz se realiza un pre-procesamiento de la señal vocal.
Esto sucede a través de técnicas que permitan extraer la información acústica
directamente a partir de la señal vocal emitida, se realiza el muestreo y algún tipo de
cuantizacion.
[3]
2.4.4. Eliminación de Ruido y Normalización
Figura 2.12. Diagrama de eliminación de ruido y Normalización
Primero se realiza un filtrado de la señal para reducir los efectos del ruido que acompaña
la señal de voz ingresada, sin este filtrado se tendrían datos que no necesitamos.
También se hace una segmentación, esto es detectar el inicio y final de la señal de voz
para eliminar el ruido inicial y final, esto ayuda a optimizar memoria y hacer más veloz el
tiempo de cálculo para comparaciones y por supuesto evitar errores, para hacer esto se
hace uso del nivel de energía.
CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
25
2.4.5. Filtro Pre-énfasis
Se aplica un filtro digital pasa altas de primer orden a la señal, para enfatizar las
frecuencias altas de los formantes por dos razones, primero para que no se pierda
información durante la segmentación, ya que la mayoría de la información está contenida
en las frecuencias bajas, en segundo remueve la componente DC de la señal, aplanando
espectralmente la señal.
Figura 2.13. Diagrama de los filtros de énfasis
[8]
2.4.6. Segmentación
La segmentación consiste en cortar la señal en segmentos de análisis. La señal de voz
es asumida como estacionaria en estos segmentos.
Durante la segmentación los segmentos son guardados cada uno como la columna de
una matriz, para el posterior procesamiento de la señal de voz.
Para el proceso una ventana de Hamming de 30ms es aplicada a la señal de voz,
enfatizada previamente con el filtro de pre-énfasis. Con un desplazamiento típico 10ms
entre cada ventaneo.
Figura 2.14. Diagrama de segmentación, ventaneo y recorte de la señal acústica
[9]
CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
26
2.4.7. Extracción de las características
Figura 2.15. Diagrama que explica los procesos de extracción de características
En este paso se utiliza el método de Predicción lineal para obtener coeficientes LPC y
con ayuda de Cepstrum entender el espectro frecuencia de la señal que se va a
reconocer.
[9]
2.4.8. Calculo de Distancia
Una característica fundamental de los sistemas de reconocimiento es la forma en que los
vectores característicos son combinados y comparados con los patrones de referencia.
Para poder realizar estas operaciones es necesario definir una medida de distancia entre
los vectores característicos.
Algunas de las medidas de distancia más utilizadas son las distancias o métricas
inducidas por las normas en espacios Lp.
En el algoritmo de reconocimiento en MATLAB se utiliza una distancia Euclidea, definida
del siguiente modo: por ejemplo si fi y fi’, con i=0, 1, 2,…, D son las componentes de dos
vectores característicos f y f’, puede definirse la siguiente métrica inducida por la norma
Lp:
………(2.5)
Figura 2.16. Formula que muestra el cálculo realizado para obtener las distancias
CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
27
En el algoritmo primero se define el tamaño del mayor vector, y se calcula con la formula
anterior la distancia entre el vector de la palabra a reconocer y cada uno de los vectores
de referencia en la base de datos, luego se hacen las condiciones para obtener la menor
distancia, con lo cual se encuentra la palabra identificada en la base de datos.
Figura 2.17. Diagrama que muestra el proceso para obtener y comparar las distancias
2.4.9. Toma de Decisión
La toma de decisión se hace en cuestión de la diferencia entre las distancias de la señal
graba que tiene su base de datos y la señal que se está comparando, se toma la
decisión para aquella que cumpla con la menor distancia y cumpla ciertas condiciones,
como tener mayor numero acertado de coeficientes LPC o la envolvente de esta señal es
muy parecida a la envolvente de la señal grabada en base de datos.
CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
28
Capítulo3. Planteamiento del Problema
La inseguridad ciudadana se ha convertido en uno de los grandes desafíos de las
sociedades contemporáneas. El impacto del fenómeno sobre la calidad de vida de los
ciudadanos obliga a los gobiernos nacionales, locales y a los sectores organizados de la
sociedad, a diseñar esquemas alternativos a los existentes, siendo su propósito el
disminuir los niveles de inseguridad, sin sacrificar el avance de la Democracia y el
respeto por los Derechos Humanos y las Garantías Ciudadanas.
La seguridad es un pre requisito básico para que las personas puedan satisfacer sus
necesidades básicas y desarrollar sus potencialidades como seres humanos, se ha
constituido como un Derecho Humano exigible.
El robo a casa habitación es uno de los delitos cuya incidencia ha aumentado en la
ciudad de México, de acuerdo con un estudio de la empresa Multisistemas de Seguridad
Industrial.
Figura 3.1.Peligros En México
De acuerdo con estadísticas dadas a conocer por funcionarios de la Secretaría de
Seguridad Pública y de la Procuraduría General de Justicia (PGJDF), ambas del Distrito
Federal, así como el Consejo Ciudadano de Seguridad Pública y Procuración de Justicia,
en 68 por ciento de robos a casa habitación la víctima fue abordada cuando llegaba a su
domicilio; 20 por ciento abrieron la puerta al asaltante, quien se hace pasar por prestador
de algún servicio y en 12 por ciento el atraco ocurrió cuando no había nadie en la
vivienda.
CAPITULO 3: Planteamiento del Problema
29
El subprocurador de Averiguaciones Previas Desconcentradas de la PGJDF, Hiram
Almeida Estrada, indicó que la mayor incidencia de ese ilícito es en las delegaciones
Tlalpan, Gustavo A. Madero e Iztapalapa.
Figura 3.2. Intento de robo en México
La tecnología puede ser una herramienta sumamente útil y poderosa para reducir el
riesgo a ser víctimas de la inseguridad. Proponer y diseñar un sistema tecnológico
ayudara a reducir los riesgos de ser víctimas de un robo a domicilio, es vital para el
desarrollo de satisfacer la necesidad de vivir seguro y confiado al ciudadano.
Figura 3.3.Tecnología de Protección y/o seguridad
CAPITULO 3: Planteamiento del Problema
30
Es de enfoque el ingreso o acceso al hogar por ello se toman medidas para limitar el
acceso a personas desconocidas y las funciones que pueden realizar dentro de este,
como encender luces, entrar a diferentes habitaciones, hacer uso de teléfono etc. De
esta forma el dueño y su familia podrán sentirse seguros de vivir en un lugar controlado
por ellos.
Usando tecnología eficiente y accesible para personas de cualquier nivel social se
pretende dar un servicio de seguridad al ciudadano, estando dentro y fuera de su hogar.
Figura 3.4.Seguridad en el hogar (Entrada principal)
CAPITULO 3: Planteamiento del Problema
31
4. Desarrollo de un Sistema de Seguridad por
Reconocimiento de Voz
4.1. Metodología
Dentro de la metodología del proyecto se requiere:
 Generar una base de datos.
 Filtrar y normalizar la señal adquirida.
 Obtener sus coeficientes LPC.
 Comparación de los coeficientes LPC según la distancia.
 Permitir o denegar el acceso.
Primeramente para la base de datos se realizan 5 grabaciones del usuario, las cuales se
hicieron con un micrófono y en formato .WAV a través de MATLAB a 22 KHz de
muestreo y 16 bits de resolución.
Posteriormente se hizo el filtro que elimina el ruido y aumentaba su energía para que las
grabaciones sean parecidas a sus parámetros (Normalización).
Al tener las 5 muestras sin ruido y normalizadas se obtiene el promedio de estas para
tener una única señal promediada con la señal de voz del usuario.
Los coeficientes LPC se obtienen con una función dentro de MATLAB, el número de
coeficientes que se utilizan son 25, dado por la siguiente ecuación:
( ) ………….(3.1)
Con esto se obtienen vectores de 25 coeficientes LPC para cada una de las señales, que
se comparan en distancia para obtener la relación entre la señal grabada y las 3 señales
guardadas en la base de datos.
La medida de la distancia se realiza elemento por elemento uno a uno, entre la señal de
voz grabada y alguna de la de la base de datos.
Al final de la medición de las distancias se suman los coeficientes que tengan menos del
rango dado por el programa para dar el número exacto de coeficientes LPC en que se
parecen las señales.
Este procedimiento se realiza 3 veces comparando la señal grabada con cada una de las
bases de datos.
La toma de decisión se hace en base a que la señal grabada debe tener como mínimo
cierto número de coeficientes LPC, que se parecen a la señal almacenada en la base de
datos de ese usuario, si alguna de esas relaciones supera ese mínimo se da por hecho
que la voz grabada es de ese usuario, por lo cual el programa reconoce a la persona y le
CAPITULO 4: Desarrollo de Un sistema de Seguridad
32
da acceso al sistema, si ninguna de las relaciones supera el mínimo para alguna de las 3
personas el programa manda un error de que no se reconoció, negando el acceso al
sistema a la persona que grabo.
4.2. Micrófono
Las características principales del Micrófono, con el cual la adquisición de la señal de
voz es posible, son las siguientes:
 Suprime ruidos de funcionamiento no deseados.
 El protector contra viento y el interruptor de filtro pasa-altas evitan las
interferencias del viento o ruidos de baja frecuencia.
 Cuenta con un cuerpo de dimensiones reducidas para poder utilizarlo
cómodamente.
 Ofrece la manera ideal de grabar un sonido nítido y claro.
El principal inconveniente es que el micrófono, captan tanto lo se requiere como lo que
no: ruido del entorno, reflexiones acústicas, etc.
Figura 4.1. Micrófono que se usara en el proyecto
4.3. Entrenamiento y Base de Datos
4.3.1. Adquisición
Mediante el Software de MATLAB se crea un programa en el editor, con el cual se puede
adquirir señales de voz en archivos WAV con Frecuencia de muestreo de 22Khz, a 16
bits de resolución, mono canal y duración de 2 segundos.
Programa:
%Programa de Grabaciones de la Base de Datos
Fs = 22050; % Frecuencia de Muestreo
s = wavrecord(2*Fs, Fs, 1);
wavwrite(s,Fs,16,'F1.wav') % Guarda .wav señal grabada
CAPITULO 4: Desarrollo de Un sistema de Seguridad
33
4.3.2. Eliminación de Silencios y Normalización
Adquirida la señal de voz, se procede a eliminar el ruido por medio de un Filtro para
obtener la señal característica, aunado a esto se debe Normalizar la señal, debido a que
en MATLAB la señal debe tomar valores desde -1 hasta 1 para poder utilizarla de forma
adecuada sin perdidas.
Programa:
%Programa de Grabaciones de la Base de Datos (Normalización y eliminación de ruido)
Fs = 22050; % Frecuencia de Muestreo
s = wavrecord(2*Fs, Fs, 1);
wavwrite(s,Fs,16,'F1.wav') % Guarda .wav señal grabada
lon = length(s); % Longitud del vector
d = max(abs(s)); % Obtiene el valor más Grande
s = s/d; % Normaliza la señal
prom = sum(s.*s)/lon; % Promedio señal entera
umbral = 0.02; % 2% de la energía promedio
y = [0];
for i = 1:400:lon-400 % Ventaneo cada 10ms
seg = s(i:i+399); % Segmentos
e = sum(seg.*seg)/400; % Promedio de cada segmento
% Si el promedio energético es mayor que la señal completa por el valor umbral
if( e> umbral*prom)
% Almacena en (y) sino es eliminado como espacio en blanco
y = [y;seg(1:end)];
end;
end;
% Guarda .wav señal normalizada y sin ruido
wavwrite(y,Fs,16,'F1b.wav')
plot(y) % Grafica señal Normalizada
sound(y,22050) % Reproduce Señal Normalizada
4.3.3. Promedio
Se procede a grabar 5 veces el comando a reconocer lo cual genera 5 grabaciones
distintas, las cuales se deben promediar para obtener una sola señal que caracterizara el
comando grabado.
Una vez más se debe Normalizar a la señal.
CAPITULO 4: Desarrollo de Un sistema de Seguridad
34
Programa:
%Programa que Realiza el Promedio de la Base de Datos de Grabaciones
clearall;
clc;
Fs = 22050; % Frecuencia de Muestreo
[rec1] = wavread('F1b.wav'); % Lee la primera grabación
[rec2] = wavread('F2b.wav'); % Lee la segunda grabación
[rec3] = wavread('F3b.wav'); % Lee la tercera grabación
[rec4] = wavread('F4b.wav'); % Lee la cuarta grabación
[rec5] = wavread('F5b.wav'); % Lee la quinta grabación
% Crea el vector final de grabación
prom=rec1;
tam = length(rec5);
fori = 1:1:tam
prom(i) = ((rec1(i)+rec2(i)+rec3(i)+rec4(i)+rec5(i))/5);
end;
lon = length(prom); % Longitud del vector
d = max(abs(prom)); % Obtiene el valor más Grande
prom = prom/d; % Normaliza la señal
% Guarda .wav señal Promediada
wavwrite(prom,Fs,16,'FProm.wav')
plot(prom) % Grafica señal Promediada
sound(prom,Fs) % Reproduce Señal Promediada
4.3.4. Base De Datos
Obtenidos los promedios de los comandos, se forma una base de datos con ellos, que
servirán para comparar con las grabaciones en tiempo real de identificación del software.
[k0,Fs,bits] = wavread('FProm.wav'); % Archivo De Promedio Fer
[k1,Fs,bits] = wavread('AProm.wav'); % Archivo De Promedio Alexis
[k2,Fs,bits] = wavread('EProm.wav'); % Archivo De Promedio Oxana
4.4. Desarrollo
4.4.1. Adquisición
La adquisición de la señal ocurre dentro del programa en la función de GRABAR en él se
adquieren señales de voz en archivos WAV con Frecuencia de muestreo de 22Khz, a 16
bits de resolución, mono canal y duración de 2 segundos.
CAPITULO 4: Desarrollo de Un sistema de Seguridad
35
Parte del Programa:
Fs = 22050; % Frecuencia de Muestreo
s = wavrecord(2*Fs, Fs, 1);
wavwrite(s,Fs,16,'Prueba.wav') % Guarda .wav señal grabada
4.4.2. Eliminación de silencios y Normalización
La eliminación de silencio y ruido junto con la Normalización ocurre después de la
adquisición de la señal en esta parte se hace uso del nivel de energía de la señal,
tomando el valor máximo y normalizándolo a 1, por medio de la segmentación y
ventanas de haming se elimina el ruido y los silencios para que solo se tenga la señal
pura que contenga la información de la voz.
Parte del Programa:
Fs = 22050; % Frecuencia de Muestreo
s = wavrecord(2*Fs, Fs, 1);
wavwrite(s,Fs,16,'Prueba.wav') % Guarda .wav señal grabada
lon = length(s); % Longitud del vector
d = max(abs(s)); % Obtiene el valor más Grande
s = s/d; % Normaliza la señal
prom = sum(s.*s)/lon; % Promedio señal entera
umbral = 0.02; % 2% de la energía promedio
y = [0];
for i = 1:400:lon-400 % Ventaneo cada 10ms
seg = s(i:i+399); % Segmentos
e = sum(seg.*seg)/400; % Promedio de cada segmento
% Si el promedio energético es mayor que la señal completa por el valor umbral
if( e> umbral*prom)
% Almacena en (y) sino es eliminado como espacio en blanco
y = [y;seg(1:end)];
end;
end;
% Guarda .wav señal normalizada y sin ruido
wavwrite(y,Fs,16,'Limpia.wav')
plot(y) % Grafica señal Normalizada
sound(y,22050) % Reproduce Señal Normalizada
CAPITULO 4: Desarrollo de Un sistema de Seguridad
36
4.4.3. Parametrización
La Parametrización u obtención de las características de la voz se realiza dentro de la
función IDENTIFICAR, en esta función se toman las 3 señales de las bases de datos y
se obtienen sus coeficientes LPC para analizar.
Adquiridos los coeficientes LPC de las 3 señales de la base de datos y de la señal
grabada, se realizan 3 algoritmos de medición de distancia, entre la señal grabada en
tiempo real y cada una de las grabaciones dentro de la base de datos, obteniendo 3
vectores que contienen 0 (si la relación entre distancias es mayor al rango máximo) y 1
(si la relación entre distancias es menor al rango máximo).
Posteriormente se suman los vectores de las relaciones y se obtiene un número entero
el cual representa que cantidad de coeficientes LPC, se parecen a la voz grabada y a
cada una de las bases de datos.
Si este número es igual a 25 indica que la señal grabada y la base de datos son
perfectamente iguales, mientras que si es igual a 0 indica que no poseen nada en
común, el estándar mínimo en el cual el numero de coeficientes puede indicar que la
relación corresponde a alguna de las bases de datos es si este número es igual o mayor
a 17.
[4]
Parte del Programa:
% Obtiene el numero de Coeficientes LPC
num = (Fs/1024)+3;
% Obtiene los coeficientes del filtro LPC de Fer
W0 = lpc(k0,num);
% Obtiene los coeficientes del filtro LPC de Alexis
W1 = lpc(k1,num);
% Obtiene los coeficientes del filtro LPC de Oxana
W2 = lpc(k2,num);
% Obtiene los coeficientes del filtro LPC de La Grabación de GUI
Wx = lpc(kx,num);
% Vector que contendrá las distancias entre Fer y la grabación
d0=0;
for z=1:25
% Obtiene la distancia cuadrática media
d0(z)=sqrt((W0(z)-Wx(z))*(W0(z)-Wx(z)));
if d0(z)<= 0.15
% Coloca un 1 en el vector si es próximo a Fer
d0(z)=1;
% Coloca un 0 en el vector si es lejano a Fer
else d0(z)=0;
end
end
% Vector que contendrá las distancias entre Alexis y la grabación
CAPITULO 4: Desarrollo de Un sistema de Seguridad
37
d1=0;
for z=1:25
% Obtiene la distancia cuadrática media
d1(z)=sqrt((W1(z)-Wx(z))*(W1(z)-Wx(z)));
if d1(z)<= 0.15
% Coloca un 1 en el vector si es próximo a Alexis
d1(z)=1;
% Coloca un 0 en el vector si es lejano a Alexis
else d1(z)=0;
end
end
% Vector que contendrá las distancias entre Oxana y la grabación
d2=0;
for z=1:25
% Obtiene la distancia cuadrática media
d2(z)=sqrt((W2(z)-Wx(z))*(W2(z)-Wx(z)));
if d2(z)<= 0.15
% Coloca un 1 en el vector si es próximo a Oxana
d2(z)=1;
% Coloca un 0 en el vector si es lejano a Oxana
else d1(z)=0;
end
end
% Contador que almacena el número de coeficientes que se parecen
cont0=0;
for i = 1:25
% Suma todos los valores de la cadena
cont0 = d0(i)+cont0;
end
cont0
cont1=0;
for j = 1:25
cont1 = d1(j)+cont1;
end
cont1
cont2=0;
for x = 1:25
cont2 = d2(x)+cont2;
end
cont2
CAPITULO 4: Desarrollo de Un sistema de Seguridad
38
4.4.4. Reconocimiento del habla (Toma de decisión)
Debido a que el análisis de predicción lineal es frecuencia y aunando que los fonemas y
pronunciación en cada nombre de los usuarios es completamente diferente, la toma de
decisión depende de la relación de coeficientes LPC entre la voz grabada y las
grabaciones en la base de datos. Es identificado el usuario si sus coeficientes entran en
un rango predispuesto, este rango se define por una serie de pruebas realizadas.
SI el programa reconoce al usuario de acceso al sistema, indica en la interfaz gráfica de
que usuario corresponde la voz y le permite seleccionar la acción a realizar en el menú
de FUNCIONES DEL SISTEMA. Si no lo reconoció, no le da acceso al sistema por lo
cual no podrá seleccionar ninguna acción a realizar.
Parte del Programa:
if (cont0 > 17)
op = length(k0);
% Predicción de la Señal por filtro
predic = filter([0 -W0(2:end)],1,k0);
error = k0 - predic; % Error
% Vector de Autocorrelacion
Rsw = xcorr(k0);
R = Rsw(op:op+num); % Obtención R(0)
G = sqrt(sum(W0.*R')); % Obtención G
% Obtención de la envolvente H(z)
envolvente = abs(G./fft(W0,op));
% Transformada de Fourier de la señal original
SW = abs(fft(k0,op));
semilogy(SW(1:(op/2)),'g');
holdon;
semilogy(envolvente(1:(op/2)),'b');
holdoff;
title('Usuario Fernando Poceros','Fontname','Trebuchet
MS','Fontangle','Italic','Fontweight','Bold','Fontsize',20,'color',[1 1 1])
xlabel('Frecuencia','Fontname','Trebuchet
MS','Fontangle','Italic','Fontweight','Bold','Fontsize',15,'color',[1 1 1])
ylabel('Nivel de
voz','Fontname','Dotum','Fontangle','Italic','Fontweight','Bold','Fontsize',15,'color',[1 1 1])
msgbox('Identificado: Fer');
ID=1;
saveID.mat;
elseif (cont1 > 17)
op = length(k1);
% Predicción de la Señal por filtro
predic = filter([0 -W1(2:end)],1,k1);
error = k1 - predic; % Error
% Vector de Autocorrelacion
CAPITULO 4: Desarrollo de Un sistema de Seguridad
39
Rsw = xcorr(k1);
R = Rsw(op:op+num); % Obtención R(0)
G = sqrt(sum(W1.*R')); % Obtención G
% Obtención de la envolvente H(z)
envolvente = abs(G./fft(W1,op));
% Transformada de Fourier de la señal original
SW = abs(fft(k1,op));
semilogy(SW(1:(op/2)),'g');
holdon;
semilogy(envolvente(1:(op/2)),'b');
holdoff;
title('Usuario Alexis Villalobos','Fontname','Trebuchet
MS','Fontangle','Italic','Fontweight','Bold','Fontsize',20,'color',[1 1 1])
xlabel('Frecuencia','Fontname','Trebuchet
MS','Fontangle','Italic','Fontweight','Bold','Fontsize',15,'color',[1 1 1])
ylabel('Nivel de
voz','Fontname','Dotum','Fontangle','Italic','Fontweight','Bold','Fontsize',15,'color',[1 1 1])
msgbox('Identificado: Alexis');
ID=2;
saveID.mat;
elseif (cont2 > 17)
op = length(k2);
predic = filter([0 -W2(2:end)],1,k2); % Predicción de la Señal por filtro
error = k2 - predic; % Error
% Vector de Autocorrelacion
Rsw = xcorr(k2);
R = Rsw(op:op+num); % Obtención R(0)
G = sqrt(sum(W2.*R')); % Obtención G
% Obtención de la envolvente H(z)
envolvente = abs(G./fft(W2,op));
% Transformada de Fourier de la señal original
SW = abs(fft(k2,op));
semilogy(SW(1:(op/2)),'g');
holdon;
semilogy(envolvente(1:(op/2)),'b');
holdoff;
title('UsuarioEyraOxana','Fontname','Trebuchet
MS','Fontangle','Italic','Fontweight','Bold','Fontsize',20,'color',[1 1 1])
xlabel('Frecuencia','Fontname','Trebuchet
MS','Fontangle','Italic','Fontweight','Bold','Fontsize',15,'color',[1 1 1])
ylabel('Nivel de
voz','Fontname','Dotum','Fontangle','Italic','Fontweight','Bold','Fontsize',15,'color',[1 1 1])
msgbox('Identificado: Oxana');
ID=3;
saveID.mat;
elsemsgbox('No Identificado!!!!!');
end
CAPITULO 4: Desarrollo de Un sistema de Seguridad
40
4.4.5. Selección de la Acción a realizar
Una vez que el usuario es reconocido puede elegir entre 4 opciones: Abrir Puerta, Cerrar
Puerta, Prender Luz y Apagar Luz, la variable ID indica a que usuario se reconoció, si:
ID=1 se trato de Fernando, si ID=2 se trato de Alexis y si ID=3 se trato de Oxana, el
programa permite a todos los usuarios poder realizar cualquiera de las 4 acciones.
Parte del Programa:
% MENU FUNCIONES DEL SISTEMA
functionMenu_Callback(hObject, eventdata, handles)
loadID;
if ID==1 || ID==2 || ID==3
P0=get(handles.Menu,'Value');
switch P0
case 1,
msgbox('No Selecciono Nada');
case 2,
msgbox('Abriendo Puerta');
case 3,
msgbox('Cerrando Puerta');
case 4,
msgbox('Prendiendo Luz');
case 5,
msgbox('Apagando Luz');
end
else
msgbox('No Identificado!!!');
end
4.4.6. Interfaz Grafica
Es diseñada una interfaz de usuario - máquina para lograr la comunicación entre ambos
fácil de entender, se utiliza MATLAB para crear una GUI, en esta se puede mostrar las
gráficas de la señal de voz, los botones que permiten identificar al usuario y las
funciones que se pueden realizar dentro la GUI.
El programa MATLAB tiene la opción para realizar esta interfaz en su barra de funciones
donde aparece el icono de GUIDE para crearla.
CAPITULO 4: Desarrollo de Un sistema de Seguridad
41
Figura 4.2. Icono de GUIDE en MATLAB para crear interfaces
Al seleccionar crear GUIDE, el programa da la opción de crear diferentes modos de
GUIDES, la opción que se selecciono es la que esta como predeterminada (en
blanco),en esta se puede diseñar la forma de la interfaz, con los botones o elementos
necesarios.
Figura 4.3. Selección de la GUI o abrir una nueva GUI
Se escoge la GUIDE predeterminada para poder colocar los objetos necesarios.
CAPITULO 4: Desarrollo de Un sistema de Seguridad
42
Figura 4.4. Inicio de la GUI con su ventana lateral izquierda de selección de objetos
Una vez teniéndola la plantilla de la GUIDE se ajusta el tamaño, se colocan los botones,
graficas, textos, imágenes, graficas, etc. Con los diferentes botones que se tienen al lado
izquierdo de la pantalla, cuando se selecciona el botón y se coloca en el lugar que se
requiere, se ajusta el tamaño y color de este.
Figura 4.5. Colocación, edición y uso de un Botón en la GUI
CAPITULO 4: Desarrollo de Un sistema de Seguridad
43
El diseño realizado para el trabajo fue el siguiente:
Figura 4.6. Interfaz gráfica imagen de la GUI
Esta es la Interfaz gráfica realizada.
Figura 4.7. Interfaz gráfica del Reconocedor de Voz creado en MATLAB
CAPITULO 4: Desarrollo de Un sistema de Seguridad
44
Dentro de las funciones aparecen recuadros donde da aviso la interface del estado del
programa, los botones despliegan diferente información:
 Botón Grabar: Este botón realiza la función de activar el micrófono y grabar
durante dos segundos el comando a reconocer, en este caso es el nombre del
usuario. Para posteriormente limpiar la señal de ruido y normalizarla, una vez
hecho esto imprime la gráfica de la señal de voz en el recuadro de gráfica y
aparece una ventana que indica que la grabación se ha realizado con éxito,
puede observarse en la figura:
Figura 4.8. Interfaz gráfica después de haber apretado el botón Grabar
 Botón Identificar: El botón Identificar es el que cumple la función más
importante del programa que es reconocer y tomar la decisión.
Consta de las siguientes etapas:
1) Obtener los coeficientes LPC de la señal grabada y de las 3 señales de la
base de datos de cada usuario, esto entrega 4 vectores que son las
envolventes de la señal (Grabación, Fernando, Alexis y Oxana).
2) Después obtener la relación de la señal grabada con cada una de las
señales de la base de datos, por medio de la distancia entre cada
coeficiente LPC de cada uno de los 4 vectores. En esta etapa se da un
rango de aceptación en el cual un coeficiente LPC al parecerse al otro se
toma en cuenta o se desprecia, al final todos los coeficientes LPC de la
CAPITULO 4: Desarrollo de Un sistema de Seguridad
45
relación se suman dando la relación de cuanto se parece la señal grabada
con las 3 bases de datos.
3) La etapa final es la Toma de decisión la cual se realiza tomando en
cuenta 2 condiciones, una que el número de coeficientes LPC que se
tomaron en cuenta superen un número mínimo requerido para cada
usuario y dos que el número de coeficientes LPC no sean iguales, ya que
al tener dos relaciones iguales el programa entra en conflicto para decidir
a qué usuario identificar.
Figura 4.9. Interfaz gráfica después de haber apretado el botón Identificar
 Botón Cerrar Sesión: Este botón se ocupa para cerrar la sesión y volver al inicio
de la interfaz una vez que el usuario reconocido ha realizado alguna acción, este
botón limpia las variables utilizadas y reinicia el programa general.
 Botón Salir: El botón salir apaga y cierra la interfaz borrando todas las variables
utilizas.
Figura 4.10. Ventana que aparece después de presionar el botón Salir
CAPITULO 4: Desarrollo de Un sistema de Seguridad
46
 Menú Funciones Del Sistema: Dentro de este menú, están las opciones de
Abrir Puerta, Cerrar Puerta, Apagar Luz y Cerrar Luz, se pueden agregar más
opciones depende de las necesidades del usuario, su función es indicarle al
programa que es lo que el usuario desea hacer.
Figura 4.11. Menú de Funciones del Sistema que despliega las acciones que se puede
realizar
Figura 4.12. Ventana que aparece después de seleccionar la Acción de Abrir Puerta
4.4.7. Programa Completo
El Programa completo se puede observar en los Anexos como Anexo 1.
4.5. Implementación
Para la implementación de sistema de reconocimiento de voz, se fabricó una maqueta
que simularía un Hogar, la cual tendría una puerta y un foco.
Se realizaron algunos circuitos para poder hacer que la puerta se moviera con ayuda de
un motor eléctrico y que el foco se prendiera y apagara, estos circuitos se pueden
encontrar dentro de Anexos en Anexo 2.
Para la conexión entre la computadora (la interfaz gráfica) y los circuitos de la maqueta
se utilizó la tarjeta de adquisición de datos de National Instruments la cual puede ser
reconocida por MATLAB.
CAPITULO 4: Desarrollo de Un sistema de Seguridad
47
Figura 4.13. Maqueta e Interfaz grafica
Figura 4.14. Tarjeta de Adquisición de datos USB6008
CAPITULO 4: Desarrollo de Un sistema de Seguridad
48
Capítulo 5. Pruebas y Resultados
En este Capítulo se mostraran los resultados obtenidos al realizar pruebas con el
programa de reconocimiento de voz, para poder obtener y comparar los objetivos
alcanzados, las ventajas y desventajas del proyecto propuesto.
Para realizar las siguientes pruebas, se usa la voz de uno de los usuarios y dependiendo
de los resultados, se escogió el mejor lugar para realizar las pruebas de reconocimiento.
Estas pruebas consisten en la comparación de los coeficientes LPC de la voz grabada
en una base de datos y la voz en tiempo real, para estos hay un contador de cuantos
coeficientes coinciden, por lo cual las siguientes pruebas muestran la cantidad de
coeficientes que se aproximan a los originales en la base de datos.
Existen 3 contadores denominados Cont 0 para la relación entre los coeficientes LPC de
Fernando y la voz grabada al instante, Cont 1 corresponde a Alexis y Cont 2
corresponde a Oxana.
Estas pruebas se realizaron en un lugar cerrado con un nivel de ruido de:
49.5-56 dBA
Tabla 5.1. Pruebas con ruido de 49.5 a 56 dBA
Alexis Cont 0 Cont 1 Cont 2
Alexis 11 20 9
Alexis 13 18 13
Fernando 12 19 9
Fernando 11 21 10
Oxana 10 15 12
Oxana 9 19 12
Estas pruebas se realizaron en un lugar abierto con un nivel de ruido de:
62.8-69.4 dBA
Tabla 5.2. Pruebas con ruido de 62.8 a 69.4 dBA
Alexis Cont 0 Cont 1 Cont 2
Alexis 14 19 11
Alexis 14 18 12
Fernando 12 18 8
Fernando 10 22 9
Oxana 9 12 13
Oxana 11 19 12
Estas pruebas se realizaron en un lugar con un nivel de ruido de:
66.2-75.4 dBA
CAPITULO 5: Pruebas y Resultados
49
Tabla 5.3. Pruebas con ruido de 66.2 a 75.4 dBA
Alexis Cont 0 Cont 1 Cont 2
Alexis 17 19 14
Alexis 18 18 16
Fernando 16 18 10
Fernando 17 22 17
Oxana 10 12 19
Oxana 17 19 12
El lugar que se escogió para las pruebas generales fue en donde se obtuvieron mejores
resultados, en este caso en lugares con niveles de ruido entre 62.8-69.4 dBA.
5.1. Pruebas Generales
En las pruebas generales se mostraran 20 resultados de pruebas realizadas por cada
usuario, en las cuales cada usuario se graba mencionando los diferentes nombres con
los que se programó; De esta manera se determinara el promedio de cada uno de los
contadores, para establecer un rango de decisión.
El número máximo de relación se muestra de color amarillo, mientras que el número
menor se muestra en color verde.
5.1.1. Comparación de Contadores con usuario Alexis
Tabla 5.4. Pruebas de Alexis mencionando Alexis
Alexis Cont 0 Cont 1 Cont 2
Alexis 12 19 11
Alexis 14 18 13
Alexis 14 18 8
Alexis 10 22 11
Alexis 9 12 13
Alexis 11 19 12
Alexis 13 17 18
Alexis 9 19 10
Alexis 10 19 7
Alexis 11 19 9
Alexis 11 13 8
Alexis 14 19 11
Alexis 9 21 11
Alexis 9 17 12
Alexis 11 19 12
Alexis 12 17 12
Alexis 10 13 9
Alexis 12 16 11
Alexis 14 18 10
Alexis 14 15 9
Promedio 11.45 17.5 10.85
CAPITULO 5: Pruebas y Resultados
50
Tabla 5.5. Pruebas de Alexis mencionando Fernando
Alexis Cont 0 Cont 1 Cont 2
Fernando 9 11 8
Fernando 9 12 6
Fernando 13 13 9
Fernando 12 14 9
Fernando 11 17 9
Fernando 9 9 9
Fernando 13 16 8
Fernando 11 11 9
Fernando 9 14 9
Fernando 14 15 10
Fernando 8 10 6
Fernando 12 8 10
Fernando 10 8 9
Fernando 8 10 4
Fernando 14 18 9
Fernando 10 15 9
Fernando 10 8 10
Fernando 11 10 10
Fernando 10 11 11
Fernando 8 13 9
Promedio 10.55 12.15 8.65
Tabla 5.6. Pruebas de Alexis mencionando Oxana
Alexis Cont 0 Cont 1 Cont 2
Oxana 14 18 10
Oxana 12 14 9
Oxana 12 16 8
Oxana 14 12 13
Oxana 16 16 10
Oxana 13 13 10
Oxana 17 16 9
Oxana 12 12 9
Oxana 15 18 7
Oxana 14 14 12
Oxana 13 16 9
Oxana 14 10 11
Oxana 13 15 12
Oxana 12 20 12
Oxana 11 19 11
Oxana 19 18 10
Oxana 15 17 12
Oxana 10 14 11
Oxana 6 19 11
Oxana 15 13 8
Promedio 13.35 15.5 10.2
CAPITULO 5: Pruebas y Resultados
51
Con los Resultados Obtenidos, se determinó que el Usuario Alexis era reconocido de
cualquier forma cuando se grababa su nombre, por otro lado cuando se grababa el
nombre de otro usuario el reconocedor relacionaba su voz aunque el comando fuera
erróneo.
5.1.2. Comparación de Contadores con usuario Fernando
Tabla 5.7. Pruebas de Fernando mencionando Alexis
Fernando Cont 0 Cont 1 Cont 2
Alexis 14 11 12
Alexis 18 9 9
Alexis 15 15 6
Alexis 18 15 9
Alexis 14 17 11
Alexis 18 13 11
Alexis 17 12 8
Alexis 19 17 8
Alexis 15 13 6
Alexis 18 13 9
Alexis 10 8 7
Alexis 16 13 8
Alexis 14 8 8
Alexis 13 12 7
Alexis 15 15 8
Alexis 14 15 13
Alexis 14 14 6
Alexis 16 13 8
Alexis 13 13 10
Alexis 19 15 7
Promedio 15.5 13.05 8.55
Tabla 5.8. Pruebas de Fernando mencionando Fernando
Fernando Cont 0 Cont 1 Cont 2
Fernando 17 13 11
Fernando 16 10 4
Fernando 14 12 12
Fernando 14 8 10
Fernando 17 13 8
Fernando 12 10 9
Fernando 11 10 10
Fernando 14 13 12
Fernando 11 6 11
Fernando 15 8 10
Fernando 15 9 11
CAPITULO 5: Pruebas y Resultados
52
Fernando 14 13 12
Fernando 16 12 12
Fernando 17 13 9
Fernando 14 14 10
Fernando 13 10 11
Fernando 15 11 12
Fernando 14 12 10
Fernando 12 10 6
Fernando 11 9 12
Promedio 14.1 10.8 10.1
Continuación Tabla 5.8
Tabla 5.9. Pruebas de Fernando mencionando Oxana
Fernando Cont 0 Cont 1 Cont 2
Oxana 15 14 10
Oxana 14 14 6
Oxana 17 15 13
Oxana 16 11 7
Oxana 20 10 8
Oxana 14 14 10
Oxana 15 12 11
Oxana 17 16 12
Oxana 14 17 11
Oxana 14 15 9
Oxana 15 10 11
Oxana 15 17 12
Oxana 18 18 11
Oxana 15 13 10
Oxana 15 17 11
Oxana 13 14 11
Oxana 14 10 9
Oxana 13 14 9
Oxana 12 12 10
Oxana 11 11 9
Promedio 14.85 13.7 10
Con los Resultados Obtenidos, se determinó que el Usuario Fernando era reconocido de
cualquier forma cuando se grababa su nombre teniendo unas incidencias con el Usuario
Alexis, por otro lado cuando se grababa el nombre de otro usuario el reconocedor
relacionaba su voz aunque el comando fuera erróneo.
CAPITULO 5: Pruebas y Resultados
53
5.1.3. Comparación de Contadores con usuario Oxana
Tabla 5.10. Pruebas de Oxana mencionando Alexis
Oxana Cont 0 Cont 1 Cont 2
Alexis 11 13 12
Alexis 10 19 11
Alexis 12 17 12
Alexis 16 18 12
Alexis 11 15 9
Alexis 14 18 12
Alexis 9 16 13
Alexis 11 15 15
Alexis 16 20 11
Alexis 11 16 11
Alexis 13 17 14
Alexis 11 15 14
Alexis 10 20 13
Alexis 12 13 12
Alexis 12 18 7
Alexis 13 17 10
Alexis 12 20 9
Alexis 11 15 12
Alexis 11 16 11
Alexis 13 18 14
Promedio 11.95 16.8 11.7
Tabla 5.11. Pruebas de Oxana mencionando Fernando
Oxana Cont 0 Cont 1 Cont 2
Fernando 9 9 10
Fernando 10 13 8
Fernando 11 11 7
Fernando 8 10 8
Fernando 10 11 6
Fernando 12 14 10
Fernando 9 9 12
Fernando 11 12 10
Fernando 9 16 8
Fernando 10 17 11
Fernando 8 10 5
Fernando 11 17 7
Fernando 5 7 7
Fernando 9 10 6
Fernando 10 12 6
Fernando 13 14 8
Fernando 6 10 8
Fernando 8 10 10
Fernando 11 10 10
Fernando 7 11 7
Promedio 9.35 11.65 8.2
CAPITULO 5: Pruebas y Resultados
54
Tabla 5.12. Pruebas de Oxana mencionando Oxana
Oxana Cont 0 Cont 1 Cont 2
Oxana 8 14 10
Oxana 9 12 11
Oxana 10 11 10
Oxana 15 12 11
Oxana 9 11 15
Oxana 10 13 11
Oxana 8 11 9
Oxana 9 14 10
Oxana 10 13 12
Oxana 9 8 8
Oxana 11 16 14
Oxana 10 12 11
Oxana 9 12 11
Oxana 9 11 10
Oxana 12 14 11
Oxana 4 13 11
Oxana 10 15 8
Oxana 8 12 11
Oxana 8 10 11
Oxana 7 16 8
Promedio 9.25 12.5 10.65
Con los Resultados Obtenidos, se determinó que el Usuario Oxana era reconocido de
cualquier forma cuando se grababa su nombre teniendo unas incidencias con el Usuario
Fernando, por otro lado cuando se grababa el nombre de otro usuario el reconocedor
relacionaba su voz aunque el comando fuera erróneo.
5.1.4 Uso de los Promedios
Durante las pruebas generales se obtuvieron Promedios en la relación entre LPC’s,
estos promedios se muestran a continuación; A partir de ellos se obtuvieron el rango
entre coeficientes que se deberán de colocar en el programa para poder obtener un
reconocimiento de voz confiable y seguro.
Alexis
Los promedios que se obtuvieron se utilizaron para obtener el rango que debería de
tener cada contador para el reconocimiento adecuado del individuo y se obtuvo que para
el usuario Alexis: Cont0 estará entre 13 y 15, Cont1 estará entre 16 y 25 mientras que
Cont2 estará entre 9 y 13.
CAPITULO 5: Pruebas y Resultados
55
Tabla 5.13. Promedios Obtenidos para Alexis
Fernando
Se obtuvo que para el usuario Fernando: Cont0 estará entre 11 y 25, Cont1 estará entre
9 y 11 mientras que Cont2 estará entre 7 y 10.
Tabla 5.14. Promedios Obtenidos para Fernando
Oxana
Se obtuvo que para el usuario Oxana: Cont0 estará entre 7 y 10, Cont1 estará entre 11
y 16 mientras que Cont2 estará entre 7 y 14.
Tabla 5.15. Promedios Obtenidos para Oxana
5.2. Pruebas de Reconocimiento
En las pruebas de Reconocimiento los usuarios grabaron los 3 comandos propios que
cada uno tenía tratando de accesar al sistema como otro usuario, los resultados fueron
los siguientes:
Tabla 5.16. Resultados del Reconocimiento de Alexis
Alexis Id. Oxana Id. Fernando Id. Alexis No identificado
Alexis X
Alexis X
Alexis X
Alexis X
Alexis X
Alexis X
Fernando X
Fernando X
Palabra Cont 0 Cont 1 Cont 2
Alexis 11.45 17.5 10.85
Fernando 10.55 12.15 8.65
Oxana 13.35 15.5 10.2
Palabra Cont 0 Cont 1 Cont 2
Alexis 15.5 13.05 8.55
Fernando 14.1 10.8 10.1
Oxana 14.85 13.7 10
Palabra Cont 1 Cont 2 Cont 3
Alexis 11.95 16.8 11.7
Fernando 9.35 11.65 8.2
Oxana 9.25 12.5 10.65
CAPITULO 5: Pruebas y Resultados
56
Fernando X
Fernando X
Fernando X
Fernando X
Oxana X
Oxana X
Oxana X
Oxana X
Oxana X
Oxana X
Continuación Tabla 5.16.
Algún usuario al querer accesar puede ser reconocido como si mismo a pesar de que no
haya sido esa la palabra mencionada, Esto se debe a que el análisis es en frecuencia,
por lo que en determinado momento puede ser reconocido como el mismo o no
reconocido.
Tabla 5.17. Resultados del Reconocimiento de Fernando
Alexis Id. Oxana Id. Fernando Id. Alexis No identificado
Alexis X
Alexis X
Alexis X
Alexis X
Alexis X
Alexis X
Fernando X
Fernando X
Fernando X
Fernando X
Fernando X
Fernando X
Oxana X
Oxana X
Oxana X
Oxana X
Oxana X
Oxana X
CAPITULO 5: Pruebas y Resultados
57
Tabla 5.18. Resultados del Reconocimiento de Oxana
Alexis Id. Oxana Id. Fernando Id. Alexis No identificado
Alexis X
Alexis X
Alexis X
Alexis X
Alexis X
Alexis X
Fernando X
Fernando X
Fernando X
Fernando X
Fernando X
Fernando X
Oxana X
Oxana X
Oxana X
Oxana X
Oxana X
Oxana X
5.3. Pruebas con Intrusos o Personas no Registradas
Para estas pruebas se utilizaron 3 sujetos prueba, Un hombre adulto, una mujer adulta y
una niña, se trató de acceder al sistema como alguno de los usuarios, los resultados de
las pruebas fueron los siguientes:
Tabla 5.19. Resultados del Reconocimiento para un Hombre Adulto
Hombre
Adulto
Id. Oxana Id. Fernando Id. Alexis No identificado
Alexis X
Alexis X
Alexis X
Alexis X
Alexis X
Alexis X
Fernando X
Fernando X
Fernando X
Fernando X
Fernando X
Fernando X
Oxana X
CAPITULO 5: Pruebas y Resultados
58
Oxana X
Oxana X
Oxana X
Oxana X
Oxana X
Continuación Tabla 5.19.
Tabla 5.20. Resultados del Reconocimiento para una Mujer Adulta
Mujer Adulta Id. Oxana Id. Fernando Id. Alexis No identificado
Alexis X
Alexis X
Alexis X
Alexis X
Alexis X
Alexis X
Fernando X
Fernando X
Fernando X
Fernando X
Fernando X
Fernando X
Oxana X
Oxana X
Oxana X
Oxana X
Oxana X
Oxana X
Tabla 5.21. Resultados del Reconocimiento para una Niña
Niña Id. Oxana Id. Fernando Id. Alexis No identificado
Alexis X
Alexis X
Alexis X
Alexis X
Alexis X
Alexis X
Fernando X
Fernando X
Fernando X
Fernando X
Fernando X
Fernando X
CAPITULO 5: Pruebas y Resultados
59
Oxana X
Oxana X
Oxana X
Oxana X
Oxana X
Oxana X
Continuación Tabla 5.21.
5.4. Solución del problema
Se propone implementar este sistema de seguridad por reconocimiento de voz en áreas
con niveles de ruido no mayores a 70dB, para que el sistema de reconocimiento de voz
funcione de modo que exista menor probabilidad de error, esto incrementaría la
seguridad.
El sistema será seguro porque los coeficientes que se utilizaran en el software no podrán
ser alterados por ninguna persona, debido a que cada uno contiene sus propios
coeficientes inalterables en una base de datos establecida por el diseñador en la captura
de voz.
No se podrán agregar usuarios nuevos al instante, tendrán que ser agregados
previamente por el proceso de adquisición y entrenamiento por lo cual es un proceso
tardado y con acreditación del dueño, esto permite mayor confiabilidad al sistema.
CAPITULO 5: Pruebas y Resultados
60
5.5. Estudio Socio Económico
La realización de un estudio económico adecuado sobre el tamaño y esfuerzo requerido
es una de las características fundamentales de un proyecto exitoso.
El estudio está asociado con el esfuerzo, costo y el tiempo de las actividades
identificadas del proyecto.
El objetivo del estudio del proyecto es reducir los costos e incrementar los niveles de
servicio y de calidad.
Se realizó una estimación orientada a la función del software. Evaluando los factores de
ajuste de complejidad de 0 a 5 donde:
 0.- Sin influencia
 1.- Incidental
 2.- Moderado
 3.- Medio
 4.- Significativo
 5.- Esencial
Se contestaron las siguientes preguntas respondiendo con el grado de influencia que se
tiene en el proyecto, esto para sacar una valoración de lo que contiene y realiza el
software:
1.- ¿Requiere el sistema copias de seguridad fiables? R= 3
2.- ¿Se requiere comunicaciones de datos? R= 4
3.- ¿Existen funciones de procesamiento distribuido? R= 4
4.- ¿Es crítico el rendimiento? R= 3
5.- ¿Sera ejecutado el sistema en un entorno operativo existente y utilizado? R=5
6.- ¿Se requiere entrada de datos interactiva? R= 5
7.- ¿Requiere la entrada interactiva, que las traslaciones de entrada se hagan sobre
múltiples pantallas o varias operaciones? R= 0
8.- ¿Se utilizan los archivos maestros de forma interactiva? R= 3
9.- ¿Son complejas las entradas, las salidas, los archivos o las peticiones? R=4
10.- ¿Es complejo el procesamiento interno? R= 5
11.- ¿Se ha diseñado el código para ser reutilizable? R= 4
12.- ¿Están incluidas en el diseño la conversión y la instalación? R= 5
CAPITULO 5: Pruebas y Resultados
61
13.- ¿Se ha diseñado el sistema para soportar múltiple instalaciones en diferentes
organizaciones? R= 4
14.- ¿Se ha diseñado la aplicación para facilitar los cambios y ser fácilmente utilizada por
el usuario? R= 5
Suma total de la valoración: 54
Sacamos los Parámetros de medida de pendiendo del factor de peso para evaluar el
nivel de complejidad del software
Figura 5.1. Análisis de Factor Peso (Plantilla)
Nota: se multiplica la cuenta con el valor elegido ya sea simple medio o complejo (en
este caso los números sombreados).
Tabla 5.22. Análisis de PF (Factor de Peso)
Parámetro de medida cuenta simple medio complejo
Número de entradas usuario: 3 X 6 = 18
Número de salidas de usuario: 3 X 5 = 15
Numero peticiones al usuario: 1 X 6 = 6
Numero de archivos: 45 X 10 = 450
Numero interfaces externos: 1 X 10 = 10
Cuenta total 499
CAPITULO 5: Pruebas y ResultadosCAPITULO 5: Pruebas y Resultados
62
Evaluando la influencia de factores globales que afecten la aplicación:
PF= cuenta total x (0.65+0.01 x (total de la valoración))
PF= 499 x (0.65+ 0.01 x (54))=593. 81
PF estimado: 593. 81
Datos históricos:
Productividad media de la organización en proyectos similares: 100 PF/per
Tarifa laboral: 300 $ /mes
Coste por PF: 3 $
Costo estimado del proyecto:
Coste total proyecto: PF estimado X coste por PF
Esfuerzo estimado: PF estimado/ (Productividad media de la organización en
proyectos)
Tabla 5.23. Análisis de Costos
Esfuerzo estimado: 5.9 personas-mes
Coste total proyecto: 1,781.43 $ (del puro software, no incluye el mantenimiento ni la
instalación)
Tabla 5.24. Análisis Total de Costo
Costo
Mantenimiento básico del software 1200
Interfaz física usuario máquina. 4000 -11000
Tarjeta de adquisición de datos 2500
Diseño del área a colocar el reconocedor de
voz y construcción del mismo
Depende del área, lugar y la
complejidad del diseño y
construcción
Base de dato (por persona) 500
Mantenimiento físico (básico). 1000
Total aproximado:
$ 20,000
La estimación de costo con respecto a la instalación y diseño donde el software será
implementado, incrementaría o disminuirá dependiendo del lugar y la complejidad del
diseño, además de consultar el equipo y recursos con el que cuenta el cliente.
Nota: El mantenimiento tanto del software como del físico, dependerá de igual medida a
lo que el sistema necesite para estar en óptimas condiciones.
CAPITULO 5: Pruebas y Resultados
63
CONCLUSIONES
La seguridad de un hogar es la principal preocupación como habitante de la Cd. de
México, Un sistema de seguridad por reconocimiento de voz puede no solo aumentarla
si no también tener la tranquilidad de saber quién acceda al hogar.
En un sistema de reconocimiento de voz, la toma de decisión es difícil debido a factores
como la similitud de las palabras, el nivel de ruido del lugar donde se realizan las
grabaciones y los estados de ánimo del usuario.
El sistema de seguridad por voz será más confiable ya que pasara por diversos métodos
siendo el más importante la predicción lineal, obtención de parámetros llamados
coeficientes LPC/Cepstrum y condiciones implementadas por el programador,
disminuyendo la probabilidad de error al reconocer al usuario; Aunque un aspecto
importante a considerar y que el programador no puede corregir es si el usuario dice la
palabra en un tono de extrema alegría o extrema tristeza ya que esto modifica las
características de su voz afectando los coeficientes LPC como a su vez lo haría si el
usuario está en estado alcohólico o inconveniente.
Para corregir este problema se propuso tener más bases de datos del mismo usuario
pero en diferentes estados de ánimo, así el usuario antes de identificarse podría indicar
su estado de ánimo y el programa relacionaría su grabación en el momento, con la base
de datos asignada para ese usuario en ese estado de ánimo (Comparación de
coeficientes LPC en diferentes estados de ánimo), esto podría facilitar en gran medida el
acceso a otros usuarios es por esa razón por la cual que no se implementó esta
solución, y se optó por que el usuario grabara de forma correcta y como lo realizo en las
grabaciones cuando se diseñó su base de datos.
La seguridad por voz irá en aumento al paso de las diferentes etapas del sistema como
filtrado, normalización, obtención de parámetros y pitch, tecnologías que vallan
mejorando la confiabilidad y velocidad en la toma de decisión. Estas a su vez ayudaran
en la implementación de sistemas de seguridad eficientes.
La opción de usar MATLAB como herramienta principal permitió realizar una interfaz
para un sistema de reconocimiento de voz de uso fácil, eficaz y con capacidad de
ejecutar operaciones de procesamiento de señales llamada GUI.
El sistema de Reconocimiento de voz ampliará en gran medida la seguridad del hogar y
será la base de futuras implementaciones de seguridad total automatizada para el hogar,
incluyendo control de ventanas, luces, puertas, plomería, instalaciones de gas, etc.
Haciendo de este un proyecto base de Domótica.
Se aprendió que para realizar un reconocedor de voz, se necesitan muchas partes tanto
software como hardware que realicen cada una de sus funciones de manera adecuada,
siendo el software el de mayor importancia, gracias a este se pueden programar los
algoritmos para poder reconocer al usuario, pero el hardware también tiene su
CONCLUSIONES
64
importancia debido a que al usar un micrófono mejor se puede obtener una mejor calidad
en la señal adquirida y por lo tanto dejar que el software se encargue sólo del
procesamiento de la señal y no tenga que desperdiciar tiempo en limpiarla, filtrarla y
normalizarla.
Se tuvieron algunos problemas durante la realización del proyecto, los cuales fueron los
siguientes:
El problema relacionado con la comparación entre la señal de voz adquirida y la base de
datos de cada usuario (Coeficientes LPC), debido a que se tenía un alto procesamiento
de datos que se tuvo que limitar para el rápido funcionamiento de este.
La solución para este problema fue colocar contadores que indicaran el número de
coeficientes LPC que se parecieron a los coeficientes LPC grabados en la Base de datos
de cada usuario y el número más cercano al máximo de Coeficientes LPC será el
usuario identificado, para el software es más fácil comparar un número contra otro, que
un vector de miles de números contra otro vector de miles de números, no se
comprometió la integridad o seguridad del reconocimiento sólo se agilizó el
procesamiento del software para que al usuario le pareciera más agradable y fluido.
Otro problema que se encontró fue que al aumentar la cantidad de usuarios el programa
sería más extenso y la similitud entre cada usuario y sus coeficientes LPC podría
converger en un punto, causando esto fallas en el sistema.
Este problema se pudo solucionar programando los límites de relación de cada contador
en relación con los demás haciéndolos más estrictos para que el software no pueda dar
acceso a algún usuario si no lo ha reconocido de manera adecuada.
De esta manera se pudieron solucionar los problemas que surgieron durante la
realización del proyecto, los cuales funcionaron correctamente y no han presentado
fallas o alteraciones que afecten el desempeño del proyecto.
CONCLUSIONES
65
BIBLIOGRAFIA Y/O REFERENCIAS
[1] Franco Galván, Jorge Andrés. “Reconocimiento de Voz para Niños con Discapacidad
en el Habla”, Universidad de las Américas departamento de Ingeniería Electrónica 2010,
Puebla, México.
[2] Cruz Beltrán, Luis. A. y Acevedo Mosqueda, Marco. A. “Aplicación del
Reconocimiento de Voz de un Hablante Mediante una Red Neuronal Artificial Back
propagation y Coeficientes LPC sobre un Canal Telefónico”
[3]Schroeder, Manfred R..“ComputerSpeechRecognition, Compression andSinthesis”.
[4]Kai-Fu, Lee.“AutomaticSpeechRecognition”.
[5]Sreiner, Erich.“Matemáticas para las ciencias aplicadas”. Editorial Reverté 2009.
[6] Pereira Rama, Antonio. “Procesamiento Digital de la Señal Sonora Utilizando Matlab”.
[7] Romero Bauset, José Vicente; Dolores Rosello, Maria y Zalaya Báez, Ricardo.
“Fundamentos Matemáticos para la Ingeniería con MATLAB”, Universidad Politécnica de
Valencia, España.
[8] “InsideSpeechRecognition”, Consulta: http://www.tldp.org/HOWTO/Speech-
Recognition-HOWTO/inside.html , Fecha de consulta: 25 de Abril del 2012.
[9]Harrington, Jonathan y Cassidy, Steve.“Techniques in Speech Acoustics”,
KluwerAcademicPublishers
[10] Barragán Guerrero, Diego Orlando. “Manual de interfaz gráfica de usuario en
MATLAB”, Universidad Técnica Particular de Loja. Escuela de Electrónica y
Telecomunicaciones.
[11] Faúndez Zanuy, Marcos. “Tratamiento Digital de Voz e Imagen con Aplicación a la
Multimedia”, Marcombo.
[12] Gómez, J.C. “Apuntes: Medidas de distancia y Reconocimiento de Vocales”,
Consulta: http://www.eie.fceia.unr.edu.ar/%7Eprodivoz/apuntes_index/pdf/, Fecha de
consulta: 30 de Junio del 2012
[13] “VOICEBOX: Librería de MATLAB para el reconocimiento del habla”, Consulta:
http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html. , Fecha de consulta: 15 de
Abril del 2012
[14]Rabiner, Johanson. “Digital Processing Of Speech Signals”.
[15] Help (ayuda del explorador), “MATLAB 2012”
BIBLIOGRAFIA Y/O REFERENCIAS
66
ANEXOS
Anexo 1. Programa Completo
% INICIO DE LA GUI (NO EDITAR)
functionvarargout = recvoc(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @recvoc_OpeningFcn, ...
'gui_OutputFcn', @recvoc_OutputFcn, ...
'gui_LayoutFcn', [] ,...
'gui_Callback', []);
ifnargin&&ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
ifnargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% INICIALIZA LA GUI
functionrecvoc_OpeningFcn(hObject, eventdata, handles, varargin)
ID=0;
saveID.mat;
handles.output = hObject;
guidata(hObject, handles);
% SALIDAS DE LA GUI
functionvarargout = recvoc_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
% BOTON GRABAR
functiongrabar_Callback(hObject, eventdata, handles)
Fs = 22050; % Frecuencia de Muestreo
s = wavrecord(2*Fs, Fs, 1);
wavwrite(s,Fs,16,'Prueba.wav') % Guarda .wav señal grabada
lon = length(s); % Longitud del vector
d = max(abs(s)); % Obtiene el valor más Grande
s = s/d; % Normaliza la señal
prom = sum(s.*s)/lon; % Promedio señal entera
ANEXOS
67
umbral = 0.02; % 2% de la energía promedio
y = [0];
for i = 1:400:lon-400 % Ventaneo cada 10ms
seg = s(i:i+399); % Segmentos
e = sum(seg.*seg)/400; % Promedio de cada segmento
if( e> umbral*prom) % Si el promedio energético es mayor que la
señal completa por el valor umbral
y = [y;seg(1:end)]; % Almacena en (y) sino es eliminado como
espacio en blanco
end;
end;
% Guarda .wav señal normalizada y sin ruido
wavwrite(y,Fs,16,'Limpia.wav')
plot(y) % Grafica señal Normalizada
sound(y,22050) % Reproduce Señal Normalizada
title('Grafica de Voz','Fontname','Trebuchet
MS','Fontangle','Italic','Fontweight','Bold','Fontsize',20,'color',[1 1 1])
xlabel('Tiempo','Fontname','Trebuchet
MS','Fontangle','Italic','Fontweight','Bold','Fontsize',15,'color',[1 1 1])
ylabel('Nivel de
voz','Fontname','Dotum','Fontangle','Italic','Fontweight','Bold','Fontsize',15,'color',[1 1 1])
msgbox('Grabacion terminada');
% BOTON IDENTIFICAR
functionIdentificar_Callback(hObject, eventdata, handles)
% Lee el archivo De Promedio Fernando
[k0,Fs,bits] = wavread('FProm.wav');
% Lee el archivo De Promedio Alexis
[k1,Fs,bits] = wavread('AProm.wav');
% Lee el archivo De Promedio Oxana
[k2,Fs,bits] = wavread('EProm.wav');
% Lee el archivo que se grabo en la GUI
[kx,Fs,bits] = wavread('Limpia.wav');
loadID.mat;
% Obtiene el numero de Coeficientes
num = (Fs/1024)+3;
% Obtiene los coeficientes del filtro LPC de Fer
W0 = lpc(k0,num);
% Obtiene los coeficientes del filtro LPC de Alexis
W1 = lpc(k1,num);
% Obtiene los coeficientes del filtro LPC de Oxana
W2 = lpc(k2,num);
% Obtiene los coeficientes del filtro LPC de La Grabación de GUI
Wx = lpc(kx,num);
ANEXOS
68
% Vector que contendrá las distancias entre Fer y la grabación
d0=0;
for z=1:25
% Obtiene la distancia cuadrática media
d0(z)=sqrt((W0(z)-Wx(z))*(W0(z)-Wx(z)));
if d0(z)<= 0.15
% Coloca un 1 en el vector si es próximo a Fer
d0(z)=1;
% Coloca un 0 en el vector si es lejano a Fer
else d0(z)=0;
end
end
% Vector que contendrá las distancias entre Alexis y la grabación
d1=0;
for z=1:25
% Obtiene la distancia cuadrática media
d1(z)=sqrt((W1(z)-Wx(z))*(W1(z)-Wx(z)));
if d1(z)<= 0.15
% Coloca un 1 en el vector si es próximo a Alexis
d1(z)=1;
% Coloca un 0 en el vector si es lejano a Alexis
else d1(z)=0;
end
end
% Vector que contendrá las distancias entre Oxana y la grabación
d2=0;
for z=1:25
% Obtiene la distancia cuadrática media
d2(z)=sqrt((W2(z)-Wx(z))*(W2(z)-Wx(z)));
if d2(z)<= 0.15
% Coloca un 1 en el vector si es próximo a Oxana
d2(z)=1;
% Coloca un 0 en el vector si es lejano a Oxana
else d2(z)=0;
end
end
% Contador que almacena el numero de coeficientes que se parecen
cont0=0;
for i = 1:25
% Suma todos los valores de la cadena
cont0 = d0(i)+cont0;
end
cont0
cont1=0;
for j = 1:25
cont1 = d1(j)+cont1;
end
ANEXOS
Sistema de-seguridad-por-reconocimiento-de-voz-tesis-de-ingenieria-esime
Sistema de-seguridad-por-reconocimiento-de-voz-tesis-de-ingenieria-esime
Sistema de-seguridad-por-reconocimiento-de-voz-tesis-de-ingenieria-esime
Sistema de-seguridad-por-reconocimiento-de-voz-tesis-de-ingenieria-esime
Sistema de-seguridad-por-reconocimiento-de-voz-tesis-de-ingenieria-esime
Sistema de-seguridad-por-reconocimiento-de-voz-tesis-de-ingenieria-esime

Más contenido relacionado

La actualidad más candente

Clase 03 ecuaciones diferenciales ordinarias
Clase 03 ecuaciones diferenciales ordinariasClase 03 ecuaciones diferenciales ordinarias
Clase 03 ecuaciones diferenciales ordinariasJimena Rodriguez
 
Capítulo 3 variograma2014
Capítulo 3 variograma2014Capítulo 3 variograma2014
Capítulo 3 variograma2014Krlitoz Vs
 
Control digital: Teoría y practica parte 1
Control digital: Teoría y practica parte 1Control digital: Teoría y practica parte 1
Control digital: Teoría y practica parte 1SANTIAGO PABLO ALBERTO
 
Tecnicas de modulacion angular desviacion de face , el indice de modulacion y...
Tecnicas de modulacion angular desviacion de face , el indice de modulacion y...Tecnicas de modulacion angular desviacion de face , el indice de modulacion y...
Tecnicas de modulacion angular desviacion de face , el indice de modulacion y...Yovani Paraguay Marcas
 
I SEMANA SERVICIOS AUXILIARES MINEROS.pdf
I SEMANA SERVICIOS AUXILIARES MINEROS.pdfI SEMANA SERVICIOS AUXILIARES MINEROS.pdf
I SEMANA SERVICIOS AUXILIARES MINEROS.pdfIngritCercado
 
Seccion 3.1 Transformada Z bilateral
Seccion 3.1 Transformada Z bilateralSeccion 3.1 Transformada Z bilateral
Seccion 3.1 Transformada Z bilateralJuan Palacios
 
Criterio de estabilidad en los s.de control automatico
Criterio de estabilidad en los s.de control automaticoCriterio de estabilidad en los s.de control automatico
Criterio de estabilidad en los s.de control automaticoCarlos Enrrique Rivera Moran
 
Segmentación por umbralización método de otsu
Segmentación por umbralización   método de otsuSegmentación por umbralización   método de otsu
Segmentación por umbralización método de otsuJorge Antonio Parra Serquen
 
manual-de-geotecnia-para-registro-de-sondajes
 manual-de-geotecnia-para-registro-de-sondajes manual-de-geotecnia-para-registro-de-sondajes
manual-de-geotecnia-para-registro-de-sondajesAdnilson Silva
 
5. perforacion y voladura
5. perforacion y voladura5. perforacion y voladura
5. perforacion y voladuraRoGer Bautista
 
6 5tiposmascomunesdeantenas-110331232601-phpapp01
6 5tiposmascomunesdeantenas-110331232601-phpapp016 5tiposmascomunesdeantenas-110331232601-phpapp01
6 5tiposmascomunesdeantenas-110331232601-phpapp01jose sevilla
 
Introducción a la Teledetección
Introducción a la TeledetecciónIntroducción a la Teledetección
Introducción a la TeledetecciónAndrea Drozd
 
Lecture 7 analisis radioprop p5
Lecture 7 analisis radioprop   p5Lecture 7 analisis radioprop   p5
Lecture 7 analisis radioprop p5nica2009
 
Lecture 9 analisis radioprop p6
Lecture 9 analisis radioprop   p6Lecture 9 analisis radioprop   p6
Lecture 9 analisis radioprop p6nica2009
 
6 auditoria de reservas minerales - jp. gonzalez - geo mine
6   auditoria de reservas minerales - jp. gonzalez - geo mine6   auditoria de reservas minerales - jp. gonzalez - geo mine
6 auditoria de reservas minerales - jp. gonzalez - geo mineElisbanCruzCruz
 
Metodos numéricos (euler, euler modificado, rk)
Metodos numéricos (euler, euler modificado, rk)Metodos numéricos (euler, euler modificado, rk)
Metodos numéricos (euler, euler modificado, rk)Beat Winehouse
 
Tema 5: Modelos de propagación en interiores
Tema 5: Modelos de propagación en interioresTema 5: Modelos de propagación en interiores
Tema 5: Modelos de propagación en interioresFrancisco Sandoval
 

La actualidad más candente (20)

Clase 03 ecuaciones diferenciales ordinarias
Clase 03 ecuaciones diferenciales ordinariasClase 03 ecuaciones diferenciales ordinarias
Clase 03 ecuaciones diferenciales ordinarias
 
Capítulo 3 variograma2014
Capítulo 3 variograma2014Capítulo 3 variograma2014
Capítulo 3 variograma2014
 
Control digital: Teoría y practica parte 1
Control digital: Teoría y practica parte 1Control digital: Teoría y practica parte 1
Control digital: Teoría y practica parte 1
 
Tecnicas de modulacion angular desviacion de face , el indice de modulacion y...
Tecnicas de modulacion angular desviacion de face , el indice de modulacion y...Tecnicas de modulacion angular desviacion de face , el indice de modulacion y...
Tecnicas de modulacion angular desviacion de face , el indice de modulacion y...
 
I SEMANA SERVICIOS AUXILIARES MINEROS.pdf
I SEMANA SERVICIOS AUXILIARES MINEROS.pdfI SEMANA SERVICIOS AUXILIARES MINEROS.pdf
I SEMANA SERVICIOS AUXILIARES MINEROS.pdf
 
Seccion 3.1 Transformada Z bilateral
Seccion 3.1 Transformada Z bilateralSeccion 3.1 Transformada Z bilateral
Seccion 3.1 Transformada Z bilateral
 
Criterio de estabilidad en los s.de control automatico
Criterio de estabilidad en los s.de control automaticoCriterio de estabilidad en los s.de control automatico
Criterio de estabilidad en los s.de control automatico
 
Segmentación por umbralización método de otsu
Segmentación por umbralización   método de otsuSegmentación por umbralización   método de otsu
Segmentación por umbralización método de otsu
 
Transformada de laplace
Transformada de laplaceTransformada de laplace
Transformada de laplace
 
manual-de-geotecnia-para-registro-de-sondajes
 manual-de-geotecnia-para-registro-de-sondajes manual-de-geotecnia-para-registro-de-sondajes
manual-de-geotecnia-para-registro-de-sondajes
 
5. perforacion y voladura
5. perforacion y voladura5. perforacion y voladura
5. perforacion y voladura
 
6 5tiposmascomunesdeantenas-110331232601-phpapp01
6 5tiposmascomunesdeantenas-110331232601-phpapp016 5tiposmascomunesdeantenas-110331232601-phpapp01
6 5tiposmascomunesdeantenas-110331232601-phpapp01
 
Introducción a la Teledetección
Introducción a la TeledetecciónIntroducción a la Teledetección
Introducción a la Teledetección
 
Lecture 7 analisis radioprop p5
Lecture 7 analisis radioprop   p5Lecture 7 analisis radioprop   p5
Lecture 7 analisis radioprop p5
 
Lecture 9 analisis radioprop p6
Lecture 9 analisis radioprop   p6Lecture 9 analisis radioprop   p6
Lecture 9 analisis radioprop p6
 
6 auditoria de reservas minerales - jp. gonzalez - geo mine
6   auditoria de reservas minerales - jp. gonzalez - geo mine6   auditoria de reservas minerales - jp. gonzalez - geo mine
6 auditoria de reservas minerales - jp. gonzalez - geo mine
 
Metodos numéricos (euler, euler modificado, rk)
Metodos numéricos (euler, euler modificado, rk)Metodos numéricos (euler, euler modificado, rk)
Metodos numéricos (euler, euler modificado, rk)
 
Euler 1
Euler 1Euler 1
Euler 1
 
Codigos bloque
 Codigos bloque Codigos bloque
Codigos bloque
 
Tema 5: Modelos de propagación en interiores
Tema 5: Modelos de propagación en interioresTema 5: Modelos de propagación en interiores
Tema 5: Modelos de propagación en interiores
 

Similar a Sistema de-seguridad-por-reconocimiento-de-voz-tesis-de-ingenieria-esime

Pfc brais memoriacompleta_v_digital_indices
Pfc brais memoriacompleta_v_digital_indicesPfc brais memoriacompleta_v_digital_indices
Pfc brais memoriacompleta_v_digital_indicesBrais Martinez Silvosa
 
Articulo-A2-UNIDAD1.pdf
Articulo-A2-UNIDAD1.pdfArticulo-A2-UNIDAD1.pdf
Articulo-A2-UNIDAD1.pdfRohanny21
 
Procesamiento de imagenes python con raspberri pi 2
Procesamiento de imagenes python con raspberri pi 2Procesamiento de imagenes python con raspberri pi 2
Procesamiento de imagenes python con raspberri pi 2Franklin J.
 
Tesis sobre desinfectante
Tesis sobre desinfectanteTesis sobre desinfectante
Tesis sobre desinfectanteHome Care C.A
 
Tecnología actual de tv parejo carrascal
Tecnología actual de tv parejo carrascalTecnología actual de tv parejo carrascal
Tecnología actual de tv parejo carrascalMejoresBrujas_123
 
Pfc prototipo electrónico para la valoración de amplificadores operacionales
Pfc prototipo electrónico para la valoración de amplificadores operacionalesPfc prototipo electrónico para la valoración de amplificadores operacionales
Pfc prototipo electrónico para la valoración de amplificadores operacionalesguofee
 
Pfc prototipo electrónico para la valoración de amplificadores operacionales
Pfc prototipo electrónico para la valoración de amplificadores operacionalesPfc prototipo electrónico para la valoración de amplificadores operacionales
Pfc prototipo electrónico para la valoración de amplificadores operacionalesguofee
 
Formato 001 guia_de_actividades_de_aprendizaje
Formato 001 guia_de_actividades_de_aprendizajeFormato 001 guia_de_actividades_de_aprendizaje
Formato 001 guia_de_actividades_de_aprendizajeewinmauricio
 
Guia 2 -_informatica_educativa[1]
Guia 2 -_informatica_educativa[1]Guia 2 -_informatica_educativa[1]
Guia 2 -_informatica_educativa[1]Maryenki
 
Sonorizacion de un cuento
Sonorizacion de un cuentoSonorizacion de un cuento
Sonorizacion de un cuentoFernando Guaza
 

Similar a Sistema de-seguridad-por-reconocimiento-de-voz-tesis-de-ingenieria-esime (20)

matlab
matlab matlab
matlab
 
Pfc brais memoriacompleta_v_digital_indices
Pfc brais memoriacompleta_v_digital_indicesPfc brais memoriacompleta_v_digital_indices
Pfc brais memoriacompleta_v_digital_indices
 
Digitalización de audio (practica)
Digitalización de audio (practica)Digitalización de audio (practica)
Digitalización de audio (practica)
 
Laboratorio de telemetría
Laboratorio de telemetríaLaboratorio de telemetría
Laboratorio de telemetría
 
Articulo-A2-UNIDAD1.pdf
Articulo-A2-UNIDAD1.pdfArticulo-A2-UNIDAD1.pdf
Articulo-A2-UNIDAD1.pdf
 
Procesamiento de imagenes python con raspberri pi 2
Procesamiento de imagenes python con raspberri pi 2Procesamiento de imagenes python con raspberri pi 2
Procesamiento de imagenes python con raspberri pi 2
 
presentacion.pptx
presentacion.pptxpresentacion.pptx
presentacion.pptx
 
UTP TESIS
UTP TESISUTP TESIS
UTP TESIS
 
220501091
220501091220501091
220501091
 
Tesis sobre desinfectante
Tesis sobre desinfectanteTesis sobre desinfectante
Tesis sobre desinfectante
 
Tecnología Actual
Tecnología ActualTecnología Actual
Tecnología Actual
 
Tecnología actual de tv parejo carrascal
Tecnología actual de tv parejo carrascalTecnología actual de tv parejo carrascal
Tecnología actual de tv parejo carrascal
 
Señales con arduino y DAC
Señales con arduino y DACSeñales con arduino y DAC
Señales con arduino y DAC
 
Pfc prototipo electrónico para la valoración de amplificadores operacionales
Pfc prototipo electrónico para la valoración de amplificadores operacionalesPfc prototipo electrónico para la valoración de amplificadores operacionales
Pfc prototipo electrónico para la valoración de amplificadores operacionales
 
Pfc prototipo electrónico para la valoración de amplificadores operacionales
Pfc prototipo electrónico para la valoración de amplificadores operacionalesPfc prototipo electrónico para la valoración de amplificadores operacionales
Pfc prototipo electrónico para la valoración de amplificadores operacionales
 
Guia pruebas de color
Guia pruebas de colorGuia pruebas de color
Guia pruebas de color
 
Formato 001 guia_de_actividades_de_aprendizaje
Formato 001 guia_de_actividades_de_aprendizajeFormato 001 guia_de_actividades_de_aprendizaje
Formato 001 guia_de_actividades_de_aprendizaje
 
Guia 2 -_informatica_educativa[1]
Guia 2 -_informatica_educativa[1]Guia 2 -_informatica_educativa[1]
Guia 2 -_informatica_educativa[1]
 
Sonorizacion de un cuento
Sonorizacion de un cuentoSonorizacion de un cuento
Sonorizacion de un cuento
 
Presentación smt
Presentación smtPresentación smt
Presentación smt
 

Último

PRESENTACION DE CLASE. Factor de potencia
PRESENTACION DE CLASE. Factor de potenciaPRESENTACION DE CLASE. Factor de potencia
PRESENTACION DE CLASE. Factor de potenciazacariasd49
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfMirthaFernandez12
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxEtse9
 
Cadenas de Markov investigación de operaciones
Cadenas de Markov investigación de operacionesCadenas de Markov investigación de operaciones
Cadenas de Markov investigación de operacionesal21510263
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIAMayraOchoa35
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfAdelaHerrera9
 
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdfManual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdfSandXmovex
 
Exposicion. del documentos de YPFB corporación
Exposicion. del documentos de YPFB corporaciónExposicion. del documentos de YPFB corporación
Exposicion. del documentos de YPFB corporaciónjas021085
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfReneBellido1
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUMarcosAlvarezSalinas
 

Último (20)

PRESENTACION DE CLASE. Factor de potencia
PRESENTACION DE CLASE. Factor de potenciaPRESENTACION DE CLASE. Factor de potencia
PRESENTACION DE CLASE. Factor de potencia
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptx
 
Cadenas de Markov investigación de operaciones
Cadenas de Markov investigación de operacionesCadenas de Markov investigación de operaciones
Cadenas de Markov investigación de operaciones
 
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIACLASE 2 MUROS CARAVISTA EN CONCRETO  Y UNIDAD DE ALBAÑILERIA
CLASE 2 MUROS CARAVISTA EN CONCRETO Y UNIDAD DE ALBAÑILERIA
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdfLEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
LEYES DE EXPONENTES SEMANA 1 CESAR VALLEJO.pdf
 
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdfManual de Usuario Estacion total Sokkia SERIE SET10K.pdf
Manual de Usuario Estacion total Sokkia SERIE SET10K.pdf
 
Exposicion. del documentos de YPFB corporación
Exposicion. del documentos de YPFB corporaciónExposicion. del documentos de YPFB corporación
Exposicion. del documentos de YPFB corporación
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
 

Sistema de-seguridad-por-reconocimiento-de-voz-tesis-de-ingenieria-esime

  • 1. Escuela Superior de Ingeniería Mecánica y Eléctrica Ingeniería en Comunicaciones y Electrónica “Sistema de Seguridad Por Reconocimiento de Voz” TESIS Que para Obtener el Título de: Ingeniero en Comunicaciones y Electrónica PRESENTAN Pérez Badillo Eyra Oxana Poceros Martínez Fernando Villalobos Ponce José Alexis ASESORES M. en C. Jiménez Hernández Mario Ing. Patricia Lorena Ramírez Rangel INSTITUTO POLITECNICO NACIONAL México, D.F., Septiembre 2013
  • 2. a
  • 3. I RESUMEN El presente trabajo de tesis se basa en un sistema de reconocimiento de voz que permite que el usuario grabe una palabra por medio de un micrófono y ésta sea reconocida en la base de datos existente en ese momento. Este tipo de proyectos han sido aceptados usando metodologías desde la comparación de plantillas hasta análisis de espectros en hogares desde que se tuvo la necesidad de mejorar la seguridad del hogar. El sistema en sí posee un entorno gráfico en la computadora por medio del software MATLAB llamado GUI, que proporciona las selecciones de grabación, donde la señal de voz es ingresada a la computadora, grabada y es procesada por los algoritmos del programa que modifican la señal llamado Predicción Lineal, obteniendo los parámetros LPC significativos de la señal de voz, para luego ser almacenados en la computadora. La selección de reconocimiento permite que la palabra sea comparada con la base de datos almacenada en la computadora en un proceso llamado comparación de coeficientes LPC, dicha base de datos ya fue procesada digitalmente por el programa, esta selección reconoce la palabra que fue grabada por el usuario al momento de querer ingresar a su hogar. El entorno gráfico proporciona, por otra parte, un análisis gráfico de las palabras grabadas y reconocidas. Como el Sistema de Reconocimiento de Voz es un sistema de procesamiento digital de señales de voz, el análisis gráfico en el reconocimiento es un análisis del espectro de frecuencias de la señal de voz. Para poder comprobar que el sistema fuera confiable se hicieron 2 tipos de pruebas; Una entre los usuarios del hogar tratando de acceder uno con el usuario del otro y otra donde personas ajenas a las almacenadas en la Base de Datos trataran de acceder. Se pudo comprobar que el sistema de reconocimiento por voz es confiable haciendo uso de diferentes métodos, los cuales limiten la posibilidad de error de identificación ya sea entre usuarios almacenados o no, la dificultad más grande de este proyecto se debió a que si el usuario cambia su tono de voz el sistema podría no reconocerlo, esto se debe a que si el usuario dice su contraseña en estado de ebriedad, de tristeza o felicidad su voz cambia y por consiguiente tambien los parámetros LPC. RESUMEN
  • 4. II ÍNDICE Pág. Resumen I Índice II Índice de Figuras IV Índice de Tablas V Objetivo General 1 Objetivos Específicos 1 Planteamiento del problema 1 Hipótesis 2 Justificación 2 Capítulo 1. Conceptos importantes en los Reconocedores de Voz 3 Introducción 3 1.1. Historia del reconocedor de voz 3 1.2. Orden Cronológico de los Reconocedores de Voz 4 1.3. Características de la señal de voz 5 1.3.1. Articulación 6 1.3.2. Señal Acústica 8 1.3.3. Percepción Auditiva 10 1.4. Funcionamiento de un sistema de reconocimiento de voz 11 Capítulo 2. Métodos y Etapas para el Reconocimiento de Voz 12 2.1. Digitalización de la señal de voz 12 2.1.1. Codificación de la señal de voz 12 2.1.2. Muestreo y Cuantizacion 13 2.2. Métodos de Reconocimiento de Voz 17 2.2.1. Aproximación en Base a Plantillas 18 2.2.2. Predicción Lineal 20 2.2.3. Análisis Cepstral 21 2.3. Diagrama de Flujo del Reconocedor de Voz 21 2.4. Etapas del Reconocimiento de Voz 22 2.4.1. Generación de la señal Acústica 22 2.4.2. Conversión A/D o Adquisición 22 2.4.3. Pre-procesamiento 24 2.4.4. Eliminación de Ruido y Normalización 24 2.4.5. Filtro Pre-énfasis 25 2.4.6. Segmentación 25 2.4.7. Extracción de las Características 26 INDICE
  • 5. III 2.4.8. Calculo de la Distancia 26 2.4.9. Toma de Decisión 27 Capítulo 3. Planteamiento del problema 28 Capítulo 4. Desarrollo de un Sistema de Seguridad por Reconocimiento de Voz 31 4.1. Metodología 31 4.2. Micrófono 32 4.3. Entrenamiento y Base de Datos 32 4.3.1. Adquisición 32 4.3.2. Eliminación de Silencios y Normalización 33 4.3.3. Promedio 33 4.3.4. Base de Datos 34 4.4. Desarrollo 34 4.4.1. Adquisición 34 4.4.2. Eliminación de Silencios y Normalización 35 4.4.3. Parametrización 36 4.4.4. Reconocimiento de Habla (Toma de decisión) 38 4.4.5. Selección de la Acción a Realizar 40 4.4.6. Interfaz Grafica 40 4.4.7. Programa Completo 46 4.5. Implementación 46 Capítulo 5. Pruebas y Resultados 48 5.1. Pruebas Generales 49 5.1.1. Comparación de Contadores con usuario Alexis 49 5.1.2. Comparación de Contadores con usuario Fernando 51 5.1.3. Comparación de Contadores con usuario Oxana 53 5.1.4. Uso de los promedios 54 5.2. Pruebas de Reconocimiento 55 5.3. Pruebas Con intrusos o personas no Identificadas 57 5.4. Solución del Problema 59 5.5. Estudio Socio Económico 60 Conclusiones 63 Bibliografía y/o Referencias 65 Anexos 66 Anexo1 Programa Completo 66 Anexo 2 Diagrama de Conexión 72 Glosario 73 INDICE
  • 6. IV ÍNDICE DE FIGURAS Figura 1.1. Proceso de Comunicación del Habla 6 Figura 1.2. Órganos del cuerpo que intervienen en el aparato fonador 7 Figura 1.3. Diagrama a Bloques del Proceso General Del Reconocimiento de voz 11 Figura 2.1. Diferentes tipos de Transductores Eléctrico – Acústicos 13 Figura 2.2. Señales Senoidales Muestreadas a diferentes valores 14 Figura 2.3. Señal Cuantizada con 4 y 16 bits respectivamente 15 Figura 2.4. Señal Cuantizada Uniformemente 16 Figura 2.5. Señal Cuantizada No Uniformemente 16 Figura 2.6. Procesos en la que la señal obtiene sus características principales 18 Figura 2.7. Diagrama de Flujo de un Reconocedor de Voz 21 Figura 2.8. Diagrama de generación de la señal acústica 22 Figura 2.9. Diagrama de la adquisición de Voz 22 Figura 2.10. Señal tratada Digitalmente para ser muestreada 23 Figura 2.11. Diagrama de la digitalización de la señal de Voz 24 Figura 2.12. Diagrama de eliminación de ruido y Normalización 24 Figura 2.13. Diagrama de los filtros de énfasis 25 Figura 2.14. Diagrama de segmentación, ventaneo y recorte de la señal acústica 25 Figura 2.15. Diagrama que explica los procesos de extracción de características 26 Figura 2.16. Formula que muestra el cálculo realizado para obtener las distancias 26 Figura 2.17. Diagrama que muestra el proceso para obtener y comparar las distancias 27 Figura 3.1. Peligros En México 28 Figura 3.2. Intento de robo en México 29 Figura 3.3. Tecnología de Protección y/o seguridad 29 Figura 3.4. Seguridad en el hogar (Entrada principal) 30 Figura 4.1. Micrófono que se usara en el proyecto 32 Figura 4.2. Icono de GUIDE en MATLAB para crear interfaces 41 Figura 4.3. Selección de la GUI o abrir una nueva GUI 41 Figura 4.4. Inicio de la GUI con su ventana lateral izquierda de selección de objetos 42 Figura 4.5. Colocación, edición y uso de un Botón en la GUI 42 Figura 4.6. Interfaz gráfica imagen de la GUI 43 Figura 4.7. Interfaz gráfica del Reconocedor de Voz creado en MATLAB 43 Figura 4.8. Interfaz gráfica después de haber apretado el botón Grabar 44 Figura 4.9. Interfaz gráfica después de haber apretado el botón Identificar 45 Figura 4.10. Ventana que aparece después de presionar el botón Salir 45 Figura 4.11. Menú de Funciones del Sistema que despliega las acciones que se puede realizar 46 Figura 4.12. Ventana que aparece después de seleccionar la Acción de Abrir Puerta 46 Figura 4.13. Maqueta e Interfaz grafica 47 Figura 4.14. Tarjeta de Adquisición de datos USB6008 47 Figura 5.1. Análisis de Factor Peso (Plantilla) 61 INDICE DE FIGURAS
  • 7. V ÍNDICE DE TABLAS Tabla 5.1. Pruebas con ruido de 49.5 a 56 dBA 48 Tabla 5.2. Pruebas con ruido de 62.8 a 69.4 dBA 48 Tabla 5.3. Pruebas con ruido de 66.2 a 75.4 dBA 49 Tabla 5.4. Pruebas de Alexis mencionando Alexis 49 Tabla 5.5. Pruebas de Alexis mencionando Fernando 50 Tabla 5.6. Pruebas de Alexis mencionando Oxana 50 Tabla 5.7. Pruebas de Fernando mencionando Alexis 51 Tabla 5.8. Pruebas de Fernando mencionando Fernando 51 Tabla 5.9. Pruebas de Fernando mencionando Oxana 52 Tabla 5.10. Pruebas de Oxana mencionando Alexis 53 Tabla 5.11. Pruebas de Oxana mencionando Fernando 53 Tabla 5.12. Pruebas de Oxana mencionando Oxana 54 Tabla 5.13. Promedios Obtenidos para Alexis 55 Tabla 5.14. Promedios Obtenidos para Fernando 55 Tabla 5.15. Promedios Obtenidos para Oxana 55 Tabla 5.16. Resultados del Reconocimiento de Alexis 55 Tabla 5.17. Resultados del Reconocimiento de Fernando 56 Tabla 5.18. Resultados del Reconocimiento de Oxana 57 Tabla 5.19. Resultados del Reconocimiento para un Hombre Adulto 57 Tabla 5.20. Resultados del Reconocimiento para una Mujer Adulta 58 Tabla 5.21. Resultados del Reconocimiento para una Niña 58 Tabla 5.22. Análisis de PF (Factor de Peso) 61 Tabla 5.23. Análisis de Costos 62 Tabla 5.24. Análisis Total de Costo 62 INDICE DE TABLAS
  • 8. 1 OBJETIVO GENERAL Diseñar un sistema de seguridad para el hogar que funcione en base al reconocimiento de voz. OBJETIVOS ESPECÍFICOS a) Aplicar métodos acústicos, matemáticos y físicos de la voz para identificar y reconocer a los dueños del hogar. b) Analizar la transmisión, aplicación y manipulación de las señales de voz para poderlas utilizar en el sistema de seguridad c) Aplicar un software que funcione como interfaz con el usuario y que además realice las comparaciones y cálculos necesarios para el reconocimiento de voz, en este caso se usó MATLAB. PLANTEAMIENTO DEL PROBLEMA Dado que en la actualidad es necesario tener mejores y más innovadores sistemas de seguridad que interactúen con el dueño y que sean capaces de tener un procesamiento de información veloz y precisa que les permita tomar decisiones rápidas y confiables. Se propone el diseño, implementación y mejora de sistemas de reconocimiento de voz, por medio de algoritmos implementados en un software (MATLAB) para analizar la señal capturada por un micrófono y obtener un mejor reconocimiento de la voz. OBJETIVOS
  • 9. 2 HIPOTESIS Al implementar un sistema de seguridad en el hogar por reconocimiento de voz en MATLAB la seguridad será mejor, eficaz y barata a largo plazo haciendo uso de los métodos de cuantificación de la señal de voz con ayuda de los coeficientes LPC y Cepstrum. Se hará uso del software MATLAB para desarrollar e implementar el reconocedor de voz, debido a que se está familiarizado con él y es mejor y más preciso que otros. JUSTIFICACION Debido a la inseguridad actual que se presenta en la Ciudad de México se realizara un sistema de seguridad para el hogar utilizando la voz, con la finalidad de proponer a los habitantes de la Ciudad un sistema capaz de resguardar su hogar. OBJETIVOS
  • 10. 3 Capítulo 1. Conceptos importantes en los Reconocedores de Voz INTRODUCCION En el presente trabajo se encuentra la propuesta de un desarrollo realizado para lograr un sistema de seguridad por reconocimiento de voz en un hogar, con el afán de facilitar el acceso a su domicilio y la seguridad de que solo esa persona podrá tener acceso a él. En la Actualidad los Sistemas de Reconocimiento de Voz han tenido un gran desarrollo y han sido importantes en la vida cotidiana. Primero se hará referencia a los conceptos básicos que debe de tener en cuenta para el desarrollo de un sistema de seguridad, así como algunas consideraciones con respecto al habla y a las señales de voz que se necesitan manejar. Se darán a conocer los diferentes tipos de Métodos que existen para el reconocimiento de Voz, así como las Etapas por las cuales debe pasar un reconocedor de voz para poder procesar la voz y manejarla por medio de software. Después se enfocara al planteamiento del problema relacionado con la realidad que vive México en cuanto a la delincuencia justificando el uso de los reconocedores de voz como sistemas de seguridad. Se generara una propuesta de un sistema de reconocimiento de voz tanto en el desarrollo como las observaciones que se obtuvieron dentro de él, aplicando los conceptos, métodos y etapas vistos. Por último se darán las conclusiones, observaciones y problemas encontrados del trabajo desarrollado así como un estudio socio-económico para calcular el costo del proyecto. 1.1. Historia del Reconocedor de Voz La historia de los primeros Reconocedores de voz comienza hace 40 años pero los sucesos más importantes que se desarrollaron dentro de la industria fueron gracias a que AT&T introdujo su Sistema de reconocimiento de voz en 1992 para llamadas por cobrar, para a finales de 1993 procesaba 50 millones de llamadas al mes. En 1995 los teléfonos celulares ya ofrecían servicios de marcado activado por voz. En los 1990's en el sector Salud se inicia la generación de reportes clínicos por voz en salas de emergencia (fomentado por las empresas se seguros Blue Cross y Blue Shield). Posteriormente se amplió a diversas áreas de hospitales como radiología, cardiología, etc. CAPITULO 1: Conceptos importantes en los Reconocedores
  • 11. 4 En 1995 se desarrollan los primeros prototipos de aparatos electrodomésticos Whirlpool Corp. Actualmente las PC's integran utilerías de voz. Microsoft Corp.: Facilidades para construir objetos de comandos de voz (voice-commandobjects) en Win95. CreativeLabs integra Procesamiento automático en la mayoría de sus tarjetas soundblaster. Compaq y PureSpeech desarrollan conjuntamente tecnología de voz. SeagateTech compró 25% de DragonSystems. 1.2. Orden Cronológico De los Reconocedores de Voz 1870's Alexander Graham Bell: Quería construir un sistema/dispositivo que hiciera el habla visible a las personas con problemas auditivos. Resultado: el teléfono 1880's Tihamir Nemes: Solicita permiso para una patente para desarrollar un sistema de transcripción automática que identificara secuencias de sonidos y los imprimiera (texto). Pero fue rechazado como "Proyecto no Realista" 30 años después AT&T Bell Laboratories: Construye la primera máquina capaz de reconocer voz (basada en Templates) de los 10 dígitos del inglés. Requería extenso reajuste a la voz de una persona, pero una vez logrado tenía un 99% de certeza. Por lo tanto surge la esperanza de que el reconocimiento de voz es simple y directo. A mediados de los 60's: La mayoría de los investigadores reconoce que era un proceso mucho más intrincado y sutil de lo que habían anticipado. Por lo tanto empiezan a reducir los alcances y se enfocan a sistemas más específicos:  Dependientes del Locutor.  Flujo discreto de habla (con espacios / pausasentre palabras)  Vocabulario pequeño (menor o igual a 50 palabras) Estos sistemas empiezan a incorporar técnicas de normalización del tiempo (minimizar diferencia en velocidad del habla) Además, ya no buscaban una exactitud perfecta en el reconocimiento. Después: IBM y CMV trabajan en reconocimiento de voz continuo pero no se ven resultados hasta los 1970's. CAPITULO 1: Conceptos importantes en los Reconocedores
  • 12. 5 Principios 1970's: Se produce el 1er Producto de reconocimiento de voz, el VIP100de ThresholdTechnology Inc. (utilizaba un vocabulario pequeño, dependiente del locutor, y reconocía palabras discretas). Gana el U.S. NationalAward en 1972. Luego: Nace el interés de ARPA del U.S. Department of Defense, y gracias al lanzamiento de grandes proyectos de investigación y financiamiento por parte del gobierno se precipita la época de la inteligencia artificial. El proyecto financiado por ARPA busca el reconocimiento de habla continua, de vocabulario grande. Impulsa que los investigadores se enfoquen al entendimiento del habla. Los sistemas empiezan a incorporar módulos de:  Análisis léxico (conocimiento léxico)  Análisis sintáctico (Estructura de Palabras)  Análisis semántico (Significado)  Análisis pragmático (Intención) 80's a 90's: Surgen los sistemas de vocabulario amplio, que ahora son la norma. (Más de1000 palabras). Adicionalmente bajan los precios de estos sistemas. Empresas importantes actualmente:  Philips  Lernout&Hauspie  SensoryCircuits  DragonSystems  Speechworks  Vocalis  Dialogic  Novell  Microsoft  NEC, Siemens, Intel (apoyo / soporte técnico), entre otros. [3] 1.3. Características de la señal de voz Los sistemas de reconocimiento de voz se enfocan en las palabras y los sonidos que distinguen una palabra de la otra en un idioma. Estas son los fonemas. Por ejemplo, "tapa", "capa", "mapa", "napa", son palabras diferentes puesto que su sonido inicial se reconoce como fonemas diferentes en español. CAPITULO 1: Conceptos importantes en los Reconocedores
  • 13. 6 Existen varias maneras para analizar y describir el habla. Los enfoques más comúnmente usados son: 1. Articulación: Análisis de cómo el humano produce los sonidos del habla. 2. Señal Acústica: Análisis de la señal de voz como una secuencia de sonidos. 3. Percepción Auditiva: Análisis de cómo el humano procesa el habla. Los tres enfoques proveen ideas y herramientas para obtener mejores y más eficientes resultados en el reconocimiento. Figura 1.1.Proceso de Comunicación del Habla En la imagen anterior se observa que partes del oído intervienen en el proceso de comunicación del habla. 1.3.1. Articulación La Articulación se compone del sistema fonador que es un conjunto de órganos que intervienen en la producción de sonidos. También llamado aparato bucal o articulatorio. El aparato fonador consiste en tres grupos de órganos diferenciados [Figura 1.2]: Órganos de respiración-cavidades infra-glóticas: pulmones, bronquios y tráquea. Órganos de fonación-cavidades glóticas: laringe, cuerdas vocales y resonadores - nasal, bucal y faríngeo. Órganos de articulación-cavidad supra-glóticas: paladar, lengua, dientes, labios y glotis. [2] CAPITULO 1: Conceptos importantes en los Reconocedores
  • 14. 7 Figura 1.2.Órganos del cuerpo que intervienen en el aparato fonador El correcto funcionamiento del aparato fonador, es controlado por el sistema nervioso central. Específicamente, se sabe que el control del habla se realiza en el área de Broca que se encuentra en el hemisferio izquierdo de la corteza cerebral. La articulación centra su atención en el aparato vocal: Garganta, boca, nariz, en donde se producen los sonidos del habla.  Garganta: Contiene las cuerdas vocales, cuya vibración produce los fonemas "hablados".  Boca y Nariz: "Cavidades de resonancia" por que refuerzan ciertas frecuencias sonoras. o Cuando el paladar suave baja y deja el aire pasar por la nariz se generan los fonemas nasales (/m/ /n/) o La boca consiste de:  Puntos de articulación  Dientes  Puente alveolar (puente óseo atrás de los dientes superiores) CAPITULO 1: Conceptos importantes en los Reconocedores
  • 15. 8  Paladar duro  Paladar suave o velum  Articuladores  Labios  Lengua [1] 1.3.2. Señal Acústica Un reconocedor no puede analizar los movimientos en la boca. En su lugar, la fuente de información es la señal de voz misma. El Habla es una señal analógica, es decir, un flujo continuo de ondas sonoras y silencios. El conocimiento de la ciencia de la acústica se utiliza para identificar y describir los atributos del habla que son necesarios para un reconocimiento de voz efectivo. Algunas características importantes del análisis acústico son:  Frecuencia y amplitud Todos los sonidos causan movimientos entre las moléculas del aire. Algunos sonidos, tales como los que produce una cuerda de guitarra, producen patrones regulares y prolongados de movimiento del aire. Los patrones de sonidos más simples son los sonidos puros (pure tones), y se pueden representar gráficamente por una onda sinoidal. Frecuencia: Número de vibraciones (ciclos) del tono por segundo 100 por segundo = 100 ciclos/segundo = 100 Hz. Tonos altos = Mayor frecuencia Tonos bajos = Menor frecuencia El volumen de un sonido refleja la cantidad de aire que es forzada a moverse. Se describe y representa como amplitud de la onda y se mide en decibeles dB. [2]  Resonancia La resonancia se define comúnmente como la habilidad que tiene una fuente vibrante de sonido de causar que otro objeto vibre gracias a ella. La mayoría de los sonidos incluyendo del habla tienen una frecuencia dominante llamada frecuencia fundamental también conocida como pitch (tono) que se combina con frecuencias secundarias en el habla, la frecuencia fundamental es la velocidad a la que vibran las cuerdas vocales al producir un fonema sonoro. CAPITULO 1: Conceptos importantes en los Reconocedores
  • 16. 9 Sumadas a la frecuencia fundamental hay otras frecuencias que contribuyen al timbre del sonido. (Son las que nos permiten distinguir una trompeta de un violín, etc. o las voces de diferentes personas) Algunas bandas de la frecuencia secundarias juegan un rol importante en la distinción de un fonema de otro. Se les llama formantes y son producidas por la resonancia. La garganta, boca y nariz son cámaras de resonancia que amplifican las bandas o frecuencias formantes contenidas en el sonido generado por las cuerdas vocales. Estas formantes amplificadas dependen del tamaño y forma de la boca y si el aire pasa o no por la nariz. Los patrones de las formantes son más fuertes (distinguibles) para vocales que para las consonantes no sonoras.  Estructura Armónica y Ruido El habla no es un tono puro es continuación de múltiples frecuencias y se representa como una onda compleja. Vocales se componen de 2 o más ondas simples son ricos en frecuencias secundarias y contienen estructuras internas que incluyen ondas cíclicas y a cíclicas. Las ondas a cíclicas no tienen patrones repetitivos generalmente llamados ruido forman parte de todos los fonemas sonoros, consonantes y semivocales. Las frecuencias y características de los patrones a cíclicos proveen información importante sobre la identidad de los fonemas. La identidad de las consonantes también se revela por el cambio en las formantes que resultan cuando los articuladores se mueven de un fonema anterior a la consonante y de ella al siguiente fonema llamadas transiciones de formantes. Estas se analizan utilizando técnicas como la transformada rápida de Fourier (FFT) generando espectrogramas. La complejidad de las formas de onda de los fonemas y las constantes transiciones de un patrón a otro dificultan el análisis de los patrones utilizando las representaciones complejas de las ondas. Los patrones armónicos y de ruido se muestran con más claridad utilizando los espectrogramas de banda ancha. La localización (la distancia entre ellas) y cambio en las formantes ayudan a identificar fonemas y palabras. CAPITULO 1: Conceptos importantes en los Reconocedores
  • 17. 10  Coarticulación Los fonemas aparentemente tienen parámetros acústicos claramente definidos, pero más bien, los fonemas tienden a ser abstracciones implícitamente definidas por la pronunciación de palabras en un lenguaje. La forma acústica de un fonema depende fuertemente del contexto acústico en el que sucede a éste efecto se le llama coarticulación. Investigadores, utilizan este concepto para distinguir entre la característica conceptual de un sonido del habla (fonema) y una instancia o pronunciación específica de ese fonema (tono). [1] 1.3.3. Percepción Auditiva La variabilidad del habla producida por coarticulación y otros factores hacen del análisis de la voz extremadamente difícil. La facilidad del humano en superar estas dificultades sugiere que un sistema basado en la percepción auditiva podría ser un buen enfoque desafortunadamente el conocimiento de la percepción humana es incompleto, lo que se sabe es que el sistema auditivo está adaptado a la percepción de la de voz. El oído humano detecta frecuencias de 20Hz a 20,000 Hz pero es más sensible al rango entre 1000 y 6000 Hz. También es más sensible a cambios pequeños en la frecuencia en el ancho de banda crítico para el habla. Además el patrón de sensibilidad a cambios en el tono (pitch) no corresponde a la escala lineal de frecuencias de ciclos por segundo de la acústica. Para representar mejor al patrón de percepción acústica, se tiene una escala llamada mel-scale, la cual es una escala logarítmica que representa los niveles de la señal. El humano no procesa frecuencias individuales independientemente, como lo sugiere el análisis acústico. En su lugar escucha grupos de frecuencias por lo cual es capaz de distinguirlas de ruidos alrededor. CAPITULO 1: Conceptos importantes en los Reconocedores
  • 18. 11 1.4. Funcionamiento de un sistema de Reconocimiento de Voz El reconocimiento de voz generalmente es utilizado como una interfaz entre humano y computadora para algún software. Debe cumplir 3 tareas:  Pre-procesamiento: Convierte la entrada de voz a una forma que el reconocedor pueda procesar.  Reconocimiento: Identifica lo que se dijo (traducción de señal a texto).  Comunicación: Envía lo reconocido al sistema (Software/Hardware) que lo requiere. Componentes en una aplicación: Figura 1.3. Diagrama a Bloques del Proceso General Del Reconocimiento de voz Existe una comunicación bilateral en aplicaciones, en las que la interfaz de voz está íntimamente relacionada al resto de la aplicación. Estas pueden guiar al reconocedor especificando las palabras o estructuras que el sistema puede utilizar. Otros sistemas sólo tienen una comunicación unilateral. Los Procesos de pre-procesamiento, reconocimiento y comunicación deberían ser invisibles al usuario de la interfaz. El usuario lo nota en el desempeño del sistema de manera indirecta como: certeza en el reconocimiento y velocidad. Estas características las utiliza para evaluar una interfaz de reconocimiento de voz. [6] CAPITULO 1: Conceptos importantes en los Reconocedores
  • 19. 12 Capítulo 2. Métodos y Etapas para el Reconocimiento de Voz En este Capítulo se darán a conocer los diferentes tipos de Métodos que existen para el reconocimiento de Voz, así como las Etapas por las cuales debe pasar un reconocedor de voz para poder procesar la voz y manejarla por medio de software. 2.1. Digitalización de la señal de Voz Para poder manipular la señal de voz este debe de ser transformada a una señal digital para poder ser utilizada por el software de programación, este proceso se lleva a cabo en etapas con consideraciones variables que hacen que la adquisición de la señal sea de forma correcta. 2.1.1. Codificación de la señal de voz La codificación de una señal se refiere al método para convertir digitalmente el habla para utilizarlo en diversos ambientes, desde juguetes parlantes, CD’s hasta transmisiones vía telefónica. Para utilizar la voz como dato en aplicaciones tan diversas como el voice mail, anotaciones en un texto o un directorio parlante, es necesario almacenar la voz de manera que una computadora pueda recuperarla. La presentación digital de la voz nos provee también con las bases para el reconocimiento y síntesis de voz. El método convencional o secuencial de almacenamiento de datos, la cinta magnética requiere que se le adelante y regrese hasta encontrar la posición buscada. Es propensa a daño mecánico, no se pueden editar (cut/paste) y no duran mucho tiempo en uso. Algunos factores que se deben de considerar para codificar la señal dependiendo del uso que se le dé son:  Memoria y Ancho de banda necesario para flexibilidad de uso.  Costo de transmisión.  Rangos de calidad  Aplicación.  Codificadores de Voz.  Inteligibilidad: La mayor calidad posible  Error e inteligibilidad.  Edición Simple.  Eliminación del silencio: Ahorrar espacio  Time-scaling: Reproducción más rápida. CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
  • 20. 13  Adaptación de Velocidad  Robustez 2.1.2. Muestreo y Cuantización El habla es una señal continua y varia en el tiempo. Las variaciones en la presión del aire se irradian desde la cabeza y se transmiten por el aire. Un micrófono convierte esas variaciones en presión del aire a variaciones en voltaje. Una señal Análoga se puede transmitir a través de un circuito telefónico (voltaje) o almacenados en una cinta magnética (flujo magnético). En el Mundo Real los estímulos sensoriales son análogos. Sin embargo, para las computadoras es necesario digitalizar la señal (primera fase del procesamiento de la señal) Para esto se usan series de valores numéricos con una frecuencia regular (frecuencia de muestreo). El número posible de valores está limitado por el número de bits disponible para representar a cada muestra. Figura 2.1. Diferentes tipos de Transductores Eléctrico – Acústicos CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
  • 21. 14  Muestreo El muestreo asigna un valor numérico a la señal en unidades discretas de tiempo constante dependiendo de la frecuencia Nyquist que específica la frecuencia máxima a la que una señal puede reproducirse completamente. El teorema de Nyquist establece que: Frecuencia muestreo = 2 veces la frecuencia máxima de la señal para poder reproducirla. Para poder reproducir la señal análoga debe pasar por un filtro pasa-bajas a la frecuencia de muestreo (quitar ruidos creados por el muestreo). Figura 2.2. Señales Senoidales Muestreadas a diferentes valores Si la señal varía más rápido se requiere una T más pequeña por lo tanto un menor ancho de banda de frecuencias. El humano produce señales de Voz desde los 100(hombre)-400(mujer) Hertz hasta los 15000Hz. Teléfono: 3100Hz por lo tanto se muestrea a 8000 Hz, inteligible pero baja calidad. Comparado con un CD, se muestrea a 44.1Hz. El ancho de banda es mayor para instrumentos que para voz. Pero la diferencia es audible. Por lo tanto se requiere mayor espacio para almacenar y transmitirla. CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
  • 22. 15  Cuantización La cuantizacion consiste en que cada muestra se representa con un valor digital limitando el rango de valores discretos correspondiente a la original. Ejemplo: Utilizando 4 bits se pueden representar 16 valores diferentes. Con 8 bits ya son 256 valores. Figura 2.3. Señal Cuantizada con 4 y 16 bits respectivamente Esto se puede ver como la resolución: 1. El error o diferencia entre la señal original y la reconstruida se percibe como ruido. 2. Por lo tanto, a mayor resolución mayor cuantización y menor ruido como consecuencia. 3. La resolución (# de bits por muestra) se describe generalmente en términos de la relación señal-a-ruido (signaltonoise ratio o SNR). 4. A mayor SNR es mayor la fidelidad de la señal digitalizada. 5. SNR aproximadamente 2^B (B=bits/muestra) 6. Es independiente de la frecuencia de muestreo. Existen diferentes técnicas de cuantizacion:  Cuantización uniforme  Cuantización no uniforme  Cuantización logarítmica  Cuantización vectorial CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
  • 23. 16  Cuantificación uniforme En los cuantificadores uniformes o lineales la distancia entre los niveles de reconstrucción es siempre la misma, la mayoría usan un número de niveles que es una potencia de 2. No hacen ninguna suposición acerca de la señal a cuantificar, de allí que no proporcionen los mejores resultados. Su ventaja es que son más fáciles y económicos al implementarlos. Figura 2.4. Señal Cuantizada Uniformemente  Cuantificación no uniforme El problema de la cuantificación uniforme es que conforme aumenta la amplitud de la señal, también aumenta el error. Este problema lo resuelve el cuantificador logarítmico de forma parcial. Sin embargo, si conocemos la función de la distribución de probabilidad, podemos ajustar los niveles de reconstrucción a la distribución de forma que se minimice el error cuadrático medio. Esto significa que la mayoría de los niveles de reconstrucción se den en la vecindad de las entradas más frecuentes y, consecuentemente, se minimice el error (ruido). Figura 2.5. Señal Cuantizada No Uniformemente CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
  • 24. 17  Cuantificación logarítmica Las señales de voz pueden tener un rango dinámico superior a los 60 dB, por lo que para conseguir una alta calidad de voz se deben usar un elevado número de niveles de reconstrucción. Sin embargo, interesa que la resolución del cuantificador sea mayor en las partes de la señal de menor amplitud que en las de mayor amplitud. Por tanto, en la cuantificación lineal se desperdician niveles de reconstrucción y, consecuentemente, ancho de banda. Esto se puede mejorar incrementando la distancia entre los niveles de reconstrucción conforme aumenta la amplitud de la señal. Para evitar desperdicio de niveles de reconstrucción y de ancho de banda se utiliza un método sencillo para mejorar el incremento de la distancia entre los niveles de reconstrucción conforme aumenta la amplitud de la señal. Para conseguir esto se hace pasar la señal por un compresor logarítmico antes de la cuantificación. Esta señal comprimida puede ser cuantificada uniformemente. A la salida del sistema la señal pasa por un expansor. A esta técnica se le llama compresión.  Cuantificación vectorial Este método cuantifica los datos en bloques de N muestras. En este tipo de cuantificación, el bloque de N muestras se trata como un vector N-dimensional. La cuantificación vectorial ofrece mejores resultados que la cuantificación escalar, sin embargo, es más sensible a los errores de transmisión y lleva consigo una mayor complejidad computacional. [4,6,9] 2.2. Métodos de Reconocimiento de voz En el reconocimiento del habla, la señal de voz se ingresa a un procesamiento para producir una representación de la voz en forma de secuencia de vectores o agrupaciones de valores que se denominan parámetros, que deben representar la información contenida en la envolvente del espectro. Hay que tener en cuenta que el número de parámetros debe ser reducido, para no saturar la base de datos, ya que mientras más parámetros tenga la representación menos fiables son los resultados y más costosa la implementación. Existen distintos métodos de análisis para la extracción de características, y se concentran en diferentes aspectos representativos. En este trabajo de tesis utilizaremos los dos de mayor importancia para el análisis de la voz tomando en cuenta su predecesor de Aproximación en base a plantillas:  Análisis de predicción lineal (LPC)  Análisis Cepstral [8] CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
  • 25. 18 2.2.1. Aproximación en base a plantillas Teoría que ha dado lugar a toda una familia de técnicas de reconocimiento de voz, causando un considerable avance durante las décadas de los 70’s y 80’s. Figura 2.6. Procesos en la que la señal obtiene sus características principales El principio es simple, se almacenan patrones de voz típicos (templates) como modelos de referencia en un diccionario de palabras candidato. El reconocimiento se lleva a cabo comparando la expresión desconocida a los patrones almacenados (templates) seleccionando el que más se le parece usualmente se construye patrones para las palabras completas. Ventaja: Se evitan errores debidos a la segmentación o clasificación de unidades pequeñas que pueden variar mucho acústicamente, como los fonemas. Desventaja: Cada palabra requiere de su patrón y el tiempo de preparar y compararlos se vuelve demasiado al incrementarse el tamaño del vocabulario. Inicialmente se pensaba que se restringía sólo a reconocimiento dependiente del locutor. Sin embargo se logro un reconocimiento independiente del loc. Utilizando técnicas de Cluster para generar automáticamente grupos de patrones para cada palabra del vocabulario. También pasó de ser para el reconocimiento de palabras aisladas a habla continua utilizando técnicas de programación dinámica para encontrar la mejor cadena de patrones.  Medición de características. Se trata básicamente de una técnica de reducción de datos en la cual el gran número de datos en la señal grabada es transformado en un grupo más pequeño de características que describen las propiedades importantes de la señal. CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
  • 26. 19 El tipo de características que se calculan depende de: 1. Tiempo para calcularlas 2. Espacio para almacenarlas 3. Facilidad de Implementación. Análisis mediante banco de filtros, Una muestra de voz se puede aproximar como una combinación lineal de muestras anteriores.  Determinación de similitud entre patrón de referencia de voz y serial capturada. R(t) T(t) Se busca una función de alineamiento w(t) que mapee R y las partes correspondientes de T. El criterio de correspondencia es la minimización de una medida de distancia D(T,R) Por lo tanto se busca una w(t) tal que mística d(T(t), R(W(t))) función de ponderación deriva de w(t) D(T,R)= min INTEGRAL dw(t) Se buscan una alineación en tiempo "optima" a través de una curva que relacione el eje de tiempo m de R al eje de tiempo del patrón T. m=w(n) Restricciones w(I)=1 W(NT)=NR Para determinar el tipo de la alineación se propusieron diversas técnicas: 1. Alineamiento lineal m=w(n)=(n-1)[(NR-1)/(NT-1)]+1 2. Mapeo de eventos temporales (significativos) en ambos patrones 3. Máxima Correlación se varía la función para maximizar la correlación entre RyT 4. Dynamic Time Warping (se calcula la distancia entre R y T) Se debe encontrar una medida que indique qué tan similares con los patrones R y T. Para ello es necesario alinearlos de alguna forma. [5,8]  Reglas de decisión El candidato con la menor distancia o una lista ordenada por distancias (de menos a mayor) Se usa cuando se tienen varios patrones de referencia para cada cantidad R. CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
  • 27. 20 2.2.2. Predicción Lineal Se trata de una de las técnicas más potentes de análisis de voz, y uno de los métodos más útiles para codificar voz con buena calidad. Su función es representar la envolvente espectral de una señal digital de voz en una forma comprimida, utilizando la información de un modelo lineal, con lo cual se proporcionan unas aproximaciones a los parámetros de la voz muy precisas. Se fundamenta en establecer un modelo de filtro de tipo “todo polo”, para la fuente de sonido, el filtro “todo polo” justifica su uso ya que permite describir la función de transferencia de un tubo, que sin perdidas está formado por diferentes secciones. El modelo recibe este nombre porque pretende extrapolar el valor de la siguiente muestra de voz s(n) como la suma ponderada de muestras pasadas: s(n) = s(n-1), s(n-2),…, s(n-K)……(2.1)  Estimación de los LPC Una estima o predicción de s(n) basada en p muestras anteriores, puede calcularse como lo muestra la siguiente fórmula: ( ) ∑ ( ) ( ) y el error de predicción se obtiene de: ( ) ( ) ∑ ( ) ( ) Los LPC se obtienen minimizando un criterio cuadrático en los errores de predicción, para cada cuadro en que es dividido el segmento de voz. El número de coeficientes LPC que se obtienen dependen la frecuencia de muestreo como se indica en la siguiente fórmula: ( ) ( ) [5] CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
  • 28. 21 2.2.3. Análisis Cepstral Como se sabe los sonidos de la voz se pueden representar mediante un espectrograma, que indica las componentes frecuenciales de la señal de voz. Es así entonces como el espectro nos proporciona información acerca de los parámetros del modelo de producción de voz, tanto de la excitación como del filtro que representa el tracto vocal. Estos coeficientes fueron utilizados solo para mostrar la señal acústica no se usaron para cálculos, estimaciones, etc. 2.3. Diagrama de Flujo del Reconocedor de Voz El siguiente diagrama de flujo muestra las acciones que deben seguirse para que el Reconocedor de Voz funcione. Figura 2.7. Diagrama de Flujo de un Reconocedor de Voz CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
  • 29. 22 2.4. Etapas del Reconocimiento de Voz Las etapas para el correcto funcionamiento de un Reconocedor de Voz se mencionan a continuación. 2.4.1. Generación de la Señal Acústica Figura 2.8. Diagrama de generación de la señal acústica 2.4.2. Conversión A/D o Adquisición Figura 2.9. Diagrama de la adquisición de Voz  Obtención de la señal por el micrófono El micrófono es un transductor electro-acústico. Su función es la de transformar la presión acústica ejercida sobre su capsula por las ondas sonoras en energía eléctrica. Cuando un micrófono está operando las ondas de sonido hacen que vibre el elemento magnético del micrófono causando una corriente eléctrica hacia la tarjeta de sonido, donde el convertidor A/D básicamente graba los voltajes eléctricos en intervalos específicos.  Muestreo El muestreo es para transformar una señal analógica o señal continúa a una señal digital o discreta, es decir de la señal original (analógica) se toman muestras cada determinado tiempo y se hace una copia de su valor en tiempos definidos, de esta forma surge la frecuencia de muestreo que es la cantidad de muestras que se tienen de una señal en una unidad de tiempo y se mide en Hz (ciclos por segundo). CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
  • 30. 23 Figura 2.10. Señal tratada Digitalmente para ser muestreada La frecuencia de audio que percibe el ser humano está entre los 20 Hz y 20kHz, frecuencias más elevadas el oído humano no lo percibe. La frecuencia de la voz se encuentre entre frecuencias de 100Hz a 8kHz. [4]  Resolución o Cuantificación El proceso de cuantificación es uno de los pasos que se siguen para lograr la digitalización de una señal analógica. Este proceso es convertir una sucesión de muestras de amplitud continua en una sucesión de valores discretos preestablecidos según el código utilizado. Durante el proceso de cuantificación se mide el nivel de tensión de cada una de las muestras, obtenidas en el proceso de muestreo, y se les atribuye un valor finito de amplitud, seleccionado por aproximación dentro de un margen de niveles previamente fijado. La cuantificación más comúnmente usada, es de 8 bits, mínimo requerido para una calidad baja, puede mejorarse su S/R con una técnica no lineal de cuantificación, se obtienen excelentes resultados aumentando la cuantificación a 16 bits. [3,4] CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
  • 31. 24  Ganancia El siguiente paso es amplificar las señales a niveles que sean manejables. La señal vocal tiene componentes de frecuencia que pueden llegar a los 10 kHz., sin embargo la mayor parte de los sonidos vocales tiene energía espectral significativa hasta los 5 Khz. solamente los sonidos fricativos poseen componentes que pueden llegar a los 10 kHz. Para tomar y no eliminar información se debe amplificar la ganancia. 2.4.3. Pre-procesamiento Figura 2.11. Diagrama de la digitalización de la señal de Voz Para el análisis de la señal de voz se realiza un pre-procesamiento de la señal vocal. Esto sucede a través de técnicas que permitan extraer la información acústica directamente a partir de la señal vocal emitida, se realiza el muestreo y algún tipo de cuantizacion. [3] 2.4.4. Eliminación de Ruido y Normalización Figura 2.12. Diagrama de eliminación de ruido y Normalización Primero se realiza un filtrado de la señal para reducir los efectos del ruido que acompaña la señal de voz ingresada, sin este filtrado se tendrían datos que no necesitamos. También se hace una segmentación, esto es detectar el inicio y final de la señal de voz para eliminar el ruido inicial y final, esto ayuda a optimizar memoria y hacer más veloz el tiempo de cálculo para comparaciones y por supuesto evitar errores, para hacer esto se hace uso del nivel de energía. CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
  • 32. 25 2.4.5. Filtro Pre-énfasis Se aplica un filtro digital pasa altas de primer orden a la señal, para enfatizar las frecuencias altas de los formantes por dos razones, primero para que no se pierda información durante la segmentación, ya que la mayoría de la información está contenida en las frecuencias bajas, en segundo remueve la componente DC de la señal, aplanando espectralmente la señal. Figura 2.13. Diagrama de los filtros de énfasis [8] 2.4.6. Segmentación La segmentación consiste en cortar la señal en segmentos de análisis. La señal de voz es asumida como estacionaria en estos segmentos. Durante la segmentación los segmentos son guardados cada uno como la columna de una matriz, para el posterior procesamiento de la señal de voz. Para el proceso una ventana de Hamming de 30ms es aplicada a la señal de voz, enfatizada previamente con el filtro de pre-énfasis. Con un desplazamiento típico 10ms entre cada ventaneo. Figura 2.14. Diagrama de segmentación, ventaneo y recorte de la señal acústica [9] CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
  • 33. 26 2.4.7. Extracción de las características Figura 2.15. Diagrama que explica los procesos de extracción de características En este paso se utiliza el método de Predicción lineal para obtener coeficientes LPC y con ayuda de Cepstrum entender el espectro frecuencia de la señal que se va a reconocer. [9] 2.4.8. Calculo de Distancia Una característica fundamental de los sistemas de reconocimiento es la forma en que los vectores característicos son combinados y comparados con los patrones de referencia. Para poder realizar estas operaciones es necesario definir una medida de distancia entre los vectores característicos. Algunas de las medidas de distancia más utilizadas son las distancias o métricas inducidas por las normas en espacios Lp. En el algoritmo de reconocimiento en MATLAB se utiliza una distancia Euclidea, definida del siguiente modo: por ejemplo si fi y fi’, con i=0, 1, 2,…, D son las componentes de dos vectores característicos f y f’, puede definirse la siguiente métrica inducida por la norma Lp: ………(2.5) Figura 2.16. Formula que muestra el cálculo realizado para obtener las distancias CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
  • 34. 27 En el algoritmo primero se define el tamaño del mayor vector, y se calcula con la formula anterior la distancia entre el vector de la palabra a reconocer y cada uno de los vectores de referencia en la base de datos, luego se hacen las condiciones para obtener la menor distancia, con lo cual se encuentra la palabra identificada en la base de datos. Figura 2.17. Diagrama que muestra el proceso para obtener y comparar las distancias 2.4.9. Toma de Decisión La toma de decisión se hace en cuestión de la diferencia entre las distancias de la señal graba que tiene su base de datos y la señal que se está comparando, se toma la decisión para aquella que cumpla con la menor distancia y cumpla ciertas condiciones, como tener mayor numero acertado de coeficientes LPC o la envolvente de esta señal es muy parecida a la envolvente de la señal grabada en base de datos. CAPITULO 2: Métodos y Etapas para Reconocimiento de Voz
  • 35. 28 Capítulo3. Planteamiento del Problema La inseguridad ciudadana se ha convertido en uno de los grandes desafíos de las sociedades contemporáneas. El impacto del fenómeno sobre la calidad de vida de los ciudadanos obliga a los gobiernos nacionales, locales y a los sectores organizados de la sociedad, a diseñar esquemas alternativos a los existentes, siendo su propósito el disminuir los niveles de inseguridad, sin sacrificar el avance de la Democracia y el respeto por los Derechos Humanos y las Garantías Ciudadanas. La seguridad es un pre requisito básico para que las personas puedan satisfacer sus necesidades básicas y desarrollar sus potencialidades como seres humanos, se ha constituido como un Derecho Humano exigible. El robo a casa habitación es uno de los delitos cuya incidencia ha aumentado en la ciudad de México, de acuerdo con un estudio de la empresa Multisistemas de Seguridad Industrial. Figura 3.1.Peligros En México De acuerdo con estadísticas dadas a conocer por funcionarios de la Secretaría de Seguridad Pública y de la Procuraduría General de Justicia (PGJDF), ambas del Distrito Federal, así como el Consejo Ciudadano de Seguridad Pública y Procuración de Justicia, en 68 por ciento de robos a casa habitación la víctima fue abordada cuando llegaba a su domicilio; 20 por ciento abrieron la puerta al asaltante, quien se hace pasar por prestador de algún servicio y en 12 por ciento el atraco ocurrió cuando no había nadie en la vivienda. CAPITULO 3: Planteamiento del Problema
  • 36. 29 El subprocurador de Averiguaciones Previas Desconcentradas de la PGJDF, Hiram Almeida Estrada, indicó que la mayor incidencia de ese ilícito es en las delegaciones Tlalpan, Gustavo A. Madero e Iztapalapa. Figura 3.2. Intento de robo en México La tecnología puede ser una herramienta sumamente útil y poderosa para reducir el riesgo a ser víctimas de la inseguridad. Proponer y diseñar un sistema tecnológico ayudara a reducir los riesgos de ser víctimas de un robo a domicilio, es vital para el desarrollo de satisfacer la necesidad de vivir seguro y confiado al ciudadano. Figura 3.3.Tecnología de Protección y/o seguridad CAPITULO 3: Planteamiento del Problema
  • 37. 30 Es de enfoque el ingreso o acceso al hogar por ello se toman medidas para limitar el acceso a personas desconocidas y las funciones que pueden realizar dentro de este, como encender luces, entrar a diferentes habitaciones, hacer uso de teléfono etc. De esta forma el dueño y su familia podrán sentirse seguros de vivir en un lugar controlado por ellos. Usando tecnología eficiente y accesible para personas de cualquier nivel social se pretende dar un servicio de seguridad al ciudadano, estando dentro y fuera de su hogar. Figura 3.4.Seguridad en el hogar (Entrada principal) CAPITULO 3: Planteamiento del Problema
  • 38. 31 4. Desarrollo de un Sistema de Seguridad por Reconocimiento de Voz 4.1. Metodología Dentro de la metodología del proyecto se requiere:  Generar una base de datos.  Filtrar y normalizar la señal adquirida.  Obtener sus coeficientes LPC.  Comparación de los coeficientes LPC según la distancia.  Permitir o denegar el acceso. Primeramente para la base de datos se realizan 5 grabaciones del usuario, las cuales se hicieron con un micrófono y en formato .WAV a través de MATLAB a 22 KHz de muestreo y 16 bits de resolución. Posteriormente se hizo el filtro que elimina el ruido y aumentaba su energía para que las grabaciones sean parecidas a sus parámetros (Normalización). Al tener las 5 muestras sin ruido y normalizadas se obtiene el promedio de estas para tener una única señal promediada con la señal de voz del usuario. Los coeficientes LPC se obtienen con una función dentro de MATLAB, el número de coeficientes que se utilizan son 25, dado por la siguiente ecuación: ( ) ………….(3.1) Con esto se obtienen vectores de 25 coeficientes LPC para cada una de las señales, que se comparan en distancia para obtener la relación entre la señal grabada y las 3 señales guardadas en la base de datos. La medida de la distancia se realiza elemento por elemento uno a uno, entre la señal de voz grabada y alguna de la de la base de datos. Al final de la medición de las distancias se suman los coeficientes que tengan menos del rango dado por el programa para dar el número exacto de coeficientes LPC en que se parecen las señales. Este procedimiento se realiza 3 veces comparando la señal grabada con cada una de las bases de datos. La toma de decisión se hace en base a que la señal grabada debe tener como mínimo cierto número de coeficientes LPC, que se parecen a la señal almacenada en la base de datos de ese usuario, si alguna de esas relaciones supera ese mínimo se da por hecho que la voz grabada es de ese usuario, por lo cual el programa reconoce a la persona y le CAPITULO 4: Desarrollo de Un sistema de Seguridad
  • 39. 32 da acceso al sistema, si ninguna de las relaciones supera el mínimo para alguna de las 3 personas el programa manda un error de que no se reconoció, negando el acceso al sistema a la persona que grabo. 4.2. Micrófono Las características principales del Micrófono, con el cual la adquisición de la señal de voz es posible, son las siguientes:  Suprime ruidos de funcionamiento no deseados.  El protector contra viento y el interruptor de filtro pasa-altas evitan las interferencias del viento o ruidos de baja frecuencia.  Cuenta con un cuerpo de dimensiones reducidas para poder utilizarlo cómodamente.  Ofrece la manera ideal de grabar un sonido nítido y claro. El principal inconveniente es que el micrófono, captan tanto lo se requiere como lo que no: ruido del entorno, reflexiones acústicas, etc. Figura 4.1. Micrófono que se usara en el proyecto 4.3. Entrenamiento y Base de Datos 4.3.1. Adquisición Mediante el Software de MATLAB se crea un programa en el editor, con el cual se puede adquirir señales de voz en archivos WAV con Frecuencia de muestreo de 22Khz, a 16 bits de resolución, mono canal y duración de 2 segundos. Programa: %Programa de Grabaciones de la Base de Datos Fs = 22050; % Frecuencia de Muestreo s = wavrecord(2*Fs, Fs, 1); wavwrite(s,Fs,16,'F1.wav') % Guarda .wav señal grabada CAPITULO 4: Desarrollo de Un sistema de Seguridad
  • 40. 33 4.3.2. Eliminación de Silencios y Normalización Adquirida la señal de voz, se procede a eliminar el ruido por medio de un Filtro para obtener la señal característica, aunado a esto se debe Normalizar la señal, debido a que en MATLAB la señal debe tomar valores desde -1 hasta 1 para poder utilizarla de forma adecuada sin perdidas. Programa: %Programa de Grabaciones de la Base de Datos (Normalización y eliminación de ruido) Fs = 22050; % Frecuencia de Muestreo s = wavrecord(2*Fs, Fs, 1); wavwrite(s,Fs,16,'F1.wav') % Guarda .wav señal grabada lon = length(s); % Longitud del vector d = max(abs(s)); % Obtiene el valor más Grande s = s/d; % Normaliza la señal prom = sum(s.*s)/lon; % Promedio señal entera umbral = 0.02; % 2% de la energía promedio y = [0]; for i = 1:400:lon-400 % Ventaneo cada 10ms seg = s(i:i+399); % Segmentos e = sum(seg.*seg)/400; % Promedio de cada segmento % Si el promedio energético es mayor que la señal completa por el valor umbral if( e> umbral*prom) % Almacena en (y) sino es eliminado como espacio en blanco y = [y;seg(1:end)]; end; end; % Guarda .wav señal normalizada y sin ruido wavwrite(y,Fs,16,'F1b.wav') plot(y) % Grafica señal Normalizada sound(y,22050) % Reproduce Señal Normalizada 4.3.3. Promedio Se procede a grabar 5 veces el comando a reconocer lo cual genera 5 grabaciones distintas, las cuales se deben promediar para obtener una sola señal que caracterizara el comando grabado. Una vez más se debe Normalizar a la señal. CAPITULO 4: Desarrollo de Un sistema de Seguridad
  • 41. 34 Programa: %Programa que Realiza el Promedio de la Base de Datos de Grabaciones clearall; clc; Fs = 22050; % Frecuencia de Muestreo [rec1] = wavread('F1b.wav'); % Lee la primera grabación [rec2] = wavread('F2b.wav'); % Lee la segunda grabación [rec3] = wavread('F3b.wav'); % Lee la tercera grabación [rec4] = wavread('F4b.wav'); % Lee la cuarta grabación [rec5] = wavread('F5b.wav'); % Lee la quinta grabación % Crea el vector final de grabación prom=rec1; tam = length(rec5); fori = 1:1:tam prom(i) = ((rec1(i)+rec2(i)+rec3(i)+rec4(i)+rec5(i))/5); end; lon = length(prom); % Longitud del vector d = max(abs(prom)); % Obtiene el valor más Grande prom = prom/d; % Normaliza la señal % Guarda .wav señal Promediada wavwrite(prom,Fs,16,'FProm.wav') plot(prom) % Grafica señal Promediada sound(prom,Fs) % Reproduce Señal Promediada 4.3.4. Base De Datos Obtenidos los promedios de los comandos, se forma una base de datos con ellos, que servirán para comparar con las grabaciones en tiempo real de identificación del software. [k0,Fs,bits] = wavread('FProm.wav'); % Archivo De Promedio Fer [k1,Fs,bits] = wavread('AProm.wav'); % Archivo De Promedio Alexis [k2,Fs,bits] = wavread('EProm.wav'); % Archivo De Promedio Oxana 4.4. Desarrollo 4.4.1. Adquisición La adquisición de la señal ocurre dentro del programa en la función de GRABAR en él se adquieren señales de voz en archivos WAV con Frecuencia de muestreo de 22Khz, a 16 bits de resolución, mono canal y duración de 2 segundos. CAPITULO 4: Desarrollo de Un sistema de Seguridad
  • 42. 35 Parte del Programa: Fs = 22050; % Frecuencia de Muestreo s = wavrecord(2*Fs, Fs, 1); wavwrite(s,Fs,16,'Prueba.wav') % Guarda .wav señal grabada 4.4.2. Eliminación de silencios y Normalización La eliminación de silencio y ruido junto con la Normalización ocurre después de la adquisición de la señal en esta parte se hace uso del nivel de energía de la señal, tomando el valor máximo y normalizándolo a 1, por medio de la segmentación y ventanas de haming se elimina el ruido y los silencios para que solo se tenga la señal pura que contenga la información de la voz. Parte del Programa: Fs = 22050; % Frecuencia de Muestreo s = wavrecord(2*Fs, Fs, 1); wavwrite(s,Fs,16,'Prueba.wav') % Guarda .wav señal grabada lon = length(s); % Longitud del vector d = max(abs(s)); % Obtiene el valor más Grande s = s/d; % Normaliza la señal prom = sum(s.*s)/lon; % Promedio señal entera umbral = 0.02; % 2% de la energía promedio y = [0]; for i = 1:400:lon-400 % Ventaneo cada 10ms seg = s(i:i+399); % Segmentos e = sum(seg.*seg)/400; % Promedio de cada segmento % Si el promedio energético es mayor que la señal completa por el valor umbral if( e> umbral*prom) % Almacena en (y) sino es eliminado como espacio en blanco y = [y;seg(1:end)]; end; end; % Guarda .wav señal normalizada y sin ruido wavwrite(y,Fs,16,'Limpia.wav') plot(y) % Grafica señal Normalizada sound(y,22050) % Reproduce Señal Normalizada CAPITULO 4: Desarrollo de Un sistema de Seguridad
  • 43. 36 4.4.3. Parametrización La Parametrización u obtención de las características de la voz se realiza dentro de la función IDENTIFICAR, en esta función se toman las 3 señales de las bases de datos y se obtienen sus coeficientes LPC para analizar. Adquiridos los coeficientes LPC de las 3 señales de la base de datos y de la señal grabada, se realizan 3 algoritmos de medición de distancia, entre la señal grabada en tiempo real y cada una de las grabaciones dentro de la base de datos, obteniendo 3 vectores que contienen 0 (si la relación entre distancias es mayor al rango máximo) y 1 (si la relación entre distancias es menor al rango máximo). Posteriormente se suman los vectores de las relaciones y se obtiene un número entero el cual representa que cantidad de coeficientes LPC, se parecen a la voz grabada y a cada una de las bases de datos. Si este número es igual a 25 indica que la señal grabada y la base de datos son perfectamente iguales, mientras que si es igual a 0 indica que no poseen nada en común, el estándar mínimo en el cual el numero de coeficientes puede indicar que la relación corresponde a alguna de las bases de datos es si este número es igual o mayor a 17. [4] Parte del Programa: % Obtiene el numero de Coeficientes LPC num = (Fs/1024)+3; % Obtiene los coeficientes del filtro LPC de Fer W0 = lpc(k0,num); % Obtiene los coeficientes del filtro LPC de Alexis W1 = lpc(k1,num); % Obtiene los coeficientes del filtro LPC de Oxana W2 = lpc(k2,num); % Obtiene los coeficientes del filtro LPC de La Grabación de GUI Wx = lpc(kx,num); % Vector que contendrá las distancias entre Fer y la grabación d0=0; for z=1:25 % Obtiene la distancia cuadrática media d0(z)=sqrt((W0(z)-Wx(z))*(W0(z)-Wx(z))); if d0(z)<= 0.15 % Coloca un 1 en el vector si es próximo a Fer d0(z)=1; % Coloca un 0 en el vector si es lejano a Fer else d0(z)=0; end end % Vector que contendrá las distancias entre Alexis y la grabación CAPITULO 4: Desarrollo de Un sistema de Seguridad
  • 44. 37 d1=0; for z=1:25 % Obtiene la distancia cuadrática media d1(z)=sqrt((W1(z)-Wx(z))*(W1(z)-Wx(z))); if d1(z)<= 0.15 % Coloca un 1 en el vector si es próximo a Alexis d1(z)=1; % Coloca un 0 en el vector si es lejano a Alexis else d1(z)=0; end end % Vector que contendrá las distancias entre Oxana y la grabación d2=0; for z=1:25 % Obtiene la distancia cuadrática media d2(z)=sqrt((W2(z)-Wx(z))*(W2(z)-Wx(z))); if d2(z)<= 0.15 % Coloca un 1 en el vector si es próximo a Oxana d2(z)=1; % Coloca un 0 en el vector si es lejano a Oxana else d1(z)=0; end end % Contador que almacena el número de coeficientes que se parecen cont0=0; for i = 1:25 % Suma todos los valores de la cadena cont0 = d0(i)+cont0; end cont0 cont1=0; for j = 1:25 cont1 = d1(j)+cont1; end cont1 cont2=0; for x = 1:25 cont2 = d2(x)+cont2; end cont2 CAPITULO 4: Desarrollo de Un sistema de Seguridad
  • 45. 38 4.4.4. Reconocimiento del habla (Toma de decisión) Debido a que el análisis de predicción lineal es frecuencia y aunando que los fonemas y pronunciación en cada nombre de los usuarios es completamente diferente, la toma de decisión depende de la relación de coeficientes LPC entre la voz grabada y las grabaciones en la base de datos. Es identificado el usuario si sus coeficientes entran en un rango predispuesto, este rango se define por una serie de pruebas realizadas. SI el programa reconoce al usuario de acceso al sistema, indica en la interfaz gráfica de que usuario corresponde la voz y le permite seleccionar la acción a realizar en el menú de FUNCIONES DEL SISTEMA. Si no lo reconoció, no le da acceso al sistema por lo cual no podrá seleccionar ninguna acción a realizar. Parte del Programa: if (cont0 > 17) op = length(k0); % Predicción de la Señal por filtro predic = filter([0 -W0(2:end)],1,k0); error = k0 - predic; % Error % Vector de Autocorrelacion Rsw = xcorr(k0); R = Rsw(op:op+num); % Obtención R(0) G = sqrt(sum(W0.*R')); % Obtención G % Obtención de la envolvente H(z) envolvente = abs(G./fft(W0,op)); % Transformada de Fourier de la señal original SW = abs(fft(k0,op)); semilogy(SW(1:(op/2)),'g'); holdon; semilogy(envolvente(1:(op/2)),'b'); holdoff; title('Usuario Fernando Poceros','Fontname','Trebuchet MS','Fontangle','Italic','Fontweight','Bold','Fontsize',20,'color',[1 1 1]) xlabel('Frecuencia','Fontname','Trebuchet MS','Fontangle','Italic','Fontweight','Bold','Fontsize',15,'color',[1 1 1]) ylabel('Nivel de voz','Fontname','Dotum','Fontangle','Italic','Fontweight','Bold','Fontsize',15,'color',[1 1 1]) msgbox('Identificado: Fer'); ID=1; saveID.mat; elseif (cont1 > 17) op = length(k1); % Predicción de la Señal por filtro predic = filter([0 -W1(2:end)],1,k1); error = k1 - predic; % Error % Vector de Autocorrelacion CAPITULO 4: Desarrollo de Un sistema de Seguridad
  • 46. 39 Rsw = xcorr(k1); R = Rsw(op:op+num); % Obtención R(0) G = sqrt(sum(W1.*R')); % Obtención G % Obtención de la envolvente H(z) envolvente = abs(G./fft(W1,op)); % Transformada de Fourier de la señal original SW = abs(fft(k1,op)); semilogy(SW(1:(op/2)),'g'); holdon; semilogy(envolvente(1:(op/2)),'b'); holdoff; title('Usuario Alexis Villalobos','Fontname','Trebuchet MS','Fontangle','Italic','Fontweight','Bold','Fontsize',20,'color',[1 1 1]) xlabel('Frecuencia','Fontname','Trebuchet MS','Fontangle','Italic','Fontweight','Bold','Fontsize',15,'color',[1 1 1]) ylabel('Nivel de voz','Fontname','Dotum','Fontangle','Italic','Fontweight','Bold','Fontsize',15,'color',[1 1 1]) msgbox('Identificado: Alexis'); ID=2; saveID.mat; elseif (cont2 > 17) op = length(k2); predic = filter([0 -W2(2:end)],1,k2); % Predicción de la Señal por filtro error = k2 - predic; % Error % Vector de Autocorrelacion Rsw = xcorr(k2); R = Rsw(op:op+num); % Obtención R(0) G = sqrt(sum(W2.*R')); % Obtención G % Obtención de la envolvente H(z) envolvente = abs(G./fft(W2,op)); % Transformada de Fourier de la señal original SW = abs(fft(k2,op)); semilogy(SW(1:(op/2)),'g'); holdon; semilogy(envolvente(1:(op/2)),'b'); holdoff; title('UsuarioEyraOxana','Fontname','Trebuchet MS','Fontangle','Italic','Fontweight','Bold','Fontsize',20,'color',[1 1 1]) xlabel('Frecuencia','Fontname','Trebuchet MS','Fontangle','Italic','Fontweight','Bold','Fontsize',15,'color',[1 1 1]) ylabel('Nivel de voz','Fontname','Dotum','Fontangle','Italic','Fontweight','Bold','Fontsize',15,'color',[1 1 1]) msgbox('Identificado: Oxana'); ID=3; saveID.mat; elsemsgbox('No Identificado!!!!!'); end CAPITULO 4: Desarrollo de Un sistema de Seguridad
  • 47. 40 4.4.5. Selección de la Acción a realizar Una vez que el usuario es reconocido puede elegir entre 4 opciones: Abrir Puerta, Cerrar Puerta, Prender Luz y Apagar Luz, la variable ID indica a que usuario se reconoció, si: ID=1 se trato de Fernando, si ID=2 se trato de Alexis y si ID=3 se trato de Oxana, el programa permite a todos los usuarios poder realizar cualquiera de las 4 acciones. Parte del Programa: % MENU FUNCIONES DEL SISTEMA functionMenu_Callback(hObject, eventdata, handles) loadID; if ID==1 || ID==2 || ID==3 P0=get(handles.Menu,'Value'); switch P0 case 1, msgbox('No Selecciono Nada'); case 2, msgbox('Abriendo Puerta'); case 3, msgbox('Cerrando Puerta'); case 4, msgbox('Prendiendo Luz'); case 5, msgbox('Apagando Luz'); end else msgbox('No Identificado!!!'); end 4.4.6. Interfaz Grafica Es diseñada una interfaz de usuario - máquina para lograr la comunicación entre ambos fácil de entender, se utiliza MATLAB para crear una GUI, en esta se puede mostrar las gráficas de la señal de voz, los botones que permiten identificar al usuario y las funciones que se pueden realizar dentro la GUI. El programa MATLAB tiene la opción para realizar esta interfaz en su barra de funciones donde aparece el icono de GUIDE para crearla. CAPITULO 4: Desarrollo de Un sistema de Seguridad
  • 48. 41 Figura 4.2. Icono de GUIDE en MATLAB para crear interfaces Al seleccionar crear GUIDE, el programa da la opción de crear diferentes modos de GUIDES, la opción que se selecciono es la que esta como predeterminada (en blanco),en esta se puede diseñar la forma de la interfaz, con los botones o elementos necesarios. Figura 4.3. Selección de la GUI o abrir una nueva GUI Se escoge la GUIDE predeterminada para poder colocar los objetos necesarios. CAPITULO 4: Desarrollo de Un sistema de Seguridad
  • 49. 42 Figura 4.4. Inicio de la GUI con su ventana lateral izquierda de selección de objetos Una vez teniéndola la plantilla de la GUIDE se ajusta el tamaño, se colocan los botones, graficas, textos, imágenes, graficas, etc. Con los diferentes botones que se tienen al lado izquierdo de la pantalla, cuando se selecciona el botón y se coloca en el lugar que se requiere, se ajusta el tamaño y color de este. Figura 4.5. Colocación, edición y uso de un Botón en la GUI CAPITULO 4: Desarrollo de Un sistema de Seguridad
  • 50. 43 El diseño realizado para el trabajo fue el siguiente: Figura 4.6. Interfaz gráfica imagen de la GUI Esta es la Interfaz gráfica realizada. Figura 4.7. Interfaz gráfica del Reconocedor de Voz creado en MATLAB CAPITULO 4: Desarrollo de Un sistema de Seguridad
  • 51. 44 Dentro de las funciones aparecen recuadros donde da aviso la interface del estado del programa, los botones despliegan diferente información:  Botón Grabar: Este botón realiza la función de activar el micrófono y grabar durante dos segundos el comando a reconocer, en este caso es el nombre del usuario. Para posteriormente limpiar la señal de ruido y normalizarla, una vez hecho esto imprime la gráfica de la señal de voz en el recuadro de gráfica y aparece una ventana que indica que la grabación se ha realizado con éxito, puede observarse en la figura: Figura 4.8. Interfaz gráfica después de haber apretado el botón Grabar  Botón Identificar: El botón Identificar es el que cumple la función más importante del programa que es reconocer y tomar la decisión. Consta de las siguientes etapas: 1) Obtener los coeficientes LPC de la señal grabada y de las 3 señales de la base de datos de cada usuario, esto entrega 4 vectores que son las envolventes de la señal (Grabación, Fernando, Alexis y Oxana). 2) Después obtener la relación de la señal grabada con cada una de las señales de la base de datos, por medio de la distancia entre cada coeficiente LPC de cada uno de los 4 vectores. En esta etapa se da un rango de aceptación en el cual un coeficiente LPC al parecerse al otro se toma en cuenta o se desprecia, al final todos los coeficientes LPC de la CAPITULO 4: Desarrollo de Un sistema de Seguridad
  • 52. 45 relación se suman dando la relación de cuanto se parece la señal grabada con las 3 bases de datos. 3) La etapa final es la Toma de decisión la cual se realiza tomando en cuenta 2 condiciones, una que el número de coeficientes LPC que se tomaron en cuenta superen un número mínimo requerido para cada usuario y dos que el número de coeficientes LPC no sean iguales, ya que al tener dos relaciones iguales el programa entra en conflicto para decidir a qué usuario identificar. Figura 4.9. Interfaz gráfica después de haber apretado el botón Identificar  Botón Cerrar Sesión: Este botón se ocupa para cerrar la sesión y volver al inicio de la interfaz una vez que el usuario reconocido ha realizado alguna acción, este botón limpia las variables utilizadas y reinicia el programa general.  Botón Salir: El botón salir apaga y cierra la interfaz borrando todas las variables utilizas. Figura 4.10. Ventana que aparece después de presionar el botón Salir CAPITULO 4: Desarrollo de Un sistema de Seguridad
  • 53. 46  Menú Funciones Del Sistema: Dentro de este menú, están las opciones de Abrir Puerta, Cerrar Puerta, Apagar Luz y Cerrar Luz, se pueden agregar más opciones depende de las necesidades del usuario, su función es indicarle al programa que es lo que el usuario desea hacer. Figura 4.11. Menú de Funciones del Sistema que despliega las acciones que se puede realizar Figura 4.12. Ventana que aparece después de seleccionar la Acción de Abrir Puerta 4.4.7. Programa Completo El Programa completo se puede observar en los Anexos como Anexo 1. 4.5. Implementación Para la implementación de sistema de reconocimiento de voz, se fabricó una maqueta que simularía un Hogar, la cual tendría una puerta y un foco. Se realizaron algunos circuitos para poder hacer que la puerta se moviera con ayuda de un motor eléctrico y que el foco se prendiera y apagara, estos circuitos se pueden encontrar dentro de Anexos en Anexo 2. Para la conexión entre la computadora (la interfaz gráfica) y los circuitos de la maqueta se utilizó la tarjeta de adquisición de datos de National Instruments la cual puede ser reconocida por MATLAB. CAPITULO 4: Desarrollo de Un sistema de Seguridad
  • 54. 47 Figura 4.13. Maqueta e Interfaz grafica Figura 4.14. Tarjeta de Adquisición de datos USB6008 CAPITULO 4: Desarrollo de Un sistema de Seguridad
  • 55. 48 Capítulo 5. Pruebas y Resultados En este Capítulo se mostraran los resultados obtenidos al realizar pruebas con el programa de reconocimiento de voz, para poder obtener y comparar los objetivos alcanzados, las ventajas y desventajas del proyecto propuesto. Para realizar las siguientes pruebas, se usa la voz de uno de los usuarios y dependiendo de los resultados, se escogió el mejor lugar para realizar las pruebas de reconocimiento. Estas pruebas consisten en la comparación de los coeficientes LPC de la voz grabada en una base de datos y la voz en tiempo real, para estos hay un contador de cuantos coeficientes coinciden, por lo cual las siguientes pruebas muestran la cantidad de coeficientes que se aproximan a los originales en la base de datos. Existen 3 contadores denominados Cont 0 para la relación entre los coeficientes LPC de Fernando y la voz grabada al instante, Cont 1 corresponde a Alexis y Cont 2 corresponde a Oxana. Estas pruebas se realizaron en un lugar cerrado con un nivel de ruido de: 49.5-56 dBA Tabla 5.1. Pruebas con ruido de 49.5 a 56 dBA Alexis Cont 0 Cont 1 Cont 2 Alexis 11 20 9 Alexis 13 18 13 Fernando 12 19 9 Fernando 11 21 10 Oxana 10 15 12 Oxana 9 19 12 Estas pruebas se realizaron en un lugar abierto con un nivel de ruido de: 62.8-69.4 dBA Tabla 5.2. Pruebas con ruido de 62.8 a 69.4 dBA Alexis Cont 0 Cont 1 Cont 2 Alexis 14 19 11 Alexis 14 18 12 Fernando 12 18 8 Fernando 10 22 9 Oxana 9 12 13 Oxana 11 19 12 Estas pruebas se realizaron en un lugar con un nivel de ruido de: 66.2-75.4 dBA CAPITULO 5: Pruebas y Resultados
  • 56. 49 Tabla 5.3. Pruebas con ruido de 66.2 a 75.4 dBA Alexis Cont 0 Cont 1 Cont 2 Alexis 17 19 14 Alexis 18 18 16 Fernando 16 18 10 Fernando 17 22 17 Oxana 10 12 19 Oxana 17 19 12 El lugar que se escogió para las pruebas generales fue en donde se obtuvieron mejores resultados, en este caso en lugares con niveles de ruido entre 62.8-69.4 dBA. 5.1. Pruebas Generales En las pruebas generales se mostraran 20 resultados de pruebas realizadas por cada usuario, en las cuales cada usuario se graba mencionando los diferentes nombres con los que se programó; De esta manera se determinara el promedio de cada uno de los contadores, para establecer un rango de decisión. El número máximo de relación se muestra de color amarillo, mientras que el número menor se muestra en color verde. 5.1.1. Comparación de Contadores con usuario Alexis Tabla 5.4. Pruebas de Alexis mencionando Alexis Alexis Cont 0 Cont 1 Cont 2 Alexis 12 19 11 Alexis 14 18 13 Alexis 14 18 8 Alexis 10 22 11 Alexis 9 12 13 Alexis 11 19 12 Alexis 13 17 18 Alexis 9 19 10 Alexis 10 19 7 Alexis 11 19 9 Alexis 11 13 8 Alexis 14 19 11 Alexis 9 21 11 Alexis 9 17 12 Alexis 11 19 12 Alexis 12 17 12 Alexis 10 13 9 Alexis 12 16 11 Alexis 14 18 10 Alexis 14 15 9 Promedio 11.45 17.5 10.85 CAPITULO 5: Pruebas y Resultados
  • 57. 50 Tabla 5.5. Pruebas de Alexis mencionando Fernando Alexis Cont 0 Cont 1 Cont 2 Fernando 9 11 8 Fernando 9 12 6 Fernando 13 13 9 Fernando 12 14 9 Fernando 11 17 9 Fernando 9 9 9 Fernando 13 16 8 Fernando 11 11 9 Fernando 9 14 9 Fernando 14 15 10 Fernando 8 10 6 Fernando 12 8 10 Fernando 10 8 9 Fernando 8 10 4 Fernando 14 18 9 Fernando 10 15 9 Fernando 10 8 10 Fernando 11 10 10 Fernando 10 11 11 Fernando 8 13 9 Promedio 10.55 12.15 8.65 Tabla 5.6. Pruebas de Alexis mencionando Oxana Alexis Cont 0 Cont 1 Cont 2 Oxana 14 18 10 Oxana 12 14 9 Oxana 12 16 8 Oxana 14 12 13 Oxana 16 16 10 Oxana 13 13 10 Oxana 17 16 9 Oxana 12 12 9 Oxana 15 18 7 Oxana 14 14 12 Oxana 13 16 9 Oxana 14 10 11 Oxana 13 15 12 Oxana 12 20 12 Oxana 11 19 11 Oxana 19 18 10 Oxana 15 17 12 Oxana 10 14 11 Oxana 6 19 11 Oxana 15 13 8 Promedio 13.35 15.5 10.2 CAPITULO 5: Pruebas y Resultados
  • 58. 51 Con los Resultados Obtenidos, se determinó que el Usuario Alexis era reconocido de cualquier forma cuando se grababa su nombre, por otro lado cuando se grababa el nombre de otro usuario el reconocedor relacionaba su voz aunque el comando fuera erróneo. 5.1.2. Comparación de Contadores con usuario Fernando Tabla 5.7. Pruebas de Fernando mencionando Alexis Fernando Cont 0 Cont 1 Cont 2 Alexis 14 11 12 Alexis 18 9 9 Alexis 15 15 6 Alexis 18 15 9 Alexis 14 17 11 Alexis 18 13 11 Alexis 17 12 8 Alexis 19 17 8 Alexis 15 13 6 Alexis 18 13 9 Alexis 10 8 7 Alexis 16 13 8 Alexis 14 8 8 Alexis 13 12 7 Alexis 15 15 8 Alexis 14 15 13 Alexis 14 14 6 Alexis 16 13 8 Alexis 13 13 10 Alexis 19 15 7 Promedio 15.5 13.05 8.55 Tabla 5.8. Pruebas de Fernando mencionando Fernando Fernando Cont 0 Cont 1 Cont 2 Fernando 17 13 11 Fernando 16 10 4 Fernando 14 12 12 Fernando 14 8 10 Fernando 17 13 8 Fernando 12 10 9 Fernando 11 10 10 Fernando 14 13 12 Fernando 11 6 11 Fernando 15 8 10 Fernando 15 9 11 CAPITULO 5: Pruebas y Resultados
  • 59. 52 Fernando 14 13 12 Fernando 16 12 12 Fernando 17 13 9 Fernando 14 14 10 Fernando 13 10 11 Fernando 15 11 12 Fernando 14 12 10 Fernando 12 10 6 Fernando 11 9 12 Promedio 14.1 10.8 10.1 Continuación Tabla 5.8 Tabla 5.9. Pruebas de Fernando mencionando Oxana Fernando Cont 0 Cont 1 Cont 2 Oxana 15 14 10 Oxana 14 14 6 Oxana 17 15 13 Oxana 16 11 7 Oxana 20 10 8 Oxana 14 14 10 Oxana 15 12 11 Oxana 17 16 12 Oxana 14 17 11 Oxana 14 15 9 Oxana 15 10 11 Oxana 15 17 12 Oxana 18 18 11 Oxana 15 13 10 Oxana 15 17 11 Oxana 13 14 11 Oxana 14 10 9 Oxana 13 14 9 Oxana 12 12 10 Oxana 11 11 9 Promedio 14.85 13.7 10 Con los Resultados Obtenidos, se determinó que el Usuario Fernando era reconocido de cualquier forma cuando se grababa su nombre teniendo unas incidencias con el Usuario Alexis, por otro lado cuando se grababa el nombre de otro usuario el reconocedor relacionaba su voz aunque el comando fuera erróneo. CAPITULO 5: Pruebas y Resultados
  • 60. 53 5.1.3. Comparación de Contadores con usuario Oxana Tabla 5.10. Pruebas de Oxana mencionando Alexis Oxana Cont 0 Cont 1 Cont 2 Alexis 11 13 12 Alexis 10 19 11 Alexis 12 17 12 Alexis 16 18 12 Alexis 11 15 9 Alexis 14 18 12 Alexis 9 16 13 Alexis 11 15 15 Alexis 16 20 11 Alexis 11 16 11 Alexis 13 17 14 Alexis 11 15 14 Alexis 10 20 13 Alexis 12 13 12 Alexis 12 18 7 Alexis 13 17 10 Alexis 12 20 9 Alexis 11 15 12 Alexis 11 16 11 Alexis 13 18 14 Promedio 11.95 16.8 11.7 Tabla 5.11. Pruebas de Oxana mencionando Fernando Oxana Cont 0 Cont 1 Cont 2 Fernando 9 9 10 Fernando 10 13 8 Fernando 11 11 7 Fernando 8 10 8 Fernando 10 11 6 Fernando 12 14 10 Fernando 9 9 12 Fernando 11 12 10 Fernando 9 16 8 Fernando 10 17 11 Fernando 8 10 5 Fernando 11 17 7 Fernando 5 7 7 Fernando 9 10 6 Fernando 10 12 6 Fernando 13 14 8 Fernando 6 10 8 Fernando 8 10 10 Fernando 11 10 10 Fernando 7 11 7 Promedio 9.35 11.65 8.2 CAPITULO 5: Pruebas y Resultados
  • 61. 54 Tabla 5.12. Pruebas de Oxana mencionando Oxana Oxana Cont 0 Cont 1 Cont 2 Oxana 8 14 10 Oxana 9 12 11 Oxana 10 11 10 Oxana 15 12 11 Oxana 9 11 15 Oxana 10 13 11 Oxana 8 11 9 Oxana 9 14 10 Oxana 10 13 12 Oxana 9 8 8 Oxana 11 16 14 Oxana 10 12 11 Oxana 9 12 11 Oxana 9 11 10 Oxana 12 14 11 Oxana 4 13 11 Oxana 10 15 8 Oxana 8 12 11 Oxana 8 10 11 Oxana 7 16 8 Promedio 9.25 12.5 10.65 Con los Resultados Obtenidos, se determinó que el Usuario Oxana era reconocido de cualquier forma cuando se grababa su nombre teniendo unas incidencias con el Usuario Fernando, por otro lado cuando se grababa el nombre de otro usuario el reconocedor relacionaba su voz aunque el comando fuera erróneo. 5.1.4 Uso de los Promedios Durante las pruebas generales se obtuvieron Promedios en la relación entre LPC’s, estos promedios se muestran a continuación; A partir de ellos se obtuvieron el rango entre coeficientes que se deberán de colocar en el programa para poder obtener un reconocimiento de voz confiable y seguro. Alexis Los promedios que se obtuvieron se utilizaron para obtener el rango que debería de tener cada contador para el reconocimiento adecuado del individuo y se obtuvo que para el usuario Alexis: Cont0 estará entre 13 y 15, Cont1 estará entre 16 y 25 mientras que Cont2 estará entre 9 y 13. CAPITULO 5: Pruebas y Resultados
  • 62. 55 Tabla 5.13. Promedios Obtenidos para Alexis Fernando Se obtuvo que para el usuario Fernando: Cont0 estará entre 11 y 25, Cont1 estará entre 9 y 11 mientras que Cont2 estará entre 7 y 10. Tabla 5.14. Promedios Obtenidos para Fernando Oxana Se obtuvo que para el usuario Oxana: Cont0 estará entre 7 y 10, Cont1 estará entre 11 y 16 mientras que Cont2 estará entre 7 y 14. Tabla 5.15. Promedios Obtenidos para Oxana 5.2. Pruebas de Reconocimiento En las pruebas de Reconocimiento los usuarios grabaron los 3 comandos propios que cada uno tenía tratando de accesar al sistema como otro usuario, los resultados fueron los siguientes: Tabla 5.16. Resultados del Reconocimiento de Alexis Alexis Id. Oxana Id. Fernando Id. Alexis No identificado Alexis X Alexis X Alexis X Alexis X Alexis X Alexis X Fernando X Fernando X Palabra Cont 0 Cont 1 Cont 2 Alexis 11.45 17.5 10.85 Fernando 10.55 12.15 8.65 Oxana 13.35 15.5 10.2 Palabra Cont 0 Cont 1 Cont 2 Alexis 15.5 13.05 8.55 Fernando 14.1 10.8 10.1 Oxana 14.85 13.7 10 Palabra Cont 1 Cont 2 Cont 3 Alexis 11.95 16.8 11.7 Fernando 9.35 11.65 8.2 Oxana 9.25 12.5 10.65 CAPITULO 5: Pruebas y Resultados
  • 63. 56 Fernando X Fernando X Fernando X Fernando X Oxana X Oxana X Oxana X Oxana X Oxana X Oxana X Continuación Tabla 5.16. Algún usuario al querer accesar puede ser reconocido como si mismo a pesar de que no haya sido esa la palabra mencionada, Esto se debe a que el análisis es en frecuencia, por lo que en determinado momento puede ser reconocido como el mismo o no reconocido. Tabla 5.17. Resultados del Reconocimiento de Fernando Alexis Id. Oxana Id. Fernando Id. Alexis No identificado Alexis X Alexis X Alexis X Alexis X Alexis X Alexis X Fernando X Fernando X Fernando X Fernando X Fernando X Fernando X Oxana X Oxana X Oxana X Oxana X Oxana X Oxana X CAPITULO 5: Pruebas y Resultados
  • 64. 57 Tabla 5.18. Resultados del Reconocimiento de Oxana Alexis Id. Oxana Id. Fernando Id. Alexis No identificado Alexis X Alexis X Alexis X Alexis X Alexis X Alexis X Fernando X Fernando X Fernando X Fernando X Fernando X Fernando X Oxana X Oxana X Oxana X Oxana X Oxana X Oxana X 5.3. Pruebas con Intrusos o Personas no Registradas Para estas pruebas se utilizaron 3 sujetos prueba, Un hombre adulto, una mujer adulta y una niña, se trató de acceder al sistema como alguno de los usuarios, los resultados de las pruebas fueron los siguientes: Tabla 5.19. Resultados del Reconocimiento para un Hombre Adulto Hombre Adulto Id. Oxana Id. Fernando Id. Alexis No identificado Alexis X Alexis X Alexis X Alexis X Alexis X Alexis X Fernando X Fernando X Fernando X Fernando X Fernando X Fernando X Oxana X CAPITULO 5: Pruebas y Resultados
  • 65. 58 Oxana X Oxana X Oxana X Oxana X Oxana X Continuación Tabla 5.19. Tabla 5.20. Resultados del Reconocimiento para una Mujer Adulta Mujer Adulta Id. Oxana Id. Fernando Id. Alexis No identificado Alexis X Alexis X Alexis X Alexis X Alexis X Alexis X Fernando X Fernando X Fernando X Fernando X Fernando X Fernando X Oxana X Oxana X Oxana X Oxana X Oxana X Oxana X Tabla 5.21. Resultados del Reconocimiento para una Niña Niña Id. Oxana Id. Fernando Id. Alexis No identificado Alexis X Alexis X Alexis X Alexis X Alexis X Alexis X Fernando X Fernando X Fernando X Fernando X Fernando X Fernando X CAPITULO 5: Pruebas y Resultados
  • 66. 59 Oxana X Oxana X Oxana X Oxana X Oxana X Oxana X Continuación Tabla 5.21. 5.4. Solución del problema Se propone implementar este sistema de seguridad por reconocimiento de voz en áreas con niveles de ruido no mayores a 70dB, para que el sistema de reconocimiento de voz funcione de modo que exista menor probabilidad de error, esto incrementaría la seguridad. El sistema será seguro porque los coeficientes que se utilizaran en el software no podrán ser alterados por ninguna persona, debido a que cada uno contiene sus propios coeficientes inalterables en una base de datos establecida por el diseñador en la captura de voz. No se podrán agregar usuarios nuevos al instante, tendrán que ser agregados previamente por el proceso de adquisición y entrenamiento por lo cual es un proceso tardado y con acreditación del dueño, esto permite mayor confiabilidad al sistema. CAPITULO 5: Pruebas y Resultados
  • 67. 60 5.5. Estudio Socio Económico La realización de un estudio económico adecuado sobre el tamaño y esfuerzo requerido es una de las características fundamentales de un proyecto exitoso. El estudio está asociado con el esfuerzo, costo y el tiempo de las actividades identificadas del proyecto. El objetivo del estudio del proyecto es reducir los costos e incrementar los niveles de servicio y de calidad. Se realizó una estimación orientada a la función del software. Evaluando los factores de ajuste de complejidad de 0 a 5 donde:  0.- Sin influencia  1.- Incidental  2.- Moderado  3.- Medio  4.- Significativo  5.- Esencial Se contestaron las siguientes preguntas respondiendo con el grado de influencia que se tiene en el proyecto, esto para sacar una valoración de lo que contiene y realiza el software: 1.- ¿Requiere el sistema copias de seguridad fiables? R= 3 2.- ¿Se requiere comunicaciones de datos? R= 4 3.- ¿Existen funciones de procesamiento distribuido? R= 4 4.- ¿Es crítico el rendimiento? R= 3 5.- ¿Sera ejecutado el sistema en un entorno operativo existente y utilizado? R=5 6.- ¿Se requiere entrada de datos interactiva? R= 5 7.- ¿Requiere la entrada interactiva, que las traslaciones de entrada se hagan sobre múltiples pantallas o varias operaciones? R= 0 8.- ¿Se utilizan los archivos maestros de forma interactiva? R= 3 9.- ¿Son complejas las entradas, las salidas, los archivos o las peticiones? R=4 10.- ¿Es complejo el procesamiento interno? R= 5 11.- ¿Se ha diseñado el código para ser reutilizable? R= 4 12.- ¿Están incluidas en el diseño la conversión y la instalación? R= 5 CAPITULO 5: Pruebas y Resultados
  • 68. 61 13.- ¿Se ha diseñado el sistema para soportar múltiple instalaciones en diferentes organizaciones? R= 4 14.- ¿Se ha diseñado la aplicación para facilitar los cambios y ser fácilmente utilizada por el usuario? R= 5 Suma total de la valoración: 54 Sacamos los Parámetros de medida de pendiendo del factor de peso para evaluar el nivel de complejidad del software Figura 5.1. Análisis de Factor Peso (Plantilla) Nota: se multiplica la cuenta con el valor elegido ya sea simple medio o complejo (en este caso los números sombreados). Tabla 5.22. Análisis de PF (Factor de Peso) Parámetro de medida cuenta simple medio complejo Número de entradas usuario: 3 X 6 = 18 Número de salidas de usuario: 3 X 5 = 15 Numero peticiones al usuario: 1 X 6 = 6 Numero de archivos: 45 X 10 = 450 Numero interfaces externos: 1 X 10 = 10 Cuenta total 499 CAPITULO 5: Pruebas y ResultadosCAPITULO 5: Pruebas y Resultados
  • 69. 62 Evaluando la influencia de factores globales que afecten la aplicación: PF= cuenta total x (0.65+0.01 x (total de la valoración)) PF= 499 x (0.65+ 0.01 x (54))=593. 81 PF estimado: 593. 81 Datos históricos: Productividad media de la organización en proyectos similares: 100 PF/per Tarifa laboral: 300 $ /mes Coste por PF: 3 $ Costo estimado del proyecto: Coste total proyecto: PF estimado X coste por PF Esfuerzo estimado: PF estimado/ (Productividad media de la organización en proyectos) Tabla 5.23. Análisis de Costos Esfuerzo estimado: 5.9 personas-mes Coste total proyecto: 1,781.43 $ (del puro software, no incluye el mantenimiento ni la instalación) Tabla 5.24. Análisis Total de Costo Costo Mantenimiento básico del software 1200 Interfaz física usuario máquina. 4000 -11000 Tarjeta de adquisición de datos 2500 Diseño del área a colocar el reconocedor de voz y construcción del mismo Depende del área, lugar y la complejidad del diseño y construcción Base de dato (por persona) 500 Mantenimiento físico (básico). 1000 Total aproximado: $ 20,000 La estimación de costo con respecto a la instalación y diseño donde el software será implementado, incrementaría o disminuirá dependiendo del lugar y la complejidad del diseño, además de consultar el equipo y recursos con el que cuenta el cliente. Nota: El mantenimiento tanto del software como del físico, dependerá de igual medida a lo que el sistema necesite para estar en óptimas condiciones. CAPITULO 5: Pruebas y Resultados
  • 70. 63 CONCLUSIONES La seguridad de un hogar es la principal preocupación como habitante de la Cd. de México, Un sistema de seguridad por reconocimiento de voz puede no solo aumentarla si no también tener la tranquilidad de saber quién acceda al hogar. En un sistema de reconocimiento de voz, la toma de decisión es difícil debido a factores como la similitud de las palabras, el nivel de ruido del lugar donde se realizan las grabaciones y los estados de ánimo del usuario. El sistema de seguridad por voz será más confiable ya que pasara por diversos métodos siendo el más importante la predicción lineal, obtención de parámetros llamados coeficientes LPC/Cepstrum y condiciones implementadas por el programador, disminuyendo la probabilidad de error al reconocer al usuario; Aunque un aspecto importante a considerar y que el programador no puede corregir es si el usuario dice la palabra en un tono de extrema alegría o extrema tristeza ya que esto modifica las características de su voz afectando los coeficientes LPC como a su vez lo haría si el usuario está en estado alcohólico o inconveniente. Para corregir este problema se propuso tener más bases de datos del mismo usuario pero en diferentes estados de ánimo, así el usuario antes de identificarse podría indicar su estado de ánimo y el programa relacionaría su grabación en el momento, con la base de datos asignada para ese usuario en ese estado de ánimo (Comparación de coeficientes LPC en diferentes estados de ánimo), esto podría facilitar en gran medida el acceso a otros usuarios es por esa razón por la cual que no se implementó esta solución, y se optó por que el usuario grabara de forma correcta y como lo realizo en las grabaciones cuando se diseñó su base de datos. La seguridad por voz irá en aumento al paso de las diferentes etapas del sistema como filtrado, normalización, obtención de parámetros y pitch, tecnologías que vallan mejorando la confiabilidad y velocidad en la toma de decisión. Estas a su vez ayudaran en la implementación de sistemas de seguridad eficientes. La opción de usar MATLAB como herramienta principal permitió realizar una interfaz para un sistema de reconocimiento de voz de uso fácil, eficaz y con capacidad de ejecutar operaciones de procesamiento de señales llamada GUI. El sistema de Reconocimiento de voz ampliará en gran medida la seguridad del hogar y será la base de futuras implementaciones de seguridad total automatizada para el hogar, incluyendo control de ventanas, luces, puertas, plomería, instalaciones de gas, etc. Haciendo de este un proyecto base de Domótica. Se aprendió que para realizar un reconocedor de voz, se necesitan muchas partes tanto software como hardware que realicen cada una de sus funciones de manera adecuada, siendo el software el de mayor importancia, gracias a este se pueden programar los algoritmos para poder reconocer al usuario, pero el hardware también tiene su CONCLUSIONES
  • 71. 64 importancia debido a que al usar un micrófono mejor se puede obtener una mejor calidad en la señal adquirida y por lo tanto dejar que el software se encargue sólo del procesamiento de la señal y no tenga que desperdiciar tiempo en limpiarla, filtrarla y normalizarla. Se tuvieron algunos problemas durante la realización del proyecto, los cuales fueron los siguientes: El problema relacionado con la comparación entre la señal de voz adquirida y la base de datos de cada usuario (Coeficientes LPC), debido a que se tenía un alto procesamiento de datos que se tuvo que limitar para el rápido funcionamiento de este. La solución para este problema fue colocar contadores que indicaran el número de coeficientes LPC que se parecieron a los coeficientes LPC grabados en la Base de datos de cada usuario y el número más cercano al máximo de Coeficientes LPC será el usuario identificado, para el software es más fácil comparar un número contra otro, que un vector de miles de números contra otro vector de miles de números, no se comprometió la integridad o seguridad del reconocimiento sólo se agilizó el procesamiento del software para que al usuario le pareciera más agradable y fluido. Otro problema que se encontró fue que al aumentar la cantidad de usuarios el programa sería más extenso y la similitud entre cada usuario y sus coeficientes LPC podría converger en un punto, causando esto fallas en el sistema. Este problema se pudo solucionar programando los límites de relación de cada contador en relación con los demás haciéndolos más estrictos para que el software no pueda dar acceso a algún usuario si no lo ha reconocido de manera adecuada. De esta manera se pudieron solucionar los problemas que surgieron durante la realización del proyecto, los cuales funcionaron correctamente y no han presentado fallas o alteraciones que afecten el desempeño del proyecto. CONCLUSIONES
  • 72. 65 BIBLIOGRAFIA Y/O REFERENCIAS [1] Franco Galván, Jorge Andrés. “Reconocimiento de Voz para Niños con Discapacidad en el Habla”, Universidad de las Américas departamento de Ingeniería Electrónica 2010, Puebla, México. [2] Cruz Beltrán, Luis. A. y Acevedo Mosqueda, Marco. A. “Aplicación del Reconocimiento de Voz de un Hablante Mediante una Red Neuronal Artificial Back propagation y Coeficientes LPC sobre un Canal Telefónico” [3]Schroeder, Manfred R..“ComputerSpeechRecognition, Compression andSinthesis”. [4]Kai-Fu, Lee.“AutomaticSpeechRecognition”. [5]Sreiner, Erich.“Matemáticas para las ciencias aplicadas”. Editorial Reverté 2009. [6] Pereira Rama, Antonio. “Procesamiento Digital de la Señal Sonora Utilizando Matlab”. [7] Romero Bauset, José Vicente; Dolores Rosello, Maria y Zalaya Báez, Ricardo. “Fundamentos Matemáticos para la Ingeniería con MATLAB”, Universidad Politécnica de Valencia, España. [8] “InsideSpeechRecognition”, Consulta: http://www.tldp.org/HOWTO/Speech- Recognition-HOWTO/inside.html , Fecha de consulta: 25 de Abril del 2012. [9]Harrington, Jonathan y Cassidy, Steve.“Techniques in Speech Acoustics”, KluwerAcademicPublishers [10] Barragán Guerrero, Diego Orlando. “Manual de interfaz gráfica de usuario en MATLAB”, Universidad Técnica Particular de Loja. Escuela de Electrónica y Telecomunicaciones. [11] Faúndez Zanuy, Marcos. “Tratamiento Digital de Voz e Imagen con Aplicación a la Multimedia”, Marcombo. [12] Gómez, J.C. “Apuntes: Medidas de distancia y Reconocimiento de Vocales”, Consulta: http://www.eie.fceia.unr.edu.ar/%7Eprodivoz/apuntes_index/pdf/, Fecha de consulta: 30 de Junio del 2012 [13] “VOICEBOX: Librería de MATLAB para el reconocimiento del habla”, Consulta: http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html. , Fecha de consulta: 15 de Abril del 2012 [14]Rabiner, Johanson. “Digital Processing Of Speech Signals”. [15] Help (ayuda del explorador), “MATLAB 2012” BIBLIOGRAFIA Y/O REFERENCIAS
  • 73. 66 ANEXOS Anexo 1. Programa Completo % INICIO DE LA GUI (NO EDITAR) functionvarargout = recvoc(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @recvoc_OpeningFcn, ... 'gui_OutputFcn', @recvoc_OutputFcn, ... 'gui_LayoutFcn', [] ,... 'gui_Callback', []); ifnargin&&ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end ifnargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % INICIALIZA LA GUI functionrecvoc_OpeningFcn(hObject, eventdata, handles, varargin) ID=0; saveID.mat; handles.output = hObject; guidata(hObject, handles); % SALIDAS DE LA GUI functionvarargout = recvoc_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; % BOTON GRABAR functiongrabar_Callback(hObject, eventdata, handles) Fs = 22050; % Frecuencia de Muestreo s = wavrecord(2*Fs, Fs, 1); wavwrite(s,Fs,16,'Prueba.wav') % Guarda .wav señal grabada lon = length(s); % Longitud del vector d = max(abs(s)); % Obtiene el valor más Grande s = s/d; % Normaliza la señal prom = sum(s.*s)/lon; % Promedio señal entera ANEXOS
  • 74. 67 umbral = 0.02; % 2% de la energía promedio y = [0]; for i = 1:400:lon-400 % Ventaneo cada 10ms seg = s(i:i+399); % Segmentos e = sum(seg.*seg)/400; % Promedio de cada segmento if( e> umbral*prom) % Si el promedio energético es mayor que la señal completa por el valor umbral y = [y;seg(1:end)]; % Almacena en (y) sino es eliminado como espacio en blanco end; end; % Guarda .wav señal normalizada y sin ruido wavwrite(y,Fs,16,'Limpia.wav') plot(y) % Grafica señal Normalizada sound(y,22050) % Reproduce Señal Normalizada title('Grafica de Voz','Fontname','Trebuchet MS','Fontangle','Italic','Fontweight','Bold','Fontsize',20,'color',[1 1 1]) xlabel('Tiempo','Fontname','Trebuchet MS','Fontangle','Italic','Fontweight','Bold','Fontsize',15,'color',[1 1 1]) ylabel('Nivel de voz','Fontname','Dotum','Fontangle','Italic','Fontweight','Bold','Fontsize',15,'color',[1 1 1]) msgbox('Grabacion terminada'); % BOTON IDENTIFICAR functionIdentificar_Callback(hObject, eventdata, handles) % Lee el archivo De Promedio Fernando [k0,Fs,bits] = wavread('FProm.wav'); % Lee el archivo De Promedio Alexis [k1,Fs,bits] = wavread('AProm.wav'); % Lee el archivo De Promedio Oxana [k2,Fs,bits] = wavread('EProm.wav'); % Lee el archivo que se grabo en la GUI [kx,Fs,bits] = wavread('Limpia.wav'); loadID.mat; % Obtiene el numero de Coeficientes num = (Fs/1024)+3; % Obtiene los coeficientes del filtro LPC de Fer W0 = lpc(k0,num); % Obtiene los coeficientes del filtro LPC de Alexis W1 = lpc(k1,num); % Obtiene los coeficientes del filtro LPC de Oxana W2 = lpc(k2,num); % Obtiene los coeficientes del filtro LPC de La Grabación de GUI Wx = lpc(kx,num); ANEXOS
  • 75. 68 % Vector que contendrá las distancias entre Fer y la grabación d0=0; for z=1:25 % Obtiene la distancia cuadrática media d0(z)=sqrt((W0(z)-Wx(z))*(W0(z)-Wx(z))); if d0(z)<= 0.15 % Coloca un 1 en el vector si es próximo a Fer d0(z)=1; % Coloca un 0 en el vector si es lejano a Fer else d0(z)=0; end end % Vector que contendrá las distancias entre Alexis y la grabación d1=0; for z=1:25 % Obtiene la distancia cuadrática media d1(z)=sqrt((W1(z)-Wx(z))*(W1(z)-Wx(z))); if d1(z)<= 0.15 % Coloca un 1 en el vector si es próximo a Alexis d1(z)=1; % Coloca un 0 en el vector si es lejano a Alexis else d1(z)=0; end end % Vector que contendrá las distancias entre Oxana y la grabación d2=0; for z=1:25 % Obtiene la distancia cuadrática media d2(z)=sqrt((W2(z)-Wx(z))*(W2(z)-Wx(z))); if d2(z)<= 0.15 % Coloca un 1 en el vector si es próximo a Oxana d2(z)=1; % Coloca un 0 en el vector si es lejano a Oxana else d2(z)=0; end end % Contador que almacena el numero de coeficientes que se parecen cont0=0; for i = 1:25 % Suma todos los valores de la cadena cont0 = d0(i)+cont0; end cont0 cont1=0; for j = 1:25 cont1 = d1(j)+cont1; end ANEXOS