Está en la página 1de 81

INSTITUTO POLITECNICO NACIONAL

Escuela Superior de Ingeniera Mecnica y Elctrica


Ingeniera en Comunicaciones y Electrnica

Sistema de Seguridad Por


Reconocimiento de Voz

TESIS
Que para Obtener el Ttulo de:
Ingeniero en Comunicaciones y Electrnica

PRESENTAN
Prez Badillo Eyra Oxana
Poceros Martnez Fernando
Villalobos Ponce Jos Alexis

ASESORES
M. en C. Jimnez Hernndez Mario
Ing. Patricia Lorena Ramrez Rangel
Mxico, D.F., Septiembre 2013

RESUMEN

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 micrfono y sta sea reconocida en la
base de datos existente en ese momento. Este tipo de proyectos han sido aceptados
usando metodologas desde la comparacin de plantillas hasta anlisis de espectros en
hogares desde que se tuvo la necesidad de mejorar la seguridad del hogar.

El sistema en s posee un entorno grfico en la computadora por medio del software


MATLAB llamado GUI, que proporciona las selecciones de grabacin, donde la seal de
voz es ingresada a la computadora, grabada y es procesada por los algoritmos del
programa que modifican la seal llamado Prediccin Lineal, obteniendo los parmetros
LPC significativos de la seal de voz, para luego ser almacenados en la computadora. La
seleccin de reconocimiento permite que la palabra sea comparada con la base de datos
almacenada en la computadora en un proceso llamado comparacin de coeficientes
LPC, dicha base de datos ya fue procesada digitalmente por el programa, esta seleccin
reconoce la palabra que fue grabada por el usuario al momento de querer ingresar a su
hogar. El entorno grfico proporciona, por otra parte, un anlisis grfico de las palabras
grabadas y reconocidas. Como el Sistema de Reconocimiento de Voz es un sistema de
procesamiento digital de seales de voz, el anlisis grfico en el reconocimiento es un
anlisis del espectro de frecuencias de la seal 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 mtodos, los cuales limiten la posibilidad de error de identificacin ya sea
entre usuarios almacenados o no, la dificultad ms grande de este proyecto se debi a
que si el usuario cambia su tono de voz el sistema podra no reconocerlo, esto se debe a
que si el usuario dice su contrasea en estado de ebriedad, de tristeza o felicidad su voz
cambia y por consiguiente tambien los parmetros LPC.

INDICE

NDICE
Resumen
ndice
ndice de Figuras
ndice de Tablas
Objetivo General
Objetivos Especficos
Planteamiento del problema
Hiptesis
Justificacin

Pg.
I
II
IV
V
1
1
1
2
2

Captulo 1. Conceptos importantes en los Reconocedores de Voz


Introduccin
1.1. Historia del reconocedor de voz
1.2. Orden Cronolgico de los Reconocedores de Voz
1.3. Caractersticas de la seal de voz
1.3.1. Articulacin
1.3.2. Seal Acstica
1.3.3. Percepcin Auditiva
1.4. Funcionamiento de un sistema de reconocimiento de voz

3
3
3
4
5
6
8
10
11

Captulo 2. Mtodos y Etapas para el Reconocimiento de Voz


2.1. Digitalizacin de la seal de voz
2.1.1. Codificacin de la seal de voz
2.1.2. Muestreo y Cuantizacion

12
12
12
13

2.2. Mtodos de Reconocimiento de Voz


2.2.1. Aproximacin en Base a Plantillas
2.2.2. Prediccin Lineal
2.2.3. Anlisis Cepstral
2.3. Diagrama de Flujo del Reconocedor de Voz
2.4. Etapas del Reconocimiento de Voz
2.4.1. Generacin de la seal Acstica
2.4.2. Conversin A/D o Adquisicin
2.4.3. Pre-procesamiento
2.4.4. Eliminacin de Ruido y Normalizacin
2.4.5. Filtro Pre-nfasis
2.4.6. Segmentacin
2.4.7. Extraccin de las Caractersticas

17
18
20
21
21
22
22
22
24
24
25
25
26

II

INDICE
2.4.8. Calculo de la Distancia
2.4.9. Toma de Decisin

26
27

Captulo 3. Planteamiento del problema

28

Captulo 4. Desarrollo de un Sistema de Seguridad por Reconocimiento


de Voz
4.1. Metodologa
4.2. Micrfono
4.3. Entrenamiento y Base de Datos
4.3.1. Adquisicin
4.3.2. Eliminacin de Silencios y Normalizacin
4.3.3. Promedio
4.3.4. Base de Datos
4.4. Desarrollo
4.4.1. Adquisicin
4.4.2. Eliminacin de Silencios y Normalizacin
4.4.3. Parametrizacin
4.4.4. Reconocimiento de Habla (Toma de decisin)
4.4.5. Seleccin de la Accin a Realizar
4.4.6. Interfaz Grafica
4.4.7. Programa Completo
4.5. Implementacin

31
31
32
32
32
33
33
34
34
34
35
36
38
40
40
46
46

Captulo 5. Pruebas y Resultados


5.1. Pruebas Generales
5.1.1. Comparacin de Contadores con usuario Alexis
5.1.2. Comparacin de Contadores con usuario Fernando
5.1.3. Comparacin de Contadores con usuario Oxana
5.1.4. Uso de los promedios
5.2. Pruebas de Reconocimiento
5.3. Pruebas Con intrusos o personas no Identificadas
5.4. Solucin del Problema
5.5. Estudio Socio Econmico

48
49
49
51
53
54
55
57
59
60

Conclusiones
Bibliografa y/o Referencias
Anexos
Anexo1
Programa Completo
Anexo 2
Diagrama de Conexin
Glosario

63
65
66
66
72
73

III

INDICE DE FIGURAS

NDICE DE FIGURAS
Figura 1.1.
Figura 1.2.
Figura 1.3.
Figura 2.1.
Figura 2.2.
Figura 2.3.
Figura 2.4.
Figura 2.5.
Figura 2.6.
Figura 2.7.
Figura 2.8.
Figura 2.9.
Figura 2.10.
Figura 2.11.
Figura 2.12.
Figura 2.13.
Figura 2.14.
Figura 2.15.
Figura 2.16.
Figura 2.17.
Figura 3.1.
Figura 3.2.
Figura 3.3.
Figura 3.4.
Figura 4.1.
Figura 4.2.
Figura 4.3.
Figura 4.4.
Figura 4.5.
Figura 4.6.
Figura 4.7.
Figura 4.8.
Figura 4.9.
Figura 4.10.
Figura 4.11.
Figura 4.12.
Figura 4.13.
Figura 4.14.
Figura 5.1.

Proceso de Comunicacin del Habla


rganos del cuerpo que intervienen en el aparato fonador
Diagrama a Bloques del Proceso General Del Reconocimiento de voz
Diferentes tipos de Transductores Elctrico Acsticos
Seales Senoidales Muestreadas a diferentes valores
Seal Cuantizada con 4 y 16 bits respectivamente
Seal Cuantizada Uniformemente
Seal Cuantizada No Uniformemente
Procesos en la que la seal obtiene sus caractersticas principales
Diagrama de Flujo de un Reconocedor de Voz
Diagrama de generacin de la seal acstica
Diagrama de la adquisicin de Voz
Seal tratada Digitalmente para ser muestreada
Diagrama de la digitalizacin de la seal de Voz
Diagrama de eliminacin de ruido y Normalizacin
Diagrama de los filtros de nfasis
Diagrama de segmentacin, ventaneo y recorte de la seal acstica
Diagrama que explica los procesos de extraccin de caractersticas
Formula que muestra el clculo realizado para obtener las distancias
Diagrama que muestra el proceso para obtener y comparar las distancias
Peligros En Mxico
Intento de robo en Mxico
Tecnologa de Proteccin y/o seguridad
Seguridad en el hogar (Entrada principal)
Micrfono que se usara en el proyecto
Icono de GUIDE en MATLAB para crear interfaces
Seleccin de la GUI o abrir una nueva GUI
Inicio de la GUI con su ventana lateral izquierda de seleccin de objetos
Colocacin, edicin y uso de un Botn en la GUI
Interfaz grfica imagen de la GUI
Interfaz grfica del Reconocedor de Voz creado en MATLAB
Interfaz grfica despus de haber apretado el botn Grabar
Interfaz grfica despus de haber apretado el botn Identificar
Ventana que aparece despus de presionar el botn Salir
Men de Funciones del Sistema que despliega las acciones
que se puede realizar
Ventana que aparece despus de seleccionar la Accin de Abrir Puerta
Maqueta e Interfaz grafica
Tarjeta de Adquisicin de datos USB6008
Anlisis de Factor Peso (Plantilla)

6
7
11
13
14
15
16
16
18
21
22
22
23
24
24
25
25
26
26
27
28
29
29
30
32
41
41
42
42
43
43
44
45
45
46
46
47
47
61

IV

INDICE DE TABLAS

NDICE DE TABLAS
Tabla 5.1.
Tabla 5.2.
Tabla 5.3.
Tabla 5.4.
Tabla 5.5.
Tabla 5.6.
Tabla 5.7.
Tabla 5.8.
Tabla 5.9.
Tabla 5.10.
Tabla 5.11.
Tabla 5.12.
Tabla 5.13.
Tabla 5.14.
Tabla 5.15.
Tabla 5.16.
Tabla 5.17.
Tabla 5.18.
Tabla 5.19.
Tabla 5.20.
Tabla 5.21.
Tabla 5.22.
Tabla 5.23.
Tabla 5.24.

Pruebas con ruido de 49.5 a 56 dBA


Pruebas con ruido de 62.8 a 69.4 dBA
Pruebas con ruido de 66.2 a 75.4 dBA
Pruebas de Alexis mencionando Alexis
Pruebas de Alexis mencionando Fernando
Pruebas de Alexis mencionando Oxana
Pruebas de Fernando mencionando Alexis
Pruebas de Fernando mencionando Fernando
Pruebas de Fernando mencionando Oxana
Pruebas de Oxana mencionando Alexis
Pruebas de Oxana mencionando Fernando
Pruebas de Oxana mencionando Oxana
Promedios Obtenidos para Alexis
Promedios Obtenidos para Fernando
Promedios Obtenidos para Oxana
Resultados del Reconocimiento de Alexis
Resultados del Reconocimiento de Fernando
Resultados del Reconocimiento de Oxana
Resultados del Reconocimiento para un Hombre Adulto
Resultados del Reconocimiento para una Mujer Adulta
Resultados del Reconocimiento para una Nia
Anlisis de PF (Factor de Peso)
Anlisis de Costos
Anlisis Total de Costo

48
48
49
49
50
50
51
51
52
53
53
54
55
55
55
55
56
57
57
58
58
61
62
62

OBJETIVOS

OBJETIVO GENERAL
Disear un sistema de seguridad para el hogar que funcione en base al reconocimiento
de voz.

OBJETIVOS ESPECFICOS
a) Aplicar mtodos acsticos, matemticos y fsicos de la voz para identificar y reconocer
a los dueos del hogar.
b) Analizar la transmisin, aplicacin y manipulacin de las seales de voz para poderlas
utilizar en el sistema de seguridad
c) Aplicar un software que funcione como interfaz con el usuario y que adems realice
las comparaciones y clculos 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 ms innovadores sistemas de
seguridad que interacten con el dueo y que sean capaces de tener un procesamiento
de informacin veloz y precisa que les permita tomar decisiones rpidas y confiables.
Se propone el diseo, implementacin y mejora de sistemas de reconocimiento de voz,
por medio de algoritmos implementados en un software (MATLAB) para analizar la seal
capturada por un micrfono y obtener un mejor reconocimiento de la voz.

OBJETIVOS

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
mtodos de cuantificacin de la seal 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 ms preciso que otros.

JUSTIFICACION
Debido a la inseguridad actual que se presenta en la Ciudad de Mxico 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.

CAPITULO 1: Conceptos importantes en los Reconocedores

Captulo 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 afn 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 bsicos 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 seales de voz que se necesitan manejar.
Se darn a conocer los diferentes tipos de Mtodos 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.
Despus se enfocara al planteamiento del problema relacionado con la realidad que vive
Mxico 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, mtodos y etapas vistos.
Por ltimo se darn las conclusiones, observaciones y problemas encontrados del
trabajo desarrollado as como un estudio socio-econmico para calcular el costo del
proyecto.

1.1. Historia del Reconocedor de Voz


La historia de los primeros Reconocedores de voz comienza hace 40 aos pero los
sucesos ms 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
telfonos celulares ya ofrecan servicios de marcado activado por voz.
En los 1990's en el sector Salud se inicia la generacin de reportes clnicos 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 radiologa, cardiologa,
etc.

CAPITULO 1: Conceptos importantes en los Reconocedores


En 1995 se desarrollan los primeros prototipos de aparatos electrodomsticos Whirlpool
Corp.
Actualmente las PC's integran utileras de voz. Microsoft Corp.: Facilidades para
construir objetos de comandos de voz (voice-commandobjects) en Win95. CreativeLabs
integra Procesamiento automtico en la mayora de sus tarjetas soundblaster. Compaq y
PureSpeech desarrollan conjuntamente tecnologa de voz. SeagateTech compr 25% de
DragonSystems.

1.2. Orden Cronolgico De los Reconocedores de Voz


1870's Alexander Graham Bell:
Quera construir un sistema/dispositivo que hiciera el habla visible a las personas con
problemas auditivos. Resultado: el telfono
1880's Tihamir Nemes:
Solicita permiso para una patente para desarrollar un sistema de transcripcin
automtica que identificara secuencias de sonidos y los imprimiera (texto). Pero fue
rechazado como "Proyecto no Realista"
30 aos despus AT&T Bell Laboratories:
Construye la primera mquina capaz de reconocer voz (basada en Templates) de los 10
dgitos del ingls. Requera extenso reajuste a la voz de una persona, pero una vez
logrado tena 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 mayora de los investigadores reconoce que era un proceso mucho ms intrincado y
sutil de lo que haban anticipado. Por lo tanto empiezan a reducir los alcances y se
enfocan a sistemas ms especficos:
Dependientes del Locutor.
Flujo discreto de habla (con espacios / pausasentre palabras)
Vocabulario pequeo (menor o igual a 50 palabras)
Estos sistemas empiezan a incorporar tcnicas de normalizacin del tiempo (minimizar
diferencia en velocidad del habla)
Adems, ya no buscaban una exactitud perfecta en el reconocimiento.
Despus:
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

Principios 1970's:
Se produce el 1er Producto de reconocimiento de voz, el VIP100de
ThresholdTechnology Inc. (utilizaba un vocabulario pequeo, dependiente del locutor, y
reconoca palabras discretas). Gana el U.S. NationalAward en 1972.
Luego:
Nace el inters de ARPA del U.S. Department of Defense, y gracias al lanzamiento de
grandes proyectos de investigacin 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 mdulos de:

Anlisis lxico (conocimiento lxico)


Anlisis sintctico (Estructura de Palabras)
Anlisis semntico (Significado)
Anlisis pragmtico (Intencin)

80's a 90's:
Surgen los sistemas de vocabulario amplio, que ahora son la norma. (Ms 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 tcnico), entre otros.

[3]

1.3. Caractersticas de la seal 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 espaol.

CAPITULO 1: Conceptos importantes en los Reconocedores

Existen varias maneras para analizar y describir el habla. Los enfoques ms


comnmente usados son:
1. Articulacin: Anlisis de cmo el humano produce los sonidos del habla.
2. Seal Acstica: Anlisis de la seal de voz como una secuencia de sonidos.
3. Percepcin Auditiva: Anlisis de cmo el humano procesa el habla.
Los tres enfoques proveen ideas y herramientas para obtener mejores y ms eficientes
resultados en el reconocimiento.

Figura 1.1.Proceso de Comunicacin del Habla


En la imagen anterior se observa que partes del odo intervienen en el proceso de
comunicacin del habla.

1.3.1.

Articulacin

La Articulacin se compone del sistema fonador que es un conjunto de rganos que


intervienen en la produccin de sonidos. Tambin llamado aparato bucal o articulatorio.
El aparato fonador consiste en tres grupos de rganos diferenciados [Figura 1.2]:
rganos de respiracin-cavidades infra-glticas: pulmones, bronquios y trquea.
rganos de fonacin-cavidades glticas: laringe, cuerdas vocales y resonadores nasal, bucal y farngeo.
rganos de articulacin-cavidad supra-glticas: paladar, lengua, dientes, labios y
glotis.
[2]

CAPITULO 1: Conceptos importantes en los Reconocedores

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. Especficamente, 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 articulacin centra su atencin en el aparato vocal: Garganta, boca, nariz, en donde
se producen los sonidos del habla.

Garganta: Contiene las cuerdas vocales, cuya vibracin 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 articulacin
Dientes
Puente alveolar (puente seo atrs de los dientes superiores)

CAPITULO 1: Conceptos importantes en los Reconocedores

Paladar duro
Paladar suave o velum
Articuladores
Labios
Lengua

[1]

1.3.2. Seal Acstica


Un reconocedor no puede analizar los movimientos en la boca. En su lugar, la fuente de
informacin es la seal de voz misma.
El Habla es una seal analgica, es decir, un flujo continuo de ondas sonoras y silencios.
El conocimiento de la ciencia de la acstica se utiliza para identificar y describir los
atributos del habla que son necesarios para un reconocimiento de voz efectivo.
Algunas caractersticas importantes del anlisis acstico son:

Frecuencia y amplitud
Todos los sonidos causan movimientos entre las molculas 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 ms simples son los
sonidos puros (pure tones), y se pueden representar grficamente por una onda sinoidal.

Frecuencia: Nmero 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 comnmente como la habilidad que tiene una fuente vibrante de
sonido de causar que otro objeto vibre gracias a ella.
La mayora de los sonidos incluyendo del habla tienen una frecuencia dominante llamada
frecuencia fundamental tambin 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


Sumadas a la frecuencia fundamental hay otras frecuencias que contribuyen al timbre
del sonido. (Son las que nos permiten distinguir una trompeta de un violn, etc. o las
voces de diferentes personas)
Algunas bandas de la frecuencia secundarias juegan un rol importante en la distincin de
un fonema de otro. Se les llama formantes y son producidas por la resonancia.
La garganta, boca y nariz son cmaras de resonancia que amplifican las bandas o
frecuencias formantes contenidas en el sonido generado por las cuerdas vocales. Estas
formantes amplificadas dependen del tamao y forma de la boca y si el aire pasa o no
por la nariz.
Los patrones de las formantes son ms fuertes (distinguibles) para vocales que para las
consonantes no sonoras.

Estructura Armnica y Ruido


El habla no es un tono puro es continuacin de mltiples frecuencias y se representa
como una onda compleja.
Vocales se componen de 2 o ms ondas simples son ricos en frecuencias secundarias y
contienen estructuras internas que incluyen ondas cclicas y a cclicas.
Las ondas a cclicas no tienen patrones repetitivos generalmente llamados ruido forman
parte de todos los fonemas sonoros, consonantes y semivocales.
Las frecuencias y caractersticas de los patrones a cclicos proveen informacin
importante sobre la identidad de los fonemas.
La identidad de las consonantes tambin 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
tcnicas como la transformada rpida de Fourier (FFT) generando espectrogramas.
La complejidad de las formas de onda de los fonemas y las constantes transiciones de
un patrn a otro dificultan el anlisis de los patrones utilizando las representaciones
complejas de las ondas.
Los patrones armnicos y de ruido se muestran con ms claridad utilizando los
espectrogramas de banda ancha.
La localizacin (la distancia entre ellas) y cambio en las formantes ayudan a identificar
fonemas y palabras.

CAPITULO 1: Conceptos importantes en los Reconocedores


Coarticulacin
Los fonemas aparentemente tienen parmetros acsticos claramente definidos, pero
ms bien, los fonemas tienden a ser abstracciones implcitamente definidas por la
pronunciacin de palabras en un lenguaje.
La forma acstica de un fonema depende fuertemente del contexto acstico en el que
sucede a ste efecto se le llama coarticulacin.
Investigadores, utilizan este concepto para distinguir entre la caracterstica conceptual de
un sonido del habla (fonema) y una instancia o pronunciacin especfica de ese fonema
(tono).

[1]

1.3.3. Percepcin Auditiva


La variabilidad del habla producida por coarticulacin y otros factores hacen del anlisis
de la voz extremadamente difcil.
La facilidad del humano en superar estas dificultades sugiere que un sistema basado en
la percepcin auditiva podra ser un buen enfoque desafortunadamente el conocimiento
de la percepcin humana es incompleto, lo que se sabe es que el sistema auditivo est
adaptado a la percepcin de la de voz.
El odo humano detecta frecuencias de 20Hz a 20,000 Hz pero es ms sensible al rango
entre 1000 y 6000 Hz. Tambin es ms sensible a cambios pequeos en la frecuencia
en el ancho de banda crtico para el habla. Adems el patrn de sensibilidad a cambios
en el tono (pitch) no corresponde a la escala lineal de frecuencias de ciclos por segundo
de la acstica.
Para representar mejor al patrn de percepcin acstica, se tiene una escala llamada
mel-scale, la cual es una escala logartmica que representa los niveles de la seal.
El humano no procesa frecuencias individuales independientemente, como lo sugiere el
anlisis acstico. En su lugar escucha grupos de frecuencias por lo cual es capaz de
distinguirlas de ruidos alrededor.

10

CAPITULO 1: Conceptos importantes en los Reconocedores


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 algn 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 (traduccin de seal a texto).

Comunicacin: Enva lo reconocido al sistema (Software/Hardware) que lo


requiere.

Componentes en una aplicacin:

Figura 1.3. Diagrama a Bloques del Proceso General


Del Reconocimiento de voz
Existe una comunicacin bilateral en aplicaciones, en las que la interfaz de voz est
ntimamente relacionada al resto de la aplicacin. Estas pueden guiar al reconocedor
especificando las palabras o estructuras que el sistema puede utilizar. Otros sistemas
slo tienen una comunicacin unilateral.
Los Procesos de pre-procesamiento, reconocimiento y comunicacin deberan ser
invisibles al usuario de la interfaz. El usuario lo nota en el desempeo del sistema de
manera indirecta como: certeza en el reconocimiento y velocidad. Estas caractersticas
las utiliza para evaluar una interfaz de reconocimiento de voz.
[6]

11

CAPITULO 2: Mtodos y Etapas para Reconocimiento de Voz

Captulo 2. Mtodos y Etapas para el Reconocimiento


de Voz
En este Captulo se darn a conocer los diferentes tipos de Mtodos 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. Digitalizacin de la seal de Voz


Para poder manipular la seal de voz este debe de ser transformada a una seal digital
para poder ser utilizada por el software de programacin, este proceso se lleva a cabo
en etapas con consideraciones variables que hacen que la adquisicin de la seal sea
de forma correcta.

2.1.1. Codificacin de la seal de voz


La codificacin de una seal se refiere al mtodo para convertir digitalmente el habla
para utilizarlo en diversos ambientes, desde juguetes parlantes, CDs hasta
transmisiones va telefnica.
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 presentacin digital de la voz nos provee tambin con las bases para el
reconocimiento y sntesis de voz.
El mtodo convencional o secuencial de almacenamiento de datos, la cinta magntica
requiere que se le adelante y regrese hasta encontrar la posicin buscada. Es propensa
a dao mecnico, no se pueden editar (cut/paste) y no duran mucho tiempo en uso.
Algunos factores que se deben de considerar para codificar la seal dependiendo del
uso que se le d son:

Memoria y Ancho de banda necesario para flexibilidad de uso.


Costo de transmisin.
Rangos de calidad
Aplicacin.
Codificadores de Voz.
Inteligibilidad: La mayor calidad posible
Error e inteligibilidad.
Edicin Simple.
Eliminacin del silencio: Ahorrar espacio
Time-scaling: Reproduccin ms rpida.

12

CAPITULO 2: Mtodos y Etapas para Reconocimiento de Voz

Adaptacin de Velocidad
Robustez

2.1.2. Muestreo y Cuantizacin


El habla es una seal continua y varia en el tiempo. Las variaciones en la presin del
aire se irradian desde la cabeza y se transmiten por el aire.
Un micrfono convierte esas variaciones en presin del aire a variaciones en voltaje. Una
seal Anloga se puede transmitir a travs de un circuito telefnico (voltaje) o
almacenados en una cinta magntica (flujo magntico).
En el Mundo Real los estmulos sensoriales son anlogos. Sin embargo, para las
computadoras es necesario digitalizar la seal (primera fase del procesamiento de la
seal)
Para esto se usan series de valores numricos con una frecuencia regular (frecuencia de
muestreo). El nmero posible de valores est limitado por el nmero de bits disponible
para representar a cada muestra.

Figura 2.1. Diferentes tipos de Transductores Elctrico Acsticos

13

CAPITULO 2: Mtodos y Etapas para Reconocimiento de Voz

Muestreo

El muestreo asigna un valor numrico a la seal en unidades discretas de tiempo


constante dependiendo de la frecuencia Nyquist que especfica la frecuencia mxima a
la que una seal puede reproducirse completamente.
El teorema de Nyquist establece que:
Frecuencia muestreo = 2 veces la frecuencia mxima de la seal para poder
reproducirla.
Para poder reproducir la seal anloga debe pasar por un filtro pasa-bajas a la
frecuencia de muestreo (quitar ruidos creados por el muestreo).

Figura 2.2. Seales Senoidales Muestreadas a diferentes valores


Si la seal vara ms rpido se requiere una T ms pequea por lo tanto un menor ancho
de banda de frecuencias.
El humano produce seales de Voz desde los 100(hombre)-400(mujer) Hertz hasta los
15000Hz. Telfono: 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.

14

CAPITULO 2: Mtodos y Etapas para Reconocimiento de Voz

Cuantizacin

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. Seal Cuantizada con 4 y 16 bits respectivamente


Esto se puede ver como la resolucin:
1. El error o diferencia entre la seal original y la reconstruida se percibe como
ruido.
2. Por lo tanto, a mayor resolucin mayor cuantizacin y menor ruido como
consecuencia.
3. La resolucin (# de bits por muestra) se describe generalmente en trminos de la
relacin seal-a-ruido (signaltonoise ratio o SNR).
4. A mayor SNR es mayor la fidelidad de la seal digitalizada.
5. SNR aproximadamente 2^B (B=bits/muestra)
6. Es independiente de la frecuencia de muestreo.
Existen diferentes tcnicas de cuantizacion:

Cuantizacin uniforme
Cuantizacin no uniforme
Cuantizacin logartmica
Cuantizacin vectorial

15

CAPITULO 2: Mtodos y Etapas para Reconocimiento de Voz

Cuantificacin uniforme

En los cuantificadores uniformes o lineales la distancia entre los niveles de


reconstruccin es siempre la misma, la mayora usan un nmero de niveles que es una
potencia de 2. No hacen ninguna suposicin acerca de la seal a cuantificar, de all que
no proporcionen los mejores resultados.
Su ventaja es que son ms fciles y econmicos al implementarlos.

Figura 2.4. Seal Cuantizada Uniformemente

Cuantificacin no uniforme

El problema de la cuantificacin uniforme es que conforme aumenta la amplitud de la


seal, tambin aumenta el error. Este problema lo resuelve el cuantificador logartmico
de forma parcial. Sin embargo, si conocemos la funcin de la distribucin de
probabilidad, podemos ajustar los niveles de reconstruccin a la distribucin de forma
que se minimice el error cuadrtico medio. Esto significa que la mayora de los niveles de
reconstruccin se den en la vecindad de las entradas ms frecuentes y,
consecuentemente, se minimice el error (ruido).

Figura 2.5. Seal Cuantizada No Uniformemente

16

CAPITULO 2: Mtodos y Etapas para Reconocimiento de Voz

Cuantificacin logartmica

Las seales de voz pueden tener un rango dinmico superior a los 60 dB, por lo que
para conseguir una alta calidad de voz se deben usar un elevado nmero de niveles de
reconstruccin. Sin embargo, interesa que la resolucin del cuantificador sea mayor en
las partes de la seal de menor amplitud que en las de mayor amplitud. Por tanto, en la
cuantificacin lineal se desperdician niveles de reconstruccin y, consecuentemente,
ancho de banda. Esto se puede mejorar incrementando la distancia entre los niveles de
reconstruccin conforme aumenta la amplitud de la seal.
Para evitar desperdicio de niveles de reconstruccin y de ancho de banda se utiliza un
mtodo sencillo para mejorar el incremento de la distancia entre los niveles de
reconstruccin conforme aumenta la amplitud de la seal. Para conseguir esto se hace
pasar la seal por un compresor logartmico antes de la cuantificacin. Esta seal
comprimida puede ser cuantificada uniformemente. A la salida del sistema la seal pasa
por un expansor. A esta tcnica se le llama compresin.

Cuantificacin vectorial

Este mtodo cuantifica los datos en bloques de N muestras. En este tipo de


cuantificacin, el bloque de N muestras se trata como un vector N-dimensional. La
cuantificacin vectorial ofrece mejores resultados que la cuantificacin escalar, sin
embargo, es ms sensible a los errores de transmisin y lleva consigo una mayor
complejidad computacional.
[4,6,9]

2.2. Mtodos de Reconocimiento de voz


En el reconocimiento del habla, la seal de voz se ingresa a un procesamiento para
producir una representacin de la voz en forma de secuencia de vectores o
agrupaciones de valores que se denominan parmetros, que deben representar la
informacin contenida en la envolvente del espectro.
Hay que tener en cuenta que el nmero de parmetros debe ser reducido, para no
saturar la base de datos, ya que mientras ms parmetros tenga la representacin
menos fiables son los resultados y ms costosa la implementacin.
Existen distintos mtodos de anlisis para la extraccin de caractersticas, y se
concentran en diferentes aspectos representativos. En este trabajo de tesis utilizaremos
los dos de mayor importancia para el anlisis de la voz tomando en cuenta su
predecesor de Aproximacin en base a plantillas:

Anlisis de prediccin lineal (LPC)


Anlisis Cepstral

[8]

17

CAPITULO 2: Mtodos y Etapas para Reconocimiento de Voz


2.2.1. Aproximacin en base a plantillas
Teora que ha dado lugar a toda una familia de tcnicas de reconocimiento de voz,
causando un considerable avance durante las dcadas de los 70s y 80s.

Figura 2.6. Procesos en la que la seal obtiene sus caractersticas principales


El principio es simple, se almacenan patrones de voz tpicos (templates) como modelos
de referencia en un diccionario de palabras candidato. El reconocimiento se lleva a cabo
comparando la expresin desconocida a los patrones almacenados (templates)
seleccionando el que ms se le parece usualmente se construye patrones para las
palabras completas.
Ventaja: Se evitan errores debidos a la segmentacin o clasificacin de unidades
pequeas que pueden variar mucho acsticamente, como los fonemas.
Desventaja: Cada palabra requiere de su patrn y el tiempo de preparar y compararlos
se vuelve demasiado al incrementarse el tamao del vocabulario.
Inicialmente se pensaba que se restringa slo a reconocimiento dependiente del locutor.
Sin embargo se logro un reconocimiento independiente del loc. Utilizando tcnicas de
Cluster para generar automticamente grupos de patrones para cada palabra del
vocabulario.
Tambin pas de ser para el reconocimiento de palabras aisladas a habla continua
utilizando tcnicas de programacin dinmica para encontrar la mejor cadena de
patrones.

Medicin de caractersticas.

Se trata bsicamente de una tcnica de reduccin de datos en la cual el gran nmero de


datos en la seal grabada es transformado en un grupo ms pequeo de caractersticas
que describen las propiedades importantes de la seal.

18

CAPITULO 2: Mtodos y Etapas para Reconocimiento de Voz


El tipo de caractersticas que se calculan depende de:
1. Tiempo para calcularlas
2. Espacio para almacenarlas
3. Facilidad de Implementacin.
Anlisis mediante banco de filtros, Una muestra de voz se puede aproximar como una
combinacin lineal de muestras anteriores.

Determinacin de similitud entre patrn de referencia de voz y


serial capturada.

R(t) T(t)
Se busca una funcin de alineamiento w(t) que mapee R y las partes correspondientes
de T.
El criterio de correspondencia es la minimizacin de una medida de distancia D(T,R)
Por lo tanto se busca una w(t) tal que mstica d(T(t), R(W(t))) funcin de ponderacin
deriva de w(t)
D(T,R)= min INTEGRAL
dw(t)
Se buscan una alineacin en tiempo "optima" a travs de una curva que relacione el eje
de tiempo m de R al eje de tiempo del patrn T.
m=w(n)
Restricciones w(I)=1
W(NT)=NR
Para determinar el tipo de la alineacin se propusieron diversas tcnicas:
1.
2.
3.
4.

Alineamiento lineal m=w(n)=(n-1)[(NR-1)/(NT-1)]+1


Mapeo de eventos temporales (significativos) en ambos patrones
Mxima Correlacin se vara la funcin para maximizar la correlacin entre RyT
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 decisin

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.

19

CAPITULO 2: Mtodos y Etapas para Reconocimiento de Voz


2.2.2. Prediccin Lineal
Se trata de una de las tcnicas ms potentes de anlisis de voz, y uno de los mtodos
ms tiles para codificar voz con buena calidad.
Su funcin es representar la envolvente espectral de una seal digital de voz en una
forma comprimida, utilizando la informacin de un modelo lineal, con lo cual se
proporcionan unas aproximaciones a los parmetros 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 funcin 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)

Estimacin de los LPC

Una estima o prediccin de s(n) basada en p muestras anteriores, puede calcularse


como lo muestra la siguiente frmula:

( )

y el error de prediccin se obtiene de:

( )

( )

Los LPC se obtienen minimizando un criterio cuadrtico en los errores de prediccin,


para cada cuadro en que es dividido el segmento de voz.
El nmero de coeficientes LPC que se obtienen dependen la frecuencia de muestreo
como se indica en la siguiente frmula:
(

[5]
20

CAPITULO 2: Mtodos y Etapas para Reconocimiento de Voz


2.2.3. Anlisis Cepstral
Como se sabe los sonidos de la voz se pueden representar mediante un espectrograma,
que indica las componentes frecuenciales de la seal de voz.
Es as entonces como el espectro nos proporciona informacin acerca de los parmetros
del modelo de produccin de voz, tanto de la excitacin como del filtro que representa el
tracto vocal. Estos coeficientes fueron utilizados solo para mostrar la seal acstica no
se usaron para clculos, 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

21

CAPITULO 2: Mtodos y Etapas para Reconocimiento de Voz


2.4. Etapas del Reconocimiento de Voz
Las etapas para el correcto funcionamiento de un Reconocedor de Voz se mencionan a
continuacin.

2.4.1. Generacin de la Seal Acstica

Figura 2.8. Diagrama de generacin de la seal acstica

2.4.2. Conversin A/D o Adquisicin

Figura 2.9. Diagrama de la adquisicin de Voz

Obtencin de la seal por el micrfono


El micrfono es un transductor electro-acstico. Su funcin es la de transformar la
presin acstica ejercida sobre su capsula por las ondas sonoras en energa elctrica.
Cuando un micrfono est operando las ondas de sonido hacen que vibre el elemento
magntico del micrfono causando una corriente elctrica hacia la tarjeta de sonido,
donde el convertidor A/D bsicamente graba los voltajes elctricos en intervalos
especficos.

Muestreo
El muestreo es para transformar una seal analgica o seal contina a una seal digital
o discreta, es decir de la seal original (analgica) 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 seal en
una unidad de tiempo y se mide en Hz (ciclos por segundo).

22

CAPITULO 2: Mtodos y Etapas para Reconocimiento de Voz

Figura 2.10. Seal tratada Digitalmente para ser muestreada


La frecuencia de audio que percibe el ser humano est entre los 20 Hz y 20kHz,
frecuencias ms elevadas el odo humano no lo percibe.
La frecuencia de la voz se encuentre entre frecuencias de 100Hz a 8kHz.

Resolucin o Cuantificacin

[4]

El proceso de cuantificacin es uno de los pasos que se siguen para lograr


la digitalizacin de una seal analgica. Este proceso es convertir una sucesin de
muestras de amplitud continua en una sucesin de valores discretos preestablecidos
segn el cdigo utilizado.
Durante el proceso de cuantificacin se mide el nivel de tensin de cada una de las
muestras, obtenidas en el proceso de muestreo, y se les atribuye un valor finito de
amplitud, seleccionado por aproximacin dentro de un margen de niveles previamente
fijado.
La cuantificacin ms comnmente usada, es de 8 bits, mnimo requerido para una
calidad baja, puede mejorarse su S/R con una tcnica no lineal de cuantificacin, se
obtienen excelentes resultados aumentando la cuantificacin a 16 bits.

[3,4]

23

CAPITULO 2: Mtodos y Etapas para Reconocimiento de Voz


Ganancia
El siguiente paso es amplificar las seales a niveles que sean manejables. La seal
vocal tiene componentes de frecuencia que pueden llegar a los 10 kHz., sin embargo la
mayor parte de los sonidos vocales tiene energa espectral significativa hasta los 5 Khz.
solamente los sonidos fricativos poseen componentes que pueden llegar a los 10 kHz.
Para tomar y no eliminar informacin se debe amplificar la ganancia.

2.4.3. Pre-procesamiento

Figura 2.11. Diagrama de la digitalizacin de la seal de Voz


Para el anlisis de la seal de voz se realiza un pre-procesamiento de la seal vocal.
Esto sucede a travs de tcnicas que permitan extraer la informacin acstica
directamente a partir de la seal vocal emitida, se realiza el muestreo y algn tipo de
cuantizacion.

[3]

2.4.4. Eliminacin de Ruido y Normalizacin

Figura 2.12. Diagrama de eliminacin de ruido y Normalizacin


Primero se realiza un filtrado de la seal para reducir los efectos del ruido que acompaa
la seal de voz ingresada, sin este filtrado se tendran datos que no necesitamos.
Tambin se hace una segmentacin, esto es detectar el inicio y final de la seal de voz
para eliminar el ruido inicial y final, esto ayuda a optimizar memoria y hacer ms veloz el
tiempo de clculo para comparaciones y por supuesto evitar errores, para hacer esto se
hace uso del nivel de energa.

24

CAPITULO 2: Mtodos y Etapas para Reconocimiento de Voz


2.4.5. Filtro Pre-nfasis
Se aplica un filtro digital pasa altas de primer orden a la seal, para enfatizar las
frecuencias altas de los formantes por dos razones, primero para que no se pierda
informacin durante la segmentacin, ya que la mayora de la informacin est contenida
en las frecuencias bajas, en segundo remueve la componente DC de la seal, aplanando
espectralmente la seal.

Figura 2.13. Diagrama de los filtros de nfasis

[8]

2.4.6. Segmentacin
La segmentacin consiste en cortar la seal en segmentos de anlisis. La seal de voz
es asumida como estacionaria en estos segmentos.
Durante la segmentacin los segmentos son guardados cada uno como la columna de
una matriz, para el posterior procesamiento de la seal de voz.
Para el proceso una ventana de Hamming de 30ms es aplicada a la seal de voz,
enfatizada previamente con el filtro de pre-nfasis. Con un desplazamiento tpico 10ms
entre cada ventaneo.

Figura 2.14. Diagrama de segmentacin, ventaneo y recorte de la seal acstica

[9]
25

CAPITULO 2: Mtodos y Etapas para Reconocimiento de Voz

2.4.7. Extraccin de las caractersticas

Figura 2.15. Diagrama que explica los procesos de extraccin de caractersticas


En este paso se utiliza el mtodo de Prediccin lineal para obtener coeficientes LPC y
con ayuda de Cepstrum entender el espectro frecuencia de la seal que se va a
reconocer.

[9]

2.4.8. Calculo de Distancia


Una caracterstica fundamental de los sistemas de reconocimiento es la forma en que los
vectores caractersticos son combinados y comparados con los patrones de referencia.
Para poder realizar estas operaciones es necesario definir una medida de distancia entre
los vectores caractersticos.
Algunas de las medidas de distancia ms utilizadas son las distancias o mtricas
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 caractersticos f y f, puede definirse la siguiente mtrica inducida por la norma
Lp:

(2.5)
Figura 2.16. Formula que muestra el clculo realizado para obtener las distancias

26

CAPITULO 2: Mtodos y Etapas para Reconocimiento de Voz

En el algoritmo primero se define el tamao 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 Decisin


La toma de decisin se hace en cuestin de la diferencia entre las distancias de la seal
graba que tiene su base de datos y la seal que se est comparando, se toma la
decisin 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 seal es
muy parecida a la envolvente de la seal grabada en base de datos.

27

CAPITULO 3: Planteamiento del Problema

Captulo3. Planteamiento del Problema


La inseguridad ciudadana se ha convertido en uno de los grandes desafos de las
sociedades contemporneas. El impacto del fenmeno sobre la calidad de vida de los
ciudadanos obliga a los gobiernos nacionales, locales y a los sectores organizados de la
sociedad, a disear esquemas alternativos a los existentes, siendo su propsito el
disminuir los niveles de inseguridad, sin sacrificar el avance de la Democracia y el
respeto por los Derechos Humanos y las Garantas Ciudadanas.
La seguridad es un pre requisito bsico para que las personas puedan satisfacer sus
necesidades bsicas y desarrollar sus potencialidades como seres humanos, se ha
constituido como un Derecho Humano exigible.
El robo a casa habitacin es uno de los delitos cuya incidencia ha aumentado en la
ciudad de Mxico, de acuerdo con un estudio de la empresa Multisistemas de Seguridad
Industrial.

Figura 3.1.Peligros En Mxico

De acuerdo con estadsticas dadas a conocer por funcionarios de la Secretara de


Seguridad Pblica y de la Procuradura General de Justicia (PGJDF), ambas del Distrito
Federal, as como el Consejo Ciudadano de Seguridad Pblica y Procuracin de Justicia,
en 68 por ciento de robos a casa habitacin la vctima fue abordada cuando llegaba a su
domicilio; 20 por ciento abrieron la puerta al asaltante, quien se hace pasar por prestador
de algn servicio y en 12 por ciento el atraco ocurri cuando no haba nadie en la
vivienda.

28

CAPITULO 3: Planteamiento del Problema


El subprocurador de Averiguaciones Previas Desconcentradas de la PGJDF, Hiram
Almeida Estrada, indic que la mayor incidencia de ese ilcito es en las delegaciones
Tlalpan, Gustavo A. Madero e Iztapalapa.

Figura 3.2. Intento de robo en Mxico


La tecnologa puede ser una herramienta sumamente til y poderosa para reducir el
riesgo a ser vctimas de la inseguridad. Proponer y disear un sistema tecnolgico
ayudara a reducir los riesgos de ser vctimas de un robo a domicilio, es vital para el
desarrollo de satisfacer la necesidad de vivir seguro y confiado al ciudadano.

Figura 3.3.Tecnologa de Proteccin y/o seguridad

29

CAPITULO 3: Planteamiento del Problema


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 telfono etc. De
esta forma el dueo y su familia podrn sentirse seguros de vivir en un lugar controlado
por ellos.
Usando tecnologa 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)

30

CAPITULO 4: Desarrollo de Un sistema de Seguridad

4. Desarrollo de un Sistema de Seguridad por


Reconocimiento de Voz
4.1. Metodologa
Dentro de la metodologa del proyecto se requiere:

Generar una base de datos.


Filtrar y normalizar la seal adquirida.
Obtener sus coeficientes LPC.
Comparacin de los coeficientes LPC segn 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 micrfono y en formato .WAV a travs de MATLAB a 22 KHz de
muestreo y 16 bits de resolucin.
Posteriormente se hizo el filtro que elimina el ruido y aumentaba su energa para que las
grabaciones sean parecidas a sus parmetros (Normalizacin).
Al tener las 5 muestras sin ruido y normalizadas se obtiene el promedio de estas para
tener una nica seal promediada con la seal de voz del usuario.
Los coeficientes LPC se obtienen con una funcin dentro de MATLAB, el nmero de
coeficientes que se utilizan son 25, dado por la siguiente ecuacin:
(

.(3.1)

Con esto se obtienen vectores de 25 coeficientes LPC para cada una de las seales, que
se comparan en distancia para obtener la relacin entre la seal grabada y las 3 seales
guardadas en la base de datos.
La medida de la distancia se realiza elemento por elemento uno a uno, entre la seal de
voz grabada y alguna de la de la base de datos.
Al final de la medicin de las distancias se suman los coeficientes que tengan menos del
rango dado por el programa para dar el nmero exacto de coeficientes LPC en que se
parecen las seales.
Este procedimiento se realiza 3 veces comparando la seal grabada con cada una de las
bases de datos.
La toma de decisin se hace en base a que la seal grabada debe tener como mnimo
cierto nmero de coeficientes LPC, que se parecen a la seal almacenada en la base de
datos de ese usuario, si alguna de esas relaciones supera ese mnimo se da por hecho
que la voz grabada es de ese usuario, por lo cual el programa reconoce a la persona y le

31

CAPITULO 4: Desarrollo de Un sistema de Seguridad


da acceso al sistema, si ninguna de las relaciones supera el mnimo 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. Micrfono
Las caractersticas principales del Micrfono, con el cual la adquisicin de la seal 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
cmodamente.
Ofrece la manera ideal de grabar un sonido ntido y claro.

El principal inconveniente es que el micrfono, captan tanto lo se requiere como lo que


no: ruido del entorno, reflexiones acsticas, etc.

Figura 4.1. Micrfono que se usara en el proyecto

4.3. Entrenamiento y Base de Datos


4.3.1. Adquisicin
Mediante el Software de MATLAB se crea un programa en el editor, con el cual se puede
adquirir seales de voz en archivos WAV con Frecuencia de muestreo de 22Khz, a 16
bits de resolucin, mono canal y duracin 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 seal grabada

32

CAPITULO 4: Desarrollo de Un sistema de Seguridad


4.3.2. Eliminacin de Silencios y Normalizacin
Adquirida la seal de voz, se procede a eliminar el ruido por medio de un Filtro para
obtener la seal caracterstica, aunado a esto se debe Normalizar la seal, debido a que
en MATLAB la seal debe tomar valores desde -1 hasta 1 para poder utilizarla de forma
adecuada sin perdidas.

Programa:
%Programa de Grabaciones de la Base de Datos (Normalizacin y eliminacin de ruido)
Fs = 22050;
s = wavrecord(2*Fs, Fs, 1);
wavwrite(s,Fs,16,'F1.wav')
lon = length(s);
d = max(abs(s));
s = s/d;
prom = sum(s.*s)/lon;
umbral = 0.02;
y = [0];

% Frecuencia de Muestreo
% Guarda .wav seal grabada
% Longitud del vector
% Obtiene el valor ms Grande
% Normaliza la seal
% Promedio seal entera
% 2% de la energa promedio

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 energtico es mayor que la seal 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 seal normalizada y sin ruido
wavwrite(y,Fs,16,'F1b.wav')
plot(y)
% Grafica seal Normalizada
sound(y,22050)
% Reproduce Seal 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 seal que caracterizara el
comando grabado.
Una vez ms se debe Normalizar a la seal.

33

CAPITULO 4: Desarrollo de Un sistema de Seguridad


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 grabacin
[rec2] = wavread('F2b.wav');
% Lee la segunda grabacin
[rec3] = wavread('F3b.wav');
% Lee la tercera grabacin
[rec4] = wavread('F4b.wav');
% Lee la cuarta grabacin
[rec5] = wavread('F5b.wav');
% Lee la quinta grabacin
% Crea el vector final de grabacin
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 ms Grande
prom = prom/d;
% Normaliza la seal
% Guarda .wav seal Promediada
wavwrite(prom,Fs,16,'FProm.wav')
plot(prom)
% Grafica seal Promediada
sound(prom,Fs)
% Reproduce Seal Promediada

4.3.4. Base De Datos


Obtenidos los promedios de los comandos, se forma una base de datos con ellos, que
servirn para comparar con las grabaciones en tiempo real de identificacin 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. Adquisicin
La adquisicin de la seal ocurre dentro del programa en la funcin de GRABAR en l se
adquieren seales de voz en archivos WAV con Frecuencia de muestreo de 22Khz, a 16
bits de resolucin, mono canal y duracin de 2 segundos.

34

CAPITULO 4: Desarrollo de Un sistema de Seguridad


Parte del Programa:
Fs = 22050;
s = wavrecord(2*Fs, Fs, 1);
wavwrite(s,Fs,16,'Prueba.wav')

% Frecuencia de Muestreo
% Guarda .wav seal grabada

4.4.2. Eliminacin de silencios y Normalizacin


La eliminacin de silencio y ruido junto con la Normalizacin ocurre despus de la
adquisicin de la seal en esta parte se hace uso del nivel de energa de la seal,
tomando el valor mximo y normalizndolo a 1, por medio de la segmentacin y
ventanas de haming se elimina el ruido y los silencios para que solo se tenga la seal
pura que contenga la informacin de la voz.

Parte del Programa:


Fs = 22050;
s = wavrecord(2*Fs, Fs, 1);
wavwrite(s,Fs,16,'Prueba.wav')
lon = length(s);

d = max(abs(s));
s = s/d;
prom = sum(s.*s)/lon;
umbral = 0.02;
y = [0];

% Frecuencia de Muestreo
% Guarda .wav seal grabada
% Longitud del vector

% Obtiene el valor ms Grande


% Normaliza la seal
% Promedio seal entera
% 2% de la energa promedio

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 energtico es mayor que la seal 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 seal normalizada y sin ruido
wavwrite(y,Fs,16,'Limpia.wav')
plot(y)
% Grafica seal Normalizada
sound(y,22050)
% Reproduce Seal Normalizada

35

CAPITULO 4: Desarrollo de Un sistema de Seguridad


4.4.3. Parametrizacin
La Parametrizacin u obtencin de las caractersticas de la voz se realiza dentro de la
funcin IDENTIFICAR, en esta funcin se toman las 3 seales de las bases de datos y
se obtienen sus coeficientes LPC para analizar.
Adquiridos los coeficientes LPC de las 3 seales de la base de datos y de la seal
grabada, se realizan 3 algoritmos de medicin de distancia, entre la seal grabada en
tiempo real y cada una de las grabaciones dentro de la base de datos, obteniendo 3
vectores que contienen 0 (si la relacin entre distancias es mayor al rango mximo) y 1
(si la relacin entre distancias es menor al rango mximo).
Posteriormente se suman los vectores de las relaciones y se obtiene un nmero 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 nmero es igual a 25 indica que la seal grabada y la base de datos son
perfectamente iguales, mientras que si es igual a 0 indica que no poseen nada en
comn, el estndar mnimo en el cual el numero de coeficientes puede indicar que la
relacin corresponde a alguna de las bases de datos es si este nmero 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 Grabacin de GUI
Wx = lpc(kx,num);
% Vector que contendr las distancias entre Fer y la grabacin
d0=0;
for z=1:25
% Obtiene la distancia cuadrtica 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 prximo 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 grabacin

36

CAPITULO 4: Desarrollo de Un sistema de Seguridad


d1=0;
for z=1:25
% Obtiene la distancia cuadrtica 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 prximo 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 grabacin
d2=0;
for z=1:25
% Obtiene la distancia cuadrtica 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 prximo 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 nmero 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

37

CAPITULO 4: Desarrollo de Un sistema de Seguridad


4.4.4. Reconocimiento del habla (Toma de decisin)
Debido a que el anlisis de prediccin lineal es frecuencia y aunando que los fonemas y
pronunciacin en cada nombre de los usuarios es completamente diferente, la toma de
decisin depende de la relacin 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 grfica de
que usuario corresponde la voz y le permite seleccionar la accin 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 accin a realizar.

Parte del Programa:


if (cont0 > 17)
op = length(k0);
% Prediccin de la Seal 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);
% Obtencin R(0)
G = sqrt(sum(W0.*R'));
% Obtencin G
% Obtencin de la envolvente H(z)
envolvente = abs(G./fft(W0,op));
% Transformada de Fourier de la seal 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);
% Prediccin de la Seal por filtro
predic = filter([0 -W1(2:end)],1,k1);
error = k1 - predic;
% Error
% Vector de Autocorrelacion

38

CAPITULO 4: Desarrollo de Un sistema de Seguridad


Rsw = xcorr(k1);
R = Rsw(op:op+num);
% Obtencin R(0)
G = sqrt(sum(W1.*R'));
% Obtencin G
% Obtencin de la envolvente H(z)
envolvente = abs(G./fft(W1,op));
% Transformada de Fourier de la seal 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);
% Prediccin de la Seal por filtro
error = k2 - predic;
% Error
% Vector de Autocorrelacion
Rsw = xcorr(k2);
R = Rsw(op:op+num);
% Obtencin R(0)
G = sqrt(sum(W2.*R'));
% Obtencin G
% Obtencin de la envolvente H(z)
envolvente = abs(G./fft(W2,op));
% Transformada de Fourier de la seal 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

39

CAPITULO 4: Desarrollo de Un sistema de Seguridad


4.4.5. Seleccin de la Accin 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 diseada una interfaz de usuario - mquina para lograr la comunicacin entre ambos
fcil de entender, se utiliza MATLAB para crear una GUI, en esta se puede mostrar las
grficas de la seal de voz, los botones que permiten identificar al usuario y las
funciones que se pueden realizar dentro la GUI.
El programa MATLAB tiene la opcin para realizar esta interfaz en su barra de funciones
donde aparece el icono de GUIDE para crearla.

40

CAPITULO 4: Desarrollo de Un sistema de Seguridad

Figura 4.2. Icono de GUIDE en MATLAB para crear interfaces


Al seleccionar crear GUIDE, el programa da la opcin de crear diferentes modos de
GUIDES, la opcin que se selecciono es la que esta como predeterminada (en
blanco),en esta se puede disear la forma de la interfaz, con los botones o elementos
necesarios.

Figura 4.3. Seleccin de la GUI o abrir una nueva GUI

Se escoge la GUIDE predeterminada para poder colocar los objetos necesarios.

41

CAPITULO 4: Desarrollo de Un sistema de Seguridad

Figura 4.4. Inicio de la GUI con su ventana lateral izquierda de seleccin de objetos
Una vez tenindola la plantilla de la GUIDE se ajusta el tamao, se colocan los botones,
graficas, textos, imgenes, graficas, etc. Con los diferentes botones que se tienen al lado
izquierdo de la pantalla, cuando se selecciona el botn y se coloca en el lugar que se
requiere, se ajusta el tamao y color de este.

Figura 4.5. Colocacin, edicin y uso de un Botn en la GUI

42

CAPITULO 4: Desarrollo de Un sistema de Seguridad


El diseo realizado para el trabajo fue el siguiente:

Figura 4.6. Interfaz grfica imagen de la GUI

Esta es la Interfaz grfica realizada.

Figura 4.7. Interfaz grfica del Reconocedor de Voz creado en MATLAB

43

CAPITULO 4: Desarrollo de Un sistema de Seguridad


Dentro de las funciones aparecen recuadros donde da aviso la interface del estado del
programa, los botones despliegan diferente informacin:

Botn Grabar: Este botn realiza la funcin de activar el micrfono y grabar


durante dos segundos el comando a reconocer, en este caso es el nombre del
usuario. Para posteriormente limpiar la seal de ruido y normalizarla, una vez
hecho esto imprime la grfica de la seal de voz en el recuadro de grfica y
aparece una ventana que indica que la grabacin se ha realizado con xito,
puede observarse en la figura:

Figura 4.8. Interfaz grfica despus de haber apretado el botn Grabar

Botn Identificar: El botn Identificar es el que cumple la funcin ms


importante del programa que es reconocer y tomar la decisin.
Consta de las siguientes etapas:
1) Obtener los coeficientes LPC de la seal grabada y de las 3 seales de la
base de datos de cada usuario, esto entrega 4 vectores que son las
envolventes de la seal (Grabacin, Fernando, Alexis y Oxana).

2) Despus obtener la relacin de la seal grabada con cada una de las


seales 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 aceptacin 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

44

CAPITULO 4: Desarrollo de Un sistema de Seguridad


relacin se suman dando la relacin de cuanto se parece la seal grabada
con las 3 bases de datos.
3) La etapa final es la Toma de decisin la cual se realiza tomando en
cuenta 2 condiciones, una que el nmero de coeficientes LPC que se
tomaron en cuenta superen un nmero mnimo requerido para cada
usuario y dos que el nmero 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 grfica despus de haber apretado el botn Identificar

Botn Cerrar Sesin: Este botn se ocupa para cerrar la sesin y volver al inicio
de la interfaz una vez que el usuario reconocido ha realizado alguna accin, este
botn limpia las variables utilizadas y reinicia el programa general.

Botn Salir: El botn salir apaga y cierra la interfaz borrando todas las variables
utilizas.

Figura 4.10. Ventana que aparece despus de presionar el botn Salir

45

CAPITULO 4: Desarrollo de Un sistema de Seguridad

Men Funciones Del Sistema: Dentro de este men, estn las opciones de
Abrir Puerta, Cerrar Puerta, Apagar Luz y Cerrar Luz, se pueden agregar ms
opciones depende de las necesidades del usuario, su funcin 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 despus de seleccionar la Accin de Abrir Puerta

4.4.7. Programa Completo


El Programa completo se puede observar en los Anexos como Anexo 1.

4.5. Implementacin
Para la implementacin de sistema de reconocimiento de voz, se fabric una maqueta
que simulara un Hogar, la cual tendra una puerta y un foco.
Se realizaron algunos circuitos para poder hacer que la puerta se moviera con ayuda de
un motor elctrico y que el foco se prendiera y apagara, estos circuitos se pueden
encontrar dentro de Anexos en Anexo 2.
Para la conexin entre la computadora (la interfaz grfica) y los circuitos de la maqueta
se utiliz la tarjeta de adquisicin de datos de National Instruments la cual puede ser
reconocida por MATLAB.

46

CAPITULO 4: Desarrollo de Un sistema de Seguridad

Figura 4.13. Maqueta e Interfaz grafica

Figura 4.14. Tarjeta de Adquisicin de datos USB6008

47

CAPITULO 5: Pruebas y Resultados

Captulo 5. Pruebas y Resultados


En este Captulo 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 comparacin 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 relacin 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
Alexis
Alexis
Fernando
Fernando
Oxana
Oxana

Cont 0
11
13
12
11
10
9

Cont 1
20
18
19
21
15
19

Cont 2
9
13
9
10
12
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
Alexis
Alexis
Fernando
Fernando
Oxana
Oxana

Cont 0
14
14
12
10
9
11

Cont 1
19
18
18
22
12
19

Cont 2
11
12
8
9
13
12

Estas pruebas se realizaron en un lugar con un nivel de ruido de:


66.2-75.4 dBA

48

CAPITULO 5: Pruebas y Resultados


Tabla 5.3. Pruebas con ruido de 66.2 a 75.4 dBA
Alexis
Alexis
Alexis
Fernando
Fernando
Oxana
Oxana

Cont 0
17
18
16
17
10
17

Cont 1
19
18
18
22
12
19

Cont 2
14
16
10
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 decisin.
El nmero mximo de relacin se muestra de color amarillo, mientras que el nmero
menor se muestra en color verde.

5.1.1. Comparacin de Contadores con usuario Alexis


Tabla 5.4. Pruebas de Alexis mencionando Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Promedio

Cont 0
12
14
14
10
9
11
13
9
10
11
11
14
9
9
11
12
10
12
14
14
11.45

Cont 1
19
18
18
22
12
19
17
19
19
19
13
19
21
17
19
17
13
16
18
15
17.5

Cont 2
11
13
8
11
13
12
18
10
7
9
8
11
11
12
12
12
9
11
10
9
10.85

49

CAPITULO 5: Pruebas y Resultados


Tabla 5.5. Pruebas de Alexis mencionando Fernando
Alexis
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Promedio

Cont 0
9
9
13
12
11
9
13
11
9
14
8
12
10
8
14
10
10
11
10
8
10.55

Cont 1
11
12
13
14
17
9
16
11
14
15
10
8
8
10
18
15
8
10
11
13
12.15

Cont 2
8
6
9
9
9
9
8
9
9
10
6
10
9
4
9
9
10
10
11
9
8.65

Tabla 5.6. Pruebas de Alexis mencionando Oxana


Alexis
Oxana
Oxana
Oxana
Oxana
Oxana

Cont 0
14
12
12
14
16

Cont 1
18
14
16
12
16

Cont 2
10
9
8
13
10

Oxana

13

13

10

Oxana
Oxana
Oxana
Oxana
Oxana
Oxana

17
12
15
14
13
14

16
12
18
14
16
10

9
9
7
12
9
11

Oxana
Oxana

13
12

15
20

12
12

Oxana

11

19

11

Oxana
Oxana

19
15

18
17

10
12

Oxana
Oxana

10
6

14
19

11
11

Oxana
Promedio

15
13.35

13
15.5

8
10.2

50

CAPITULO 5: Pruebas y Resultados


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

5.1.2. Comparacin de Contadores con usuario Fernando


Tabla 5.7. Pruebas de Fernando mencionando Alexis
Fernando

Cont 0

Cont 1

Cont 2

Alexis
Alexis

14
18

11
9

12
9

Alexis
Alexis

15
18

15
15

6
9

Alexis
Alexis

14
18

17
13

11
11

Alexis

17

12

Alexis
Alexis
Alexis

19
15
18

17
13
13

8
6
9

Alexis
Alexis

10
16

8
13

7
8

Alexis
Alexis

14
13

8
12

8
7

Alexis

15

15

Alexis
Alexis

14
14

15
14

13
6

Alexis
Alexis

16
13

13
13

8
10

Alexis

19

15

Promedio

15.5

13.05

8.55

Tabla 5.8. Pruebas de Fernando mencionando Fernando


Fernando
Fernando

Cont 0
17

Cont 1
13

Cont 2
11

Fernando

16

10

Fernando
Fernando

14
14

12
8

12
10

Fernando
Fernando

17
12

13
10

8
9

Fernando
Fernando
Fernando
Fernando
Fernando

11
14
11
15
15

10
13
6
8
9

10
12
11
10
11

51

CAPITULO 5: Pruebas y Resultados


Fernando
Fernando
Fernando
Fernando

14
16
17
14

13
12
13
14

12
12
9
10

Fernando

13

10

11

Fernando
Fernando

15
14

11
12

12
10

Fernando

12

10

Fernando
Promedio

11
14.1

9
10.8

12
10.1

Continuacin Tabla 5.8


Tabla 5.9. Pruebas de Fernando mencionando Oxana
Fernando

Cont 0

Cont 1

Cont 2

Oxana

15

14

10

Oxana
Oxana

14
17

14
15

6
13

Oxana
Oxana

16
20

11
10

7
8

Oxana

14

14

10

Oxana
Oxana

15
17

12
16

11
12

Oxana
Oxana

14
14

17
15

11
9

Oxana
Oxana

15
15

10
17

11
12

Oxana
Oxana
Oxana

18
15
15

18
13
17

11
10
11

Oxana
Oxana

13
14

14
10

11
9

Oxana

13

14

Oxana
Oxana
Promedio

12
11
14.85

12
11
13.7

10
9
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 errneo.

52

CAPITULO 5: Pruebas y Resultados


5.1.3. Comparacin de Contadores con usuario Oxana
Tabla 5.10. Pruebas de Oxana mencionando Alexis
Oxana
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Promedio

Cont 0
11
10
12
16
11
14
9
11
16
11
13
11
10
12
12
13
12
11
11
13
11.95

Cont 1
13
19
17
18
15
18
16
15
20
16
17
15
20
13
18
17
20
15
16
18
16.8

Cont 2
12
11
12
12
9
12
13
15
11
11
14
14
13
12
7
10
9
12
11
14
11.7

Tabla 5.11. Pruebas de Oxana mencionando Fernando


Oxana
Fernando

Cont 0
9

Cont 1
9

Cont 2
10

Fernando
Fernando
Fernando

10
11
8

13
11
10

8
7
8

Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Promedio

10
12
9
11
9
10
8
11
5
9
10
13
6
8
11
7
9.35

11
14
9
12
16
17
10
17
7
10
12
14
10
10
10
11
11.65

6
10
12
10
8
11
5
7
7
6
6
8
8
10
10
7
8.2

53

CAPITULO 5: Pruebas y Resultados


Tabla 5.12. Pruebas de Oxana mencionando Oxana
Oxana
Oxana

Cont 0
8

Cont 1
14

Cont 2
10

Oxana
Oxana

9
10

12
11

11
10

Oxana
Oxana

15
9

12
11

11
15

Oxana
Oxana

10
8

13
11

11
9

Oxana

14

10

Oxana
Oxana
Oxana
Oxana

10
9
11
10

13
8
16
12

12
8
14
11

Oxana
Oxana
Oxana
Oxana
Oxana
Oxana
Oxana

9
9
12
4
10
8
8

12
11
14
13
15
12
10

11
10
11
11
8
11
11

Oxana
Promedio

7
9.25

16
12.5

8
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 errneo.

5.1.4 Uso de los Promedios


Durante las pruebas generales se obtuvieron Promedios en la relacin entre LPCs,
estos promedios se muestran a continuacin; A partir de ellos se obtuvieron el rango
entre coeficientes que se debern 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 debera 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.

54

CAPITULO 5: Pruebas y Resultados


Tabla 5.13. Promedios Obtenidos para Alexis
Palabra
Alexis
Fernando
Oxana

Cont 0
11.45
10.55
13.35

Cont 1
17.5
12.15
15.5

Cont 2
10.85
8.65
10.2

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
Palabra
Alexis
Fernando
Oxana

Cont 0
15.5
14.1
14.85

Cont 1
13.05
10.8
13.7

Cont 2
8.55
10.1
10

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
Palabra
Alexis
Fernando
Oxana

Cont 1
11.95
9.35
9.25

Cont 2
16.8
11.65
12.5

Cont 3
11.7
8.2
10.65

5.2. Pruebas de Reconocimiento


En las pruebas de Reconocimiento los usuarios grabaron los 3 comandos propios que
cada uno tena tratando de accesar al sistema como otro usuario, los resultados fueron
los siguientes:
Tabla 5.16. Resultados del Reconocimiento de Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Fernando
Fernando

Id. Oxana

Id. Fernando

Id. Alexis

No identificado

X
X
X
X
X
X
X
X

55

CAPITULO 5: Pruebas y Resultados


Fernando
Fernando
Fernando
Fernando
Oxana
Oxana
Oxana
Oxana
Oxana
Oxana

X
X
X
X
X
X
X
X
X
X

Continuacin Tabla 5.16.


Algn 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 anlisis 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
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Oxana
Oxana
Oxana
Oxana
Oxana
Oxana

Id. Oxana

Id. Fernando

Id. Alexis

No identificado
X
X
X
X
X
X
X

X
X
X
X
X
X
X
X
X
X
X

56

CAPITULO 5: Pruebas y Resultados


Tabla 5.18. Resultados del Reconocimiento de Oxana
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Oxana
Oxana
Oxana
Oxana
Oxana
Oxana

Id. Oxana

Id. Fernando

Id. Alexis

No identificado
X
X
X
X
X

X
X
X
X
X
X
X
X
X
X
X
X
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 nia, 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
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Oxana

Id. Oxana

Id. Fernando

Id. Alexis

No identificado
X
X

X
X
X
X
X
X
X
X
X
X
X

57

CAPITULO 5: Pruebas y Resultados


Oxana
Oxana
Oxana
Oxana
Oxana

X
X
X
X
X

Continuacin Tabla 5.19.


Tabla 5.20. Resultados del Reconocimiento para una Mujer Adulta
Mujer Adulta
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando
Oxana
Oxana
Oxana
Oxana
Oxana
Oxana

Id. Oxana

Id. Fernando

Id. Alexis

No identificado
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

X
X
X

Tabla 5.21. Resultados del Reconocimiento para una Nia


Nia
Alexis
Alexis
Alexis
Alexis
Alexis
Alexis
Fernando
Fernando
Fernando
Fernando
Fernando
Fernando

Id. Oxana

Id. Fernando

Id. Alexis

No identificado
X
X
X
X
X
X
X
X
X
X
X
X

58

CAPITULO 5: Pruebas y Resultados


Oxana
Oxana
Oxana
Oxana
Oxana
Oxana

X
X
X
X
X
X

Continuacin Tabla 5.21.

5.4. Solucin 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 incrementara la
seguridad.

El sistema ser seguro porque los coeficientes que se utilizaran en el software no podrn
ser alterados por ninguna persona, debido a que cada uno contiene sus propios
coeficientes inalterables en una base de datos establecida por el diseador en la captura
de voz.

No se podrn agregar usuarios nuevos al instante, tendrn que ser agregados


previamente por el proceso de adquisicin y entrenamiento por lo cual es un proceso
tardado y con acreditacin del dueo, esto permite mayor confiabilidad al sistema.

59

CAPITULO 5: Pruebas y Resultados


5.5. Estudio Socio Econmico
La realizacin de un estudio econmico adecuado sobre el tamao y esfuerzo requerido
es una de las caractersticas 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 estimacin orientada a la funcin 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 valoracin 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 crtico 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
mltiples 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 diseado el cdigo para ser reutilizable? R= 4
12.- Estn incluidas en el diseo la conversin y la instalacin? R= 5

60

CAPITULO 5: Pruebas y Resultados


13.- Se ha diseado el sistema para soportar mltiple instalaciones en diferentes
organizaciones? R= 4
14.- Se ha diseado la aplicacin para facilitar los cambios y ser fcilmente utilizada por
el usuario? R= 5
Suma total de la valoracin: 54
Sacamos los Parmetros de medida de pendiendo del factor de peso para evaluar el
nivel de complejidad del software

Figura 5.1. Anlisis de Factor Peso (Plantilla)


Nota: se multiplica la cuenta con el valor elegido ya sea simple medio o complejo (en
este caso los nmeros sombreados).
Tabla 5.22. Anlisis de PF (Factor de Peso)
Parmetro de medida

cuenta

simple

Nmero de entradas usuario:

Nmero de salidas de usuario:

Numero peticiones al usuario:

Numero de archivos:

45

Numero interfaces externos:

Cuenta total

499

medio

complejo
6

5
6
10
10

18

15

450

10

61

CAPITULO 5: Pruebas y Resultados


Evaluando la influencia de factores globales que afecten la aplicacin:
PF= cuenta total x (0.65+0.01 x (total de la valoracin))
PF= 499 x (0.65+ 0.01 x (54))=593. 81
PF estimado: 593. 81
Datos histricos:
Productividad media de la organizacin 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 organizacin en
proyectos)
Tabla 5.23. Anlisis de Costos
Esfuerzo estimado: 5.9 personas-mes
Coste total proyecto: 1,781.43 $ (del puro software, no incluye el mantenimiento ni la
instalacin)

Tabla 5.24. Anlisis Total de Costo

Mantenimiento bsico del software


Interfaz fsica usuario mquina.
Tarjeta de adquisicin de datos
Diseo del rea a colocar el reconocedor de
voz y construccin del mismo

Costo
1200
4000 -11000
2500
Depende del rea, lugar y la
complejidad del diseo y
construccin

Base de dato (por persona)

500

Mantenimiento fsico (bsico).

1000

Total aproximado:
$ 20,000

La estimacin de costo con respecto a la instalacin y diseo donde el software ser


implementado, incrementara o disminuir dependiendo del lugar y la complejidad del
diseo, adems de consultar el equipo y recursos con el que cuenta el cliente.
Nota: El mantenimiento tanto del software como del fsico, depender de igual medida a
lo que el sistema necesite para estar en ptimas condiciones.

62

CONCLUSIONES

CONCLUSIONES
La seguridad de un hogar es la principal preocupacin como habitante de la Cd. de
Mxico, Un sistema de seguridad por reconocimiento de voz puede no solo aumentarla
si no tambin tener la tranquilidad de saber quin acceda al hogar.
En un sistema de reconocimiento de voz, la toma de decisin es difcil 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 ms confiable ya que pasara por diversos mtodos
siendo el ms importante la prediccin lineal, obtencin de parmetros 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 alegra o extrema tristeza ya que esto modifica las
caractersticas de su voz afectando los coeficientes LPC como a su vez lo hara si el
usuario est en estado alcohlico o inconveniente.
Para corregir este problema se propuso tener ms bases de datos del mismo usuario
pero en diferentes estados de nimo, as el usuario antes de identificarse podra indicar
su estado de nimo y el programa relacionara su grabacin en el momento, con la base
de datos asignada para ese usuario en ese estado de nimo (Comparacin de
coeficientes LPC en diferentes estados de nimo), esto podra facilitar en gran medida el
acceso a otros usuarios es por esa razn por la cual que no se implement esta
solucin, 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, normalizacin, obtencin de parmetros y pitch, tecnologas que vallan
mejorando la confiabilidad y velocidad en la toma de decisin. Estas a su vez ayudaran
en la implementacin de sistemas de seguridad eficientes.
La opcin de usar MATLAB como herramienta principal permiti realizar una interfaz
para un sistema de reconocimiento de voz de uso fcil, eficaz y con capacidad de
ejecutar operaciones de procesamiento de seales 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, plomera, instalaciones de gas, etc.
Haciendo de este un proyecto base de Domtica.
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 tambin tiene su

63

CONCLUSIONES
importancia debido a que al usar un micrfono mejor se puede obtener una mejor calidad
en la seal adquirida y por lo tanto dejar que el software se encargue slo del
procesamiento de la seal y no tenga que desperdiciar tiempo en limpiarla, filtrarla y
normalizarla.
Se tuvieron algunos problemas durante la realizacin del proyecto, los cuales fueron los
siguientes:
El problema relacionado con la comparacin entre la seal de voz adquirida y la base de
datos de cada usuario (Coeficientes LPC), debido a que se tena un alto procesamiento
de datos que se tuvo que limitar para el rpido funcionamiento de este.
La solucin para este problema fue colocar contadores que indicaran el nmero de
coeficientes LPC que se parecieron a los coeficientes LPC grabados en la Base de datos
de cada usuario y el nmero ms cercano al mximo de Coeficientes LPC ser el
usuario identificado, para el software es ms fcil comparar un nmero contra otro, que
un vector de miles de nmeros contra otro vector de miles de nmeros, no se
comprometi la integridad o seguridad del reconocimiento slo se agiliz el
procesamiento del software para que al usuario le pareciera ms agradable y fluido.
Otro problema que se encontr fue que al aumentar la cantidad de usuarios el programa
sera ms extenso y la similitud entre cada usuario y sus coeficientes LPC podra
converger en un punto, causando esto fallas en el sistema.
Este problema se pudo solucionar programando los lmites de relacin de cada contador
en relacin con los dems hacindolos ms estrictos para que el software no pueda dar
acceso a algn usuario si no lo ha reconocido de manera adecuada.
De esta manera se pudieron solucionar los problemas que surgieron durante la
realizacin del proyecto, los cuales funcionaron correctamente y no han presentado
fallas o alteraciones que afecten el desempeo del proyecto.

64

BIBLIOGRAFIA Y/O REFERENCIAS

BIBLIOGRAFIA Y/O REFERENCIAS


[1] Franco Galvn, Jorge Andrs. Reconocimiento de Voz para Nios con Discapacidad
en el Habla, Universidad de las Amricas departamento de Ingeniera Electrnica 2010,
Puebla, Mxico.
[2] Cruz Beltrn, Luis. A. y Acevedo Mosqueda, Marco. A. Aplicacin del
Reconocimiento de Voz de un Hablante Mediante una Red Neuronal Artificial Back
propagation y Coeficientes LPC sobre un Canal Telefnico
[3]Schroeder, Manfred R..ComputerSpeechRecognition, Compression andSinthesis.
[4]Kai-Fu, Lee.AutomaticSpeechRecognition.
[5]Sreiner, Erich.Matemticas para las ciencias aplicadas. Editorial Revert 2009.
[6] Pereira Rama, Antonio. Procesamiento Digital de la Seal Sonora Utilizando Matlab.
[7] Romero Bauset, Jos Vicente; Dolores Rosello, Maria y Zalaya Bez, Ricardo.
Fundamentos Matemticos para la Ingeniera con MATLAB, Universidad Politcnica de
Valencia, Espaa.
[8]
InsideSpeechRecognition,
Consulta:
http://www.tldp.org/HOWTO/SpeechRecognition-HOWTO/inside.html , Fecha de consulta: 25 de Abril del 2012.
[9]Harrington, Jonathan y
KluwerAcademicPublishers

Cassidy,

Steve.Techniques

in

Speech

Acoustics,

[10] Barragn Guerrero, Diego Orlando. Manual de interfaz grfica de usuario en


MATLAB, Universidad Tcnica Particular de Loja. Escuela de Electrnica y
Telecomunicaciones.
[11] Fandez Zanuy, Marcos. Tratamiento Digital de Voz e Imagen con Aplicacin a la
Multimedia, Marcombo.
[12] Gmez, 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: Librera 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

65

ANEXOS

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;
s = wavrecord(2*Fs, Fs, 1);
wavwrite(s,Fs,16,'Prueba.wav')
lon = length(s);
d = max(abs(s));
s = s/d;
prom = sum(s.*s)/lon;

% Frecuencia de Muestreo
% Guarda .wav seal grabada
% Longitud del vector
% Obtiene el valor ms Grande
% Normaliza la seal
% Promedio seal entera

66

ANEXOS
umbral = 0.02;
y = [0];
for i = 1:400:lon-400
seg = s(i:i+399);
e = sum(seg.*seg)/400;
if( e> umbral*prom)
seal completa por el valor umbral
y = [y;seg(1:end)];
espacio en blanco
end;
end;

% 2% de la energa promedio

% Ventaneo cada 10ms


% Segmentos
% Promedio de cada segmento
% Si el promedio energtico es mayor que la
% Almacena en (y) sino es eliminado como

% Guarda .wav seal normalizada y sin ruido


wavwrite(y,Fs,16,'Limpia.wav')
plot(y)
% Grafica seal Normalizada
sound(y,22050)
% Reproduce Seal 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 Grabacin de GUI
Wx = lpc(kx,num);

67

ANEXOS
% Vector que contendr las distancias entre Fer y la grabacin
d0=0;
for z=1:25
% Obtiene la distancia cuadrtica 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 prximo 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 grabacin
d1=0;
for z=1:25
% Obtiene la distancia cuadrtica 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 prximo 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 grabacin
d2=0;
for z=1:25
% Obtiene la distancia cuadrtica 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 prximo 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

68

ANEXOS
cont1
cont2=0;
for x = 1:25
cont2 = d2(x)+cont2;
end
cont2
if (cont0 > 17)
op = length(k0);
% Prediccin de la Seal 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);
% Obtencin R(0)
G = sqrt(sum(W0.*R'));
% Obtencin G
% Obtencin de la envolvente H(z)
envolvente = abs(G./fft(W0,op));
% Transformada de Fourier de la seal 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);
% Prediccin de la Seal por filtro
predic = filter([0 -W1(2:end)],1,k1);
error = k1 - predic;
% Error
% Vector de Autocorrelacion
Rsw = xcorr(k1);
R = Rsw(op:op+num);
% Obtencin R(0)
G = sqrt(sum(W1.*R'));
% Obtencin G
% Obtencin de la envolvente H(z)
envolvente = abs(G./fft(W1,op));
% Transformada de Fourier de la seal original
SW = abs(fft(k1,op));
semilogy(SW(1:(op/2)),'g');
holdon;
semilogy(envolvente(1:(op/2)),'b');
holdoff;

69

ANEXOS
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);
% Prediccin de la Seal por filtro
predic = filter([0 -W2(2:end)],1,k2);
error = k2 - predic;
% Error
% Vector de Autocorrelacion
Rsw = xcorr(k2);
R = Rsw(op:op+num);
% Obtencin R(0)
G = sqrt(sum(W2.*R'));
% Obtencin G
% Obtencin de la envolvente H(z)
envolvente = abs(G./fft(W2,op));
% Transformada de Fourier de la seal 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

% BOTON CERRAR SESION


functionReiniciar_Callback(hObject, eventdata, handles)
% Cierra la Interfaz Grafica
close (GCBF)
clearall
% Abre la Interfaz Grafica de nuevo
runrecvoc
% BOTON SALIR
functionSalir_Callback(hObject, eventdata, handles)

70

ANEXOS
ans=questdlg('Desea salir del programa?','SALIR','Si','No','No');
ifstrcmp(ans,'No')
guidata(hObject, handles);
return;
end
clear,clc,closeall

% GRAFICA DE TRABAJO
functionGrafica_CreateFcn(hObject, eventdata, handles)
handles.Grafica=1:1:882;
handles.h = plot(handles.Grafica,zeros(882,1));
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])

% 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
% FUNCION MENU FUNCIONES DEL SISTEMA
functionMenu_CreateFcn(hObject, eventdata, handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

71

ANEXOS
Anexo 2. Diagrama de Conexin

72

GLOSARIO

GLOSARIO
Algoritmo: Conjunto ordenado y finito de operaciones que permite hallar la solucin de
un problema.
Amplitud: Distancia entre los puntos ms alto y ms bajo de la onda, determina la
intensidad. Es una medida de la variacin mxima del desplazamiento u otra magnitud
fsica que vara peridica o cuasi-peridicamente en el tiempo.
Armnico: En una onda peridica, cualquiera de sus componentes sinusoidales, cuya
frecuencia sea un mltiplo entero de la frecuencia fundamental.
Espectro: Distribucin de la intensidad de una radiacin en funcin de una magnitud
caracterstica, como la longitud de onda, la energa, la frecuencia o la masa.
Filtro: Dispositivo que elimina o selecciona ciertas frecuencias de un espectro elctrico,
acstico, ptico o mecnico, como las vibraciones.
Fonemas: Sonido de la voz
Frecuencia: Nmero de veces que se repite un proceso peridico por unidad de tiempo.
Impedancia: Relacin entre la tensin alterna aplicada a un circuito y la intensidad de la
corriente producida. Se mide en ohm.
Interfaz: Conexin fsica y funcional entre dos aparatos o sistemas independientes.
Ntido: Limpio, terso, claro, puro.
Normalizar: Es el proceso de elaborar, aplicar y mejorar las normas que se aplican a
distintas actividades cientficas, industriales o econmicas con el fin de ordenarlas y
mejorarlas. La normalizacin persigue fundamentalmente tres objetivos:

Simplificacin: se trata de reducir los modelos para quedarse nicamente con los
ms necesarios.

Unificacin: para permitir el intercambio a nivel internacional.

Especificacin: se persigue evitar errores de identificacin creando un lenguaje claro


y preciso.

Pronunciar: Emitir y articular sonidos para hablar.


Resonancia: La resonancia es el reforzamiento de ciertas amplitudes sonoras como
resultado de la coincidencia de ondas similares en frecuencias, es un caso particular de
resonancia mecnica.
Ruido: Sonido inarticulado, por lo general desagradable.

73

GLOSARIO
Segmento: Porcin o parte cortada o separada de una cosa, de un elemento geomtrico
o de un todo.
Sensibilidad: Capacidad de respuesta a muy pequeas excitaciones, estmulos o
causas.
Silencio: El silencio surge cuando no hay sonidos perceptibles, pero en realidad es un
estado mental, porque siempre suena algo, aunque sea muy levemente.
Sonido: Sensacin producida en el rgano del odo por el movimiento vibratorio de los
cuerpos, transmitido por un medio elstico, como el aire.
Timbre: Calidad de los sonidos, que diferencia a los del mismo tono y depende de la
forma y naturaleza de los elementos que entran en vibracin.
Tono: Cualidad de los sonidos, dependiente de su frecuencia, que permite ordenarlos de
graves a agudos.
Transductor: Dispositivo que transforma el efecto de una causa fsica, como la presin,
la temperatura, la dilatacin, la humedad, etc., en otro tipo de seal, normalmente
elctrica.
Ventanas de Haming: En procesamiento de seales, una ventana de Haming es un
zoom de una seal de longitud voluntariamente limitada.

74

También podría gustarte