Beruflich Dokumente
Kultur Dokumente
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
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
ACCIONES
Activar las
ambientes
luces
de
los
diferentes
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
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.
2.2
DE VOZ
El reconocimiento de voz generalmente es utilizado como una interfaz entre humano
y computadora para algn software. Debe cumplir 3 tareas:
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
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.4
Anlisis Cepstral
14
15
2.5
El siguiente diagrama de flujo muestra las acciones que deben seguirse para que el
Reconocedor de Voz funcione.
2.6
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
METODOLOGA
19
3.2
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
20
% 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)
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
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
% 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
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
% Coloca un 1 en el vector si
% Coloca un 0 en el vector si
% Obtiene la distancia
% Coloca un 1 en el vector si
% Coloca un 0 en el vector si
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');
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;
27
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.
29
30
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.
32
CAPTULO 4. CONCLUSIONES Y
RECOMENDACIONES
33
4.1
CONCLUSIONES
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
35