Professional Documents
Culture Documents
Facultad de Ingeniera
Escuela de Ingeniera Mecnica Elctrica
FACULTAD DE INGENIERA
TRABAJO DE GRADUACIN
II
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA
FACULTAD DE INGENIERA
III
IV
V
VI
VII
VIII
DEDICATORIA
Dedico este trabajo a todas las personas que nunca han dejado de creer,
a las que han hecho historia con su lucha, a las que siempre han estado y a las
que siempre estarn.
IX
AGRADECIMIENTOS A:
X
NDICE GENERAL
2. RECONOCIMIENTO DE VOZ
2.1. Planteamiento del problema. 27
2.2. Modelado de la voz 27
I
2.3. Obtencin de informacin mediante micrfono.. 31
2.4. Preprocesado 32
2.4.1. Muestreo y cuantificacin..... 32
2.4.2. Eliminacin del ruido. 35
2.4.3. Filtro de Pre-nfasis . 36
2.4.4. Segmentacin. 36
2.5. Extraccin de caractersticas 37
2.5.1. Prediccin lineal. 38
2.5.2. Cepstrum. 41
2.6. Medidas de distancia.. 46
CONCLUSIONES. 53
RECOMENDACIONES 55
BIBLIOGRAFA 57
APNDICE 63
II
NDICE DE ILUSTRACIONES
FIGURAS
1. Patrn omnidireccional... 4
2. Patrn bidireccional........ 5
3. Patrn cardioide... 5
4. Patrn hipercardioide.. 6
5. Aparato Fonatorio Humano........ 10
6. Corte esquemtico de la laringe segn un plano horizontal. 11
7. Modelado acstico del tracto vocal.. 28
8. Modelo de produccin de voz 29
9. Modelo de produccin de voz basado en LPC... 40
10. Modelo de la tcnica Homomrfica...... 42
11. Modelo Coeficientes Cepstrales 43
12. Diagrama esquemtico del Sistema de Reconocimiento de Voz 47
13. Interfaz grfica......... 49
14. Entorno grfico modo de grabacin. 50
15. Entorno grfico modo de reconocimiento 51
TABLAS
I. Resumen de la clasificacin acstica de los sonidos 13
II. Formantes voclicos....... 14
III. Valores de Parmetros para el reconocimiento de voz 37
III
IV
RESUMEN
V
VI
OBJETIVOS
General
Especficos
VII
VIII
INTRODUCCIN
IX
X
1. SISTEMA DE RECONOCIMIENTO DE VOZ
1.1.1 Micrfono
1
En funcin de esta respuesta en frecuencia o fidelidad se elabora la llamada
Curva de respuesta de un micrfono, que es la representacin grfica del nivel
obtenido en la captacin de sonidos de igual intensidad, pero de distinta
frecuencia.
- Bidireccionales: captan tanto el sonido que llega por su parte frontal, como
por su parte posterior.
2
5. Rango dinmico: se puede definir de dos maneras:
Las dos maneras son validas, por lo que generalmente los fabricantes
incluyen la referencia de salida mxima y la referencia de nivel de pico en las
especificaciones del micrfono. Para aclarar mejor esta caracterstica nos
referiremos a los siguientes dos trminos.
3
Si el micrfono es de alta impedancia y se tiene un cable largo se produce
una prdida muy grande. Si se tiene una impedancia baja se puede utilizar un
cable muy largo y no se pierde tanto la seal. Por ltimo, se puede bajar la
resistencia para evitar prdidas en altas frecuencias.
1. La Directividad
4
Micrfono bidireccional: en este caso el diagrama polar muestra como
captan por la parte frontal y la lateral (vese figura 2), como ejemplo tenemos el
micrfono de gradiente de presin.
5
Figura 4. Patrn hipercardioide
2. El Transductor
6
o Micrfono Dinmico: trabajan por medio de induccin electromagntica, la
vibracin del diafragma provoca el movimiento de una bobina mvil o cinta
corrugada ancladas a un imn permanente que genera un campo magntico
que a su vez genera una tensin elctrica, que es la seal de salida. Esta seal
elctrica es anloga. Hay dos tipos bsicos:
Micrfono de bobina mvil o dinmico
Micrfono de cinta
o Micrfono de carbn
o Micrfono de cristal
o Micrfono de cermica
3. La Utilidad
7
2. Micrfonos de estudio: no tienen proteccin contra la manipulacin, pero
estn situados en una posicin fija y protegido con gomas de las vibraciones.
1.1.2. MATLAB
El lenguaje esta construido por cdigo llamado M-code que puede ser
fcilmente ejecutado en la ventana de comandos. Con lo cual se pueden crear
funciones, etc. Pero la razn principal para la eleccin de este lenguaje de
programacin son las herramientas que proporciona para el procesamiento de
seales, y el conjunto de funciones para el procesamiento digital.
8
Adems, para crear entornos grficos se puede utilizar el GUIDE de
MATLAB, que provee herramientas para crear GUIs, Graphical User Interface,
con lo cual se puede crear la forma del entorno grafico as como asociar
funciones a los elementos del GUI. MATLAB tambin incluye funciones para
manipular archivos.
9
1.1.3. Seal de voz
La voz humana se produce por medio del aparato fonatorio. Este esta
formado por los pulmones como fuente de energa, en forma de flujo de aire, la
laringe que contiene las cuerdas vocales, la faringe, las cavidades oral y nasal y
una serie de elementos articulatorios: los labios, los dientes, el alveolo, el
paladar, el velo del paladar y la lengua(vase figura 5).
Fuente: http://www.eie.fceia.unr.edu.ar/~acustica/biblio/biblio.htm#4a
10
Figura 6. Corte esquemtico de la laringe segn un plano horizontal.
11
Varios de los elementos de la cavidad supraglotica se controlan a voluntad,
permitiendo modificar dentro de mrgenes muy amplios los sonidos producidos
por las cuerdas vocales o agregar partes distintivas a estos, y hasta producir
sonidos propios. Esto se efecta con dos mecanismos principales: el filtrado y la
articulacin.
12
Dada la anterior explicacin es necesaria una clasificacin acstica, como la
que se resume en la tabla I.
Fuente: http://liceu.uab.es/~joaquim/phonetics/fon_anal_acus/fon_acust.html
1.1.3.2. Formantes
Los formantes son elementos que sirven para distinguir componentes del
habla humana, principalmente, las vocales y sonidos sonantes. El formante con
la frecuencia ms baja se llama F1, el segundo F2, el tercero F3, etc.
Normalmente slo los dos primeros son necesarios para caracterizar una vocal,
aunque la pueden caracterizar ms formantes. Generalmente, los formantes
posteriores determinan propiedades acsticas como el timbre.
13
No todos los sonidos se componen de formantes definidos. Solamente
aparecen en sonantes, que incluyen los sonidos pulmonares: vocales,
aproximantes y nasales. Las nasales tienen un formante adicional F3, en torno
a los 1500 Hz.
Aqu estn algunos anchos de banda entre los cuales se localizan las
vocales:
Formantes Voclicos
Vocal Regin principal
formantica
/u/ 200 a 400 Hz
/o/ 400 a 600 Hz
Fuente: http://es.wikipedia.org/wiki/Formante
14
1.2 Procesamiento digital de seales
Ecuacin 1
j 2k
X k X e j
2k X e N
N
15
Como la transformada de Fourier es peridica en con perodo 2 , la
resultante secuencia es peridica en k con periodo N. La secuencia de
muestras es peridica dado a que los N puntos estn igualmente espaciados
iniciando desde cero. Por lo que la misma secuencia se repite mientras k varia
en el rango de 0 k N 1 .
Ecuacin 2
x ^ [ n] x[n rN ] x[n]
r
[n rN ]
r
Ecuacin 3
x ^ [n],0 n N 1
x[ n]
0, otherwise.
16
Alternativamente, dada la secuencia de los coeficientes de Fourier X[k], se
puede encontrar x^[n] y utilizar la ecuacin anterior para obtener x[n]. Cuando
las series de Fourier son utilizadas de este modo para representar secuencias
de duracin finita, es llamada la transformada discreta de Fourier.
Ecuacin 4
2k
k para 0 k N 1
N
Ecuacin 5
N 1
2k
X[k] = X(ej)|= k= = x[n]e 2nk / N
para 0 k N 1
N n 0
17
Es importante notar una cosa, siendo M la duracin de la seal x[n] y N el
perodo de x^[n], si M N entonces la seal x[n] puede ser recuperada a partir
de x^[n] y el exceso de nmero de puntos en un perodo de x^[n] son iguales a
cero. Por otro lado, si M N sucede un traslape al formarse la extensin
peridica, entonces se dice que ocurre time-aliasing.
A partir de x[n] o x^[n] se puede obtener una o la otra segn las ecuaciones
anteriores, pero la distincin entre una y la otra se hacen ms evidentes cuando
se analizan las propiedades de la DTF. Como la DTF consiste en muestras de
la transformada de Fourier, las propiedades de linealidad, periodicidad y
simetra de la transformada de Fourier son ciertas tambin para la DTF.
Adems para todas las expresiones de las propiedades dadas se especifican
los rangos, para x[n] de 0 n N 1 y para X[k] de 0 k N 1 , y ambas son
cero fuera de estos rangos. A continuacin se resumen estas propiedades.
Ecuacin 6
N 1
X [k ] x[n]e j 2kn / N para 0 k N 1 (DTF)
n 0
Ecuacin 7
1 N 1
x[n] X [k ]e j 2kn / N para 0 n N 1 (IDTF)
N k 0
18
2. Extensin Peridica:
Ecuacin 8
x^ [n] x[n mN ]
m 0
3. Linealidad:
Ecuacin 9
4. Periodicidad:
Ecuacin 10
X[k] = X[k+N]
Ecuacin 11
X[k]=XR[k] + j XI[k]
Entonces,
Ecuacin 12
2
X [k ] X R2 [k ] X I2 [k ]
Ecuacin 13
Arg X [k ] arctan X I [k ] / X R [k ]
19
6. Transformada de Fourier de una secuencia con retraso:
Ecuacin 14
j 2kn0
Ecuacin 15
Una convolucin lineal de h[n] y x[n] resulta cuando las secuencias DTF de
Ny-puntos son computadas para h[n] y x[n], donde Ny es la duracin de y[n]. De
otro modo, una convolucin circular resulta.
Ecuacin 16
Ecuacin 17
N 1
y[n] h[k ]x[n k ] para todo n.
k 0
20
Denotamos la ecuacin anterior como la convolucin lineal. Se sabe que la
transformada de Fourier es til para convertir una operacin de convolucin en
una multiplicacin.
Ecuacin 18
N 1
y ^ [ n] h^ [ k ] x ^ [ n k ] para 0 n N 1
k 0
O mejor dicho,
Ecuacin 19
21
1.2.3. Transformada Rpida de Fourier
Ecuacin 20
N
X (k ) x( j ) N( j 1)(k 1)
j 1
Ecuacin 21
1N
x( j ) X (k ) N ( j 1)( k 1) donde N e ( 2i ) / N
N k 1
22
1.2.4. Ventaneo
Ecuacin 22
1,0 n N
wn
0, otherwise
Pero hay que considerar las discontinuidades que esto produce en los
extremos de la seal, las distorsiones, por otro lado el parmetro de la amplitud
se ve siempre un poco afectado.
23
2. Ventana Hanning: se define como
Ecuacin 23
Ecuacin 24
Ecuacin 25
k 1 k 1
w[k ] 0.42 0.5 cos(2 ( )) 0.08 cos(4 ( )), k 1,..., n
n 1 n 1
Los efectos en el dominio del tiempo para esta ventana no son muy
diferentes de los anteriores, son los efectos en dominio de la frecuencia con los
que hay que tener especial cuidado.
24
Para notar la diferencia en la eficiencia de cada una de las ventanas se hace
la siguiente comparacin:
25
26
2. RECONOCIMIENTO DE VOZ
27
En este caso, la tensin de las cuerdas afecta la frecuencia de la seal de
voz por lo que la seal de control ser parecida a la portadora en una
modulacin. Por otro lado, el tono de voz no es necesario para saber la
informacin que se esta transmitiendo. Generalmente los modelos suelen
formarse utilizando un filtro, para separar las partes trascendentales de la seal
de voz.
Fuente: www.pas.deusto.es/recursos/
28
A continuacin se muestra el diagrama del modelo en tiempo discreto del
sistema de produccin de voz:
Fuente: http://www.ee.columbia.edu/~dpwe/e6820/lectures/E6820-L05-speechmodels.pdf
29
Modelo de radiacin: describe la impedancia de radiacin vista por la
presin de aire cuando abandona los labios, que puede ser razonablemente
aproximada por una ecuacin en diferencias de primer orden, o
equivalentemente por una funcin de transferencia de la forma
Ecuacin 26
R( z ) (1 z 1 )
30
Sonidos Sordos o no Tonales: en ellos las cuerdas vocales no vibran y
existen restricciones importantes al paso del aire, por lo que son de amplitud
menor y de naturaleza ms ruidosa. Por lo que son de baja energa,
componente frecuencial uniforme y cierta aleatoriedad. Matemticamente son
modelables como ruido blanco.
Hay dos factores importantes durante este proceso. Primero esta la taza de
muestreo o que tan seguido los valores de voltaje son grabados. Segundo, son
los bits por segundo, o que tan exactamente los valores son grabados. Un
tercero podra ser el nmero de canales (mono o estereo), pero para las
aplicaciones de reconocimiento de voz un canal mono es suficiente. La mayora
de aplicaciones vienen con valores pre-determinados, para desarrollo del
cdigo se debera de cambiar los parmetros para ver lo que mejor funciona en
el algoritmo.
31
Dado a que el habla es relativamente de bajas frecuencias (entre 100Hz-
8kHz), una frecuencia de muestreo de 16000 muestras/seg provee una mayor
exactitud en la adquisicin de la informacin, la frecuencia de nyquist.
2.4. Preprocesado
32
Teorema de nyquist:
Entonces x(t) esta nicamente determinada por sus muestras x[n] = x(nT), n
2
= 0, 1, 2, si s 2 N .
T
La frecuencia N es comnmente referida como la frecuencia de Nyquist, y
Cuantificacin:
33
Se conoce como error de cuantificacin (o ruido), a la diferencia entre la
seal de entrada (sin cuantificar) y la seal de salida (ya cuantificada), interesa
que el ruido sea lo ms bajo posible. Para conseguir esto y segn sea la
aplicacin a desarrollar, se pueden usar distintas tcnicas de cuantificacin:
Cuantificacin uniforme
Cuantificacin logartmica
Cuantificacin no uniforme
Cuantificacin vectorial
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. Pero son los
mas fciles y menos costosos a implementar.
Cuantificacin logartmica:
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.
34
Cuantificacin no uniforme:
Este cuantificador utiliza la funcin de la distribucin de probabilidad,
conociendo esto se puede ajustar los niveles de reconstruccin a la distribucin
de forma que se minimice el error cuadrtico medio.
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.
Ecuacin 30
Wn
2
En x[k ] w[n k ]
k 1
Ecuacin 31
2
1 N
E avg x[k ]
N k 1
35
2.4.3. Filtro de Pre-nfasis
2.4.4. Segmentacin
36
Se realiza el algoritmo en base a las siguientes frmulas:
Ecuacin 33
Qn x[k ]w[n k ]
k
Para los valores de los parmetros que hacen falta para la implementacin
del algoritmo, se utiliza la siguiente tabla:
37
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 mas costosa la
implementacin.
38
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-1), s(n-2),, s(n-K):
Ecuacin 35
p
s ( n) k s ( n k )
k 1
La del tipo todo polo. Una interpretacin de esta ecuacin, que es una
versin simplificada, esta dada en la figura 9.
39
Figura 9. Modelo de produccin de voz basado en LPC
Fuente: www.pas.deusto.es/recursos/
40
Suponiendo que en cada cuadro hay m1p muestras, y definiendo lo
siguiente:
Ecuacin 40
= [ 1 2 p ]T
Ecuacin 41
s (n 1) s ( n p)
s (n)
s (n 1) s (n) s (n p 1) 1
p
s ( n m ) s (n m 1) s (n m 1 p)
2.5.2. Cepstrum
41
Desde el principio de la dcada de los 70 los sistemas homo mrficos han
tenido una gran importancia en los sistemas de reconocimiento de voz. Estos
sistemas homo mrficos son una clase de sistemas no lineales que obedecen a
un principio de superposicin. De estos los sistemas lineales son un caso
especial.
42
El proceso anterior se puede describir con un diagrama (vase figura 11).
43
Partiendo del anlisis de prediccin lineal tambin es posible obtener la
expresin de los coeficientes cepstrales asociados:
Ecuacin 46
c(0) log(1) 0
Ecuacin 47
i 1
j
c(i) (i ) (1 ) ( j )c(i j ) 1 i Nc
j 1 i
44
Caractersticas:
los coeficientes polinomiales de primer orden que estn representados por bt(i),
donde t es el nmero de segmento e i es el ndice de los coeficientes
cepstrales. Como el valor de p es escogido como 10, la representacin
resultante es una funcin del tiempo de 20 elementos de caractersticas.
45
2.6 Medida de distancia
46
3. PROGRAMA DE RECONOCIMIENTO DE VOZ
47
3.2. Resultados de evaluacin
48
3.3. Programa
El programa tiene una interfaz grafica, muy fcil de utilizar. Con una base de
datos de prueba de 4 nombres, esta base de datos puede ser aumentada en
cualquier cantidad. Los nombres en la base de datos son:
- Geno
- Flavio
- Rosa
- Andres
49
Grabacin
En este cuadro nos aparece la opcin de grabar la palabra para ingresarla al
reconocedor de voz, cuando la palabra es grabada aparece un cuadro de
mensaje indicando que la grabacin ha sido terminada. Por otra parte en el
plano aparece una grfica en el tiempo (eje X) y en amplitud (eje Y), de la seal
de voz grabada por el usuario (vase figura 14).
Salir
Este botn nos permite salir completamente del Sistema de Reconocimiento
de Voz.
50
Reconocimiento
El cuadro de reconocimiento brinda los resultados del sistema, con un
cuadro de mensaje indicando cual palabra ha sido reconocida y la palabra
grabada es reproducida. Adems, nos da una representacin grfica en el
plano con la informacin del espectro de frecuencias de la seal del usuario
reconocido (vase figura 14).
51
52
CONCLUSIONES
53
54
RECOMENDACIONES
55
56
BIBLIOGRAFA
57
58
BIBLIOGRAFA ELECTRNICA
5. Micrfono
http://es.wikipedia.org/wiki/Micr%C3%B3fono
6. Formante
http://es.wikipedia.org/wiki/Formante
9. Speech Modeling
http://www.ee.columbia.edu/~dpwe/e6820/lectures/E6820-L05-
speechmodels.pdf
59
11. Cepstrum
http://en.wikipedia.org/wiki/Cepstrum
17. Mathworks
www.mathworks.com
60
APNDICE
CDIGO UTILIZADO
% BASE DE DATOS
clc
Fs=11025;
y0=wavrecord(1*Fs,Fs,1)';
soundsc(y0);
word0=['geno'];
y0=chop_silencio(y0);
z0=enfasis(y0);
seg0=segmentos(z0);
c0=cepstrum(seg0);
f0=features(c0);
save geno.mat word0 f0 y0;
y1=wavrecord(1*Fs,Fs,1)';
soundsc(y1);
word1=['rosa'];
y1=chop_silencio(y1);
z1=enfasis(y1);
seg1=segmentos(z1);
c1=cepstrum(seg1);
f1=features(c1);
save rosa.mat word1 f1 y1;
y2=wavrecord(1*Fs,Fs,1)';
soundsc(y2);
word2=['flavio'];
y2=chop_silencio(y2);
z2=enfasis(y2);
seg2=segmentos(z2);
c2=cepstrum(seg2);
61
f2=features(c2);
save flavio.mat word2 f2 y2;
y3=wavrecord(1*Fs,Fs,1)';
soundsc(y3);
word3=['andres'];
y3=chop_silencio(y3);
z3=enfasis(y3);
seg3=segmentos(z3);
c3=cepstrum(seg3);
f3=features(c3);
save andres.mat word3 f3 y3;
function y = chop_silencio(s)
len = length(s); % length del vector
avg_e = sum(s.*s)/len; %promedio seal entera
THRES = 0.2;
y = [0];
for i = 1:80:len-80 % cada 10ms
seg = s(i:i+79); % segmentos
e = sum(seg.*seg)/80; % promedio de cada segmento
if( e> THRES*avg_e) % si el promedio energetico 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;
function [y]=enfasis(x)
b=[1 -0.95];
y=filter(b,1,x);
62
% FUNCIN SEGMENTACIN
%segmentos
%segmenta la seal en tramas de 30ms
%[segs]=segmentos(y)
function [segs]=segmentos(y)
len = length(y); %longitud del vector
num_segments = floor(len/80) -2; % redondeamos el numero de
segmentos
segs = zeros(num_segments,240); % matriz de segmentos
num_segments x 240
win = hamming(240)'; % ventana hamming de 240 puntos(30ms)
win=coeficients (numero de muestras en el analisis )
for i = 0:num_segments-1
inicio = i*80+1;
segs(i+1,1:240) = (y(inicio:inicio+239).*win); %multiplicamos por la
ventana %hamming
end;
% FUNCIN CEPSTRUM
%
% (EXTRACCIN DE LOS COEFICIENTES CEPSTRALES)
%cepstrum
%Encuentra los coeficientes cepstrales de cada segmento
%[cc]=cepstrum(seg)
63
r = rceps(segs(i,:));
c(i,:)= r(1:10);
end
%
% normalizacion de los coeficientes cepstrales
sum_c = sum(c);
avg_c = sum_c/M;
%
%sustrayendole el minimo, solo las que estan arriba del promedio los
%fonemas
for i=1:M
c(i,:)= c(i,:)-avg_c; % smoothened spectrum
end
function ftr=features(c)
[M,N] = size(c);
ftr = zeros(M-8,20);
for i = 1:M-8
%caracteristicas de orden cero (coeficientes cepstrales)
ftr(i,1:10)=c(i,1:10);
%caracteristicas de primer orden
b = zeros(1,10);
for j = 0:8 % aqui se sacan los coeficientes polinomiales para cada
segmento
b = b+ p1(j+1,:).*c(i+j,:); % numerador de la ecuacion
end;
ftr(i,11:20)=b/sum_p1; % dividiendolo en el denominador
end; %se obtienen los valores de b
64
% FUNCIN DE DISTANCIA
%distancia
%
%[dist]=distancia(ftr_a,ftr_b)
% INICIALIZACION
65
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++
% PROGRAMA PRINCIPAL
load 'handel';
wavwrite(y,'handel');
rec=reconociendovoz(y0);
handles.voz_grabada=y;
handles.feature_datos=rec
handles.feature_f0=f0;
handles.feature_f1=f1;
handles.feature_f2=f2;
handles.feature_f3=f3;
handles.feature_y0=y0;
handles.feature_y1=y1;
handles.feature_y2=y2;
handles.feature_y3=y3;
handles.output = hObject;
66
varargout{1} = handles.output;
handles.voz_grabada = y;
handles.feature_datos=rec1
plot(y);
msgbox('Grabacion terminada');
guidata(hObject, handles);
%load rec.mat;
%handles.feature_voz=f;
% --- Executes on button press in identificar.
function identificar_Callback(hObject, eventdata, handles)
% hObject handle to identificar (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
rec1=handles.feature_datos;
y0=handles.feature_y0;
y1=handles.feature_y1;
y2=handles.feature_y2;
y3=handles.feature_y3;
f0=handles.feature_f0;
f1=handles.feature_f1;
f2=handles.feature_f2;
f3=handles.feature_f3;
67
d1=distancia(f0,rec1)
d2=distancia(f1,rec1)
d3=distancia(f2,rec1)
d4=distancia(f3,rec1)
if (d1 < d2) & (d1 < d3) & (d1 < d4)
plot(abs(fft(y0)));
soundsc(y0);
msgbox('Usted dijo: Geno');
else if (d2 < d1) & (d2 < d3)& (d2 < d4)
plot(abs(fft(y1)));
soundsc(y1);
msgbox('Identificado: Rosa')
else if (d3 < d1) & (d3 < d2) & (d3 < d4)
plot(abs(fft(y2)));
soundsc(y2);
msgbox('Identificado: Flavio');
else if (d4 < d1) & (d4 < d2) & (d4 < d3)
plot(abs(fft(y3)));
soundsc(y3);
msgbox('Identificado: Andres');
end
end
end
end
% FUNCIN RECONOCIENDOVOZ
function rec=reconociendovoz(y)
% load data
y=chop_silencio(y);
z=enfasis(y);
seg=segmentos(z);
c=cepstrum(seg);
f=features(c);
rec=f;
save('rec.mat','f','y');
68