Sie sind auf Seite 1von 35

RESUMEN

El Sistema de Reconocimiento de Voz 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. El sistema en s posee un entorno grfico en la computadora, que
proporciona las selecciones de grabacin, donde la seal de voz es ingresada a la
computadora y es procesada por los algoritmos del programa que modifican la seal,
obteniendo los parmetros 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, dicha
base de datos ya fue procesada digitalmente por el programa. Esta seleccin
reconoce la palabra.
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. El presente trabajo es
una recopilacin de los mtodos de procesamiento digital y una explicacin de los
algoritmos utilizados en el programa del Sistema de Reconocimiento de Voz. Son
explicados varios mtodos de procesamiento digital de voz y los recursos necesarios
para la elaboracin del sistema.

CAPTULO 1 GENERALIDADES
3

CAPTULO 1. GENERALIDADES
INTRODUCCIN
El habla es una de las partes ms importantes de la expresin humana, es algo que
nos diferencia del resto de seres vivos en el planeta, ya que sin el habla el
pensamiento mismo del hombre no sera posible. No se trata simplemente de un
sistema para transmitir informacin, aunque sea claro una de sus funciones. Pero es
por medio de los sonidos que se presenta la esencia espiritual del hombre.
El procesamiento digital de seales de voz tiene una gran variedad de aplicaciones
que puede ser implementada para lograr obtener lo que nos interese segn la
aplicacin. El Sistema de Reconocimiento de Voz es una de las aplicaciones del
procesamiento digital de seales de voz. El sistema consiste en obtener una seal de
voz que permita reconocer a la persona que se est hablando. Consta de una
interfaz grfica que permite la interaccin del usuario por medio de un micrfono con
la computadora, la que procesa automticamente los datos adquiridos. Basado en
los resultados de este sistema, se puede ver como se plantea la base del
procesamiento digital de seales de voz y queda a la libre imaginacin como puede
ser utilizado para otras aplicaciones, adems del de reconocimiento de voz.

ANTECEDENTES
El reconocimiento de voz ha recorrido un largo camino desde que era una tecnologa
utilizada nicamente en las complejas maquinas industriales, para convertirse en una
herramienta, encontrada en mucho elementos de nuestra vida cotidiana. Los
adelantos, en el reconocimiento de voz, estn relacionados con la evolucin de las
computadoras ms rpidas, lo que demuestra, que la aparicin de un sistema
avanzado de reconocimiento de voz, sol es slo una cuestin de tiempo. El avance
del reconocimiento de voz en los laboratorios de ingeniera para aplicaciones
especializadas se produjo en la dcada de 1970, este sistema era de reconocimiento
continuo, lo que significa que los seres humanos no necesitan hacer una pausa entre
las palabras. A medida que se fue desarrollando, esta tecnologa, fue ganando
terreno, en el mercado masivo.
4

La primera industria que utiliz el software de reconocimiento de voz, como una


aplicacin comercial, fue la industria de la salud. Al inicio, los doctores, pensaron que
con esta tecnologa, podran reemplazar a las transcripciones mdicas tradicionales.
Esta idea, no fue muy exitosa, ya que los mdicos son tan impacientes, que prefieren
no ser molestados con el uso de estos programas, adems no confan en que una
computadora, haga trascripciones crticas, las cuales son hechas a la perfeccin por
los seres humanos.
Sin embargo, los avances en la informtica, hicieron posible, el uso del
reconocimiento de voz, en artculos como celulares, automviles y computadoras
personales. El reconocimiento de voz aade un nivel de simplicidad para todos los
usuarios que ponen tanta responsabilidad en este sistema como la industria de la
salud. Despus de todo, ninguna vida est en juego, si el sistema de reconocimiento
de voz de su celular, marca un nmero equivocado. Con las agresivas campaas de
compaas como Microsoft y su sistema operativo Vista, y otros sistemas operativos
mviles, la tecnologa de reconocimiento de voz est siendo absorbida lentamente
por el estilo de vida actual.

PLANTEAMIENTO DEL PROBLEMA


Identificacin del Problema
La comunicacin verbal siempre ha sido de gran importancia ya que por medio de
ella nos comunicamos de una forma que no es posible que si lo hiciramos solo
visualmente o a travs del odo. Actualmente los sistemas de reconocimiento de voz
estn tomando un papel importante en el mbito tecnolgico y se han desarrollado
herramientas que nos permiten extraer parmetros con este fin.

Aplicaciones de seguridad: identificacin del locutor

Aplicaciones

de

comunicacin

hombre-computadora

computadora
5

computadora-

Traductores

Servicios

Para poder crear sistemas de este tipo es necesario que se conozcan las tcnicas
actuales de forma que se entienda como es que operan y cules son sus ventajas y
desventajas para saber as cual utilizar dependiendo del tipo de sistema a
desarrollar.
Dada la inseguridad que se vive en la actualidad es necesario tener mejores
sistemas de seguridad que interacten con las personas y que sean capaces de
tener un procesamiento de informacin rpida y precisa que permita tomar
decisiones rpidas y seguras especialmente en reas en la que el acceso es
restringido.
Formulacin del Problema
El problema principal de ese proyecto radica en la implementacin de un sistema
que permita reconocer ciertos parmetros de la voz para poder controlar el acceso a
reas restringidas.

OBJETIVOS
1.4.1. Objetivo general
Disear un sistema que proporcione el reconocimiento de seales de voz, por medio
de la interaccin hombre mquina para el acceso a reas restringidas.
1.4.2. Objetivos Especficos

Analizar la transmisin, aplicacin y manipulacin de las seales de voz para


poderlas utilizar en el sistema de seguridad.

Utilizar la tcnica de extraccin de parmetros Linear Predictive Cepstral


Coefficients (LPCC) y crear un programa que obtenga los coeficientes

Efectuar la interaccin automtica humano-computadora por medio de la interfaz


GUIDE-MATLAB.

Controlar una tarjea Arduino para ejecutar acciones especficas de seguridad


mediante activacin por GUIDE

1.4.4. Acciones de la investigacin


CUADRO 1.2: Objetivos Especficos y Acciones de la investigacin
OBJETIVOS ESPECFICOS

ACCIONES

Analizar la transmisin, aplicacin y


manipulacin de las seales de voz
para poderlas utilizar en el sistema de
seguridad.

Mediante el software MATLAB crear un


programa que nos permita adquirir la
seal de la voz en archivo .wav.
Eliminamos el ruido y normalizamos la
seal.

Parametrizacin u obtencin de las


de la seal de voz
Utilizar la tcnica de extraccin de caractersticas
parmetros Linear Predictive Cepstral mediante los coeficiente LPC
Coefficients (LPCC) y crear un
programa
que
obtenga
los Medicin de distancia entre las seales
coeficientes
de la base de datos y la seal grabada en
tiempo real

Efectuar la interaccin automtica Presionar el botn asignado para la


humano-computadora por medio de la grabacin y la comparacin de la seal de
entrada con la registrada en la base de
interfaz GUIDE-MATLAB.
datos

Controlar una tarjea Arduino para


ejecutar acciones especficas
de
seguridad mediante activacin por
GUIDE

Activar las
ambientes

luces

de

los

diferentes

Accionar un servo motor que permita


acceso al ambiente

el

JUSTIFICACIN
1.5.1. Justificacin Tcnica
El fundamento de la justificacin se cimienta en que el control de los factores como
las ondas sonoras que un ser humano emite

pueden ser usadas debido a sus

caractersticas para automatizar a una distancia ya sea corta o media.


1.5.2. Justificacin Social
Por medio del reconocimiento de voz el ordenador sera capaz interactuar con el
usuario, permitiendo a este el acceso a lugares restringidos a personas exclusivas
autorizadas, aprovechando los parmetros y las caractersticas que tiene la voz de
cada persona y de esta manera aumentar la seguridad.

ALCANCE
1.6.1. Alcance Temtico
El diseo de la red propuesta en este proyecto est inmerso en el rea de
Procesamiento Digital de Seales, para lo cual se tomara encuentra los
conocimientos adquiridos en las materias de Seales y Sistemas, Control I.
1.6.2. Alcance Geogrfico
El presente proyecto tendr un alcance geogrfico que comprende la ciudad de
Santa Cruz en instalaciones de la Escuela Militar de Ingeniera
1.6.3. Alcance Temporal
El tiempo que tomara analizar y disear el presente proyecto comprende desde el
inicio de clases correspondiente al 2do Semestre del ao acadmico hasta el 27 de
Noviembre del 2014, de acuerdo al calendario acadmico de la Escuela Militar de
Ingeniera.

CAPTULO 2. MARCO TERICO


9

CAPTULO 2. MARCO TERICO


2.1 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.
Existen varias maneras para analizar y describir el habla. Los enfoques ms
comnmente usados son:

Articulacin: Anlisis de cmo el humano produce los sonidos del habla.

Seal Acstica: Anlisis de la seal de voz como una secuencia de sonidos.

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.

2.2

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:

10

Figura 2.1 Diagrama de Bloques del Proceso General del Reconocimiento de Voz
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.

2.3

MTODOS Y ETAPAS PARA EL RECONOCIMIENTO DE VOZ

En este punto 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.3.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.

11

2.3.2 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.
2.3.3 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.
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.
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.
12

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


Cuantizacin
La cuantizacin 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


13

2.4

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.
Existen distintos mtodos de anlisis para la extraccin de caractersticas, y se
concentran en diferentes aspectos representativos. En este trabajo 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

2.4.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.4 Procesos en la que la seal obtiene sus caractersticas principales


El principio es simple, se almacenan patrones de voz tpicos como modelos de
referencia en un diccionario de palabras candidato. El reconocimiento se lleva a cabo
comparando la expresin desconocida a los patrones almacenados seleccionando el
que ms se le parece usualmente se construye patrones para las palabras
completas.

14

2.4.2 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.
2.4.3 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)
2.4.4 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:

15

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:

2.4.5 Anlisis Cepstral


Como se sabe los sonidos de la voz se pueden representar mediante un
espectrograma, que indica las componentes frecuencias 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.5

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.5 Diagrama de Flujo de un Reconocedor de Voz


16

2.6

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.6 Diagrama que muestra el proceso para obtener y comparar las distancias
2.6.1 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.

17

CAPTULO 3 MARCO PRCTICO


18

CAPTULO 3. MARCO PRCTICO


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

19

3.2

ENTRENAMIENTO Y BASE DE DATOS

3.2.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 = 23000;
s = wavrecord(2*Fs, Fs, 1);
wavwrite(s,Fs,16,'Prueba.wav')

% Frecuencia de Muestreo
% Guarda .wav seal grabada

3.2.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 = 23000;
% Frecuencia de Muestreo
s = wavrecord(2*Fs, Fs, 1);
wavwrite(s,Fs,16,'Prueba.wav')
% Guarda .wav seal grabada
lon = length(s);
% Longitud del vector
d = max(abs(s));
% Obtiene el valor ms
Grande
s = s/d;
% Normaliza la
seal
prom = sum(s.*s)/lon;
% Promedio seal entera
umbral = 0.02;
% 2% de la energa
promedio
y = [0];
for i = 1:400:lon-400
% Ventaneo cada 10ms
seg = s(i:i+399);
% Segmentos
e = sum(seg.*seg)/400;
% Promedio de cada segmento
if( e> umbral*prom)
% Si el promedio
energtico es mayor que la seal completa por el valor umbral
y = [y;seg(1:end)];
% Almacena en (y)
sino es eliminado como espacio en blanco
end;
end;

20

% Guarda .wav seal normalizada y sin ruido


wavwrite(y,Fs,16,'Limpia.wav')
plot(y)

% Grafica

3.2.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.
Programa:
%Programa que Realiza el Promedio de la Base de Datos de Grabaciones
Fs=22050;
[rec1]=wavread('F1b.wav');
[rec2]=wavread('F2b.wav');
[rec3]=wavread('F3b.wav');
[rec4]=wavread('F4b.wav');
[rec5]=wavread('F5b.wav');
%CREA EL VECTOR FINAL DE GRABACION
prom =rec1;
tam =
(rec5);
for i = 1:1:tam
prom(i)=((rec1(i)+rec2(i)+rec3(i)+rec4(i)+rec5(i))/5);
end;
lon= length(prom);
d=max(abs(prom));
prom=prom/d;
%GUARDA .WAV SEAL PROMEDIADA
wavwrite(prom,Fs,16,'Fprom.wav')
plot(prom)
grid on
title('prom')
sound(prom,Fs)

3.2.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.
%
Alvaro
Fs=22050;

21

Lee

el

archivo

De

Promedio

[k0,Fs,bits] = wavread('AlvaroProm.wav');
Promedio Nelson
[k1,Fs,bits] = wavread('NelsonProm.wav');
Promedio Yvan
[k2,Fs,bits] = wavread('YvanProm.wav');
en la GUI
[kx,Fs,bits] = wavread('Limpia.wav');
Coeficientes

3.3

Lee

el

archivo

De

Lee

el

archivo

De

% Lee el archivo que se grabo


%

Obtiene

el

numero

de

DESARROLLO

3.3.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.
Parte del Programa:
Fs = 23000;
s = wavrecord(2*Fs, Fs, 1);
wavwrite(s,Fs,16,'Prueba.wav')

% Frecuencia de Muestreo
% Guarda .wav seal grabada

3.3.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 = 23000;
s = wavrecord(2*Fs, Fs, 1);
wavwrite(s,Fs,16,'Prueba.wav')
lon = length(s);
d = max(abs(s));
Grande
s = s/d;
seal
prom = sum(s.*s)/lon;
umbral = 0.02;
promedio
y = [0];
for i = 1:400:lon-400
seg = s(i:i+399);

% Frecuencia de Muestreo
% Guarda .wav seal grabada
% Longitud del vector
% Obtiene el valor ms
% Normaliza la
% Promedio seal entera
% 2% de la energa
% Ventaneo cada 10ms
% Segmentos

22

e = sum(seg.*seg)/400;
% Promedio de cada segmento
if( e> umbral*prom)
% Si el promedio
energtico es mayor que la seal completa por el valor umbral
y = [y;seg(1:end)];
% Almacena en (y)
sino es eliminado como espacio en blanco
end;
end;
% Guarda .wav seal normalizada y sin ruido
wavwrite(y,Fs,16,'Limpia.wav')
plot(y)

% Grafica

3.3.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 nmero 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.
Parte del Programa:
num = (Fs/1024)+3;
filtro LPC de Alvaro
W0 = lpc(k0,num);
filtro LPC de Nelson
W1 = lpc(k1,num);
filtro LPC de Yvan
W2 = lpc(k2,num);
filtro LPC de La Grabacin de GUI

% Obtiene los coeficientes del


% Obtiene los coeficientes del
% Obtiene los coeficientes del
% Obtiene los coeficientes del

23

Wx = lpc(kx,num);
% Vector que contendr las distancias entre Alvaro y la grabacin
d0=0;
for z=1:25
cuadrtica media
d0(z)=sqrt((W0(z)-Wx(z))*(W0(z)-Wx(z)));
if d0(z)<= 0.15
es prximo a Alvaro
d0(z)=1;
es lejano a Alvaro
else d0(z)=0;
end
end

% Obtiene la distancia
% Coloca un 1 en el vector si
% Coloca un 0 en el vector si

% 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
es prximo a Nelson
d1(z)=1;
es lejano a Nelson
else d1(z)=0;
end
end

% Coloca un 1 en el vector si
% Coloca un 0 en el vector si

% Vector que contendr las distancias entre Oxana y la grabacin


d2=0;
for z=1:25
cuadrtica media
d2(z)=sqrt((W2(z)-Wx(z))*(W2(z)-Wx(z)));
if d2(z)<= 0.15
es prximo a Yvan
d2(z)=1;
es lejano a Yvan
else d2(z)=0;
end
end

% Obtiene la distancia
% Coloca un 1 en el vector si
% Coloca un 0 en el vector si

% Contador que almacena el numero de coeficientes que se parecen


cont0=0;
for i = 1:25
cadena
cont0 = d0(i)+cont0;
end
cont0

% Suma todos los valores de la

cont1=0;
for j = 1:25
cont1 = d1(j)+cont1;

24

end
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;
% Vector de Autocorrelacion
Rsw = xcorr(k0);
R = Rsw(op:op+num);
Obtencin R(0)
G = sqrt(sum(W0.*R'));
Obtencin G

%
% Error
%
%
%

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');
hold on;
semilogy(envolvente(1:(op/2)),'b');
hold off;
title('Usuario
Alvaro
Quena','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: Alvaro');

3.3.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
25

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:
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');
hold on;
semilogy(envolvente(1:(op/2)),'b');
hold off;
title('Usuario
Tte.
Nelson
Mejia','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: Tte. Mejia');
Control;
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');
hold on;
semilogy(envolvente(1:(op/2)),'b');
hold off;

26

title('Usuario
Yvan
Trujillo','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: Yvan');
Control;

3.3.5 Seleccin de la Accin a realizar


Una vez que el usuario es reconocido puede elegir entre las opciones: Abrir Puerta,
Cerrar Puerta, Prender Luz y Apagar Luz.
Parte del Programa:
else
%////////////////////////////////
video_captura = videoinput('winvideo',1);
imagen = getsnapshot(video_captura);
imwrite(imagen,'captura.jpg','jpg');
[cdata,map] = imread('captura.jpg');
h=msgbox('No Identificado','Error','custom',cdata,map);
end

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

Figura 3..1. Icono de GUIDE en MATLAB para crear interfaces

27

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.

28

Figura 3.2. 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 3.3. Colocacin, edicin y uso de un Botn en la GUI


El diseo realizado para el trabajo fue el siguiente:

29

Figura 3.4. Interfaz grfica imagen de la GUI


Esta es la Interfaz grfica realizada.

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


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:

30

Figura 3.6. 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, Alvaro, Nelson, Yvan).
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 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
31

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.
- 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 3.8. Ventana que aparece despus de presionar el botn Salir

32

CAPTULO 4. CONCLUSIONES Y
RECOMENDACIONES

33

4.1

CONCLUSIONES

El reconocimiento de voz es una de las aplicaciones del


procesamiento digital de seales que permite la interaccin entre
los humanos y maquinas
Con la herramienta MALAB

se reduce la complejidad del

Procesamiento Digital de Seales


el espectro de

la seal brinda informacin relevante

de las

seales de voz
las medidas de distancias son ms sencillas y eficaces al
implementar en el sistema
el sistema para reconocer palabras es muy simple de modificar
para otras aplicaciones
la seguridad por voz ira en aumento al paso de las diferentes
etapas como filtrado, normalizado, obtencin de parmetros,
tecnologas que irn mejorando la confiabilidad y velocidad en la
toma de decisiones. estas a su vez ayudaran en la implementacin
del sistema de seguridad
la opcin de usar MATLAB como herramienta principal permiti
realizar una interfaz para un sistema de reconocimiento de voz de
sus facilidades y con capacidad de ejecutar operaciones de
procesamiento de seales llamada GUI.
4.2

RECOMEDACIONES

Realizar pruebas del reconocimiento de voz con un mayor nmero


de personas en la base de datos, para ver si mejora el rendimiento
del programa
34

Estudiar el potencial sistema de reconocimiento de voz como la


base para distintas operaciones sea la posibilidad de ser
modificado e innovado para futuras investigaciones

35

Das könnte Ihnen auch gefallen