Você está na página 1de 15

RESUMEN EJECUTIVO

El presente trabajo tiene como objeto el anlisis y reconocimiento de voz a nivel de


software aplicados a una seal analgica gravada desde nuestro computador. Para
conformar este proceso de reconocimiento tenemos que realzar una segmentacin
de tramas, luego un enventanado a la seal, puesto q con un enventanamiento
rectangular, existe cierta distorcion al llevar al dominio de frecuencia, es por eso
que utilizamos la ventana de Hamming. DEspues aplicar la DFT y el logaritmo
complejo a la seal aplicada con DFT, una vez tengamos el resultados del logaritmo
complejo, tenemos q aplicar la IDFT llevando la seal a un dominio desconocido
llamada cepstrum. Luego se realiza una conversin de la frecuencia en hertzios a la
frecuencia en escala Mel.
El uso de la escala Mel, que modela la percepcin de un odo humano, mejorar el
rendimiento del reconocedor. Para luego hallar los COEFICIENTES CEPSTRUM EN
FRECUENCIA MEL (MFCC) que es una representacin definida como los coeficientes
de la DCT del logaritmo de la energa de la
seal de voz en cada banda perceptual,
Todo el proceso se realiza en el programa Matlab, que es un programa de apoyo
matemtico generalmente en las ramas ingenieriles.
Los comandos ms importantes en MatLab para lograr el reconocieminto de voz son
DFT y IDFT adems de log() que es el logaritmo complejo y el enventanamiento de
haming.
INTRODUCCION
EL PROBLEMA DEL RECONOCIMIENTO DEL HABLA
Durante las ltimas dcadas, a medida que la industria del tratamiento de la
informacin ha ido avanzando, se ha venido estudiando la posibilidad de desarrollar
interfaces hombre-mquina distintas a las habituales.
Una de las disciplinas en las que ha habido ms actividad investigadora y
productiva es el reconocimiento del habla. La posibilidad de comunicarse con
dispositivos electrnicos mediante
la voz supone una aplicacin muy demandada tanto para la investigacin como
para la industria.
El proceso consiste en transcribir a texto una seal de voz recibida. A finales de la
dcada de los 60 se empiezan a proponer las primeras estrategias para resolver el
problema, usando modelos estadsticos clsicos. Sin disponer todava de un modelo
para la seal de voz y dada la alta variabilidad de los patrones, no se conseguan
alcanzar tasas de probabilidad de error aceptables.
APLICACIONES
Aunque como otras interfaces hombre-mquina, el reconocimiento de voz puede
aplicarse en
cualquier interactuacin con uno ordenador, podemos destacar las siguientes
aplicaciones:
Control por comandos: son sistemas de reconocimiento de habla diseados para dar
rdenes a un computador. Reconocen un vocabulario muy reducido de comandos de
actuacin, lo que incrementa su rendimiento.

Figura 1.1. Con las velocidades de clculo actuales, puede implementarse un


sistema sencillo
de reconocimiento de voz en un microprocesador porttil.
Traduccin de conferencias en vivo: pueden combinarse tcnicas de reconocimiento
y de
sntesis de voz para traducir conferencias telefnicas entre interlocutores de
distintos
idiomas. Dada su complejidad, esta aplicacin est comenzando a investigarse.
Transcripcin automtica: es el uso ms comn de las tecnologas de
reconocimiento de
voz. Al usarse frecuentemente en aplicaciones muy especficas, como en el dictado
de
recetas mdicas y diagnsticos o el dictado de textos legales, se usan vocabularios
concretos para incrementar la precisin del sistema.

Figura 1.2. El dictado de diagnsticos mdicos permite al profesional concentrarse


en su
tarea y transcribir sus percepciones de manera rpida y sencilla.
Subtitulado de pelculas: las tcnicas de reconocimiento pueden combinarse junto a
mtodos de separacin para subtitular pelculas a partir de la pista de audio de la
cinta.
Esto supone un aspecto complejo que an est en fase de investigacin.
Telefona: algunos sistemas permiten a los usuarios ejecutar comandos mediante el
habla,
en lugar de pulsar tonos. En muchos casos, se usa una interfaz de voz para navegar
por los
mens
.
Interactuacin con terminales porttiles: los sistemas porttiles de pequeo
tamao,
tienen unas restricciones muy concretas de tamao y forma. En estos casos, el
habla
representa una interfaz natural para introducir datos en estos dispositivos.
Sistemas diseados para discapacitados: los sistemas pueden ser tiles para
personas con
discapacidades que les impidan teclear con fluidez o que tengan problemas
auditivos, ya
que pueden usarlos para obtener texto escrito a partir de habla.

Pruebas para algoritmos de tratamiento digital de la voz: los reconocedores de voz


pueden utilizarse para transcribir los resultados de distintos algoritmos de
separacin o cancelacin de silencios, para evitar la subjetividad inherente a
puntuar dichos algoritmos
con opiniones de usuarios.
OBJETIVOS
Principal.- Como objetivo principal del proyecto, es el de realizar un programa en
MATLAB capaz de diferenciar y reconocer la voz de diferentes individuos, para luego
poder simularlo.
Especificos.- Como objetivos especficos tenemos el de analizar la seal de voz para
su respectivo proceso de reconocimiento, utilizando diferentes algoritmos y
enventanados, etc.
Conversin de la frecuencia en hertzios a la frecuencia en escala Mel ya que esta
escala Mel, que modela la percepcin de un odo humano, mejorar el rendimiento
del reconocedor.
Simular dentro de MATLAB el programa para ver el correcto funcionamiento.
MARCO TEORICO
PREPROCESADO DE LA SEAL
La voz es una seal cuasi-estacionaria, es decir, que sus caractersticas
permanecen constantes durante unos instantes, cambiando cada poco tiempo. Esto
implica la necesidad de analizar la seal en pequeas tramas en las que sus
propiedades no cambian.
Por otro lado, como se ver posteriormente, debemos extraer un conjunto compacto
y eficiente
de caractersticas importantes de la seal de voz, y desechar aquellas que no nos
sean tiles para el proceso de reconocimiento del habla.
Antes de extraer estas caractersticas esenciales de la seal de voz, debemos
prepararla para
ello. Esta preparacin es similar a la que se aplica en otras aplicaciones, y viene
descrita por el
siguiente diagrama de bloques:

Figura 1.3. Preprocesado de la seal de voz, dividido en tres bloques:


prenfasis, segmentacin y enventanado.

Se supone que slo analizamos el tramo que nos interesa de la voz, es decir, que el
silencio de
antes y despus ha sido eliminado con un algoritmo de deteccin de actividad vocal
(a menos que tambin queramos detectar silencios). Adems, es deseable que la
seal haya sido aislada del ruido en la medida de lo posible, as como otras mejoras
previas que podamos aplicarle. Tras estos bloques, se procedera a la extraccin de
las caractersticas importantes mediante el
procedimiento que veremos posteriormente.
Prenfasis
La seal de voz digitalizada se hace pasar por un sistema de primer orden para
aplanar su
espectro, permitiendo que la codificacin sea ms uniforme. Este sistema tiene un
solo polo en
z a , siendo a un nmero cercano a uno, para que no se distorsione
demasiado la seal.

Segmentacin en tramas
Se seccionan W N muestras de voz consecutivas en una nica trama. Las tramas
consecutivas estn separadas en W M muestras, por lo que hay un solapamiento
entre tramas de W W N M muestras.

Enventanado de tramas
Cada trama es multiplicada por una ventana de N muestras, w n. Dicha
ventana ser elegida de manera que se minimicen los efectos adversos de recortar
una seccin de la seal de voz.

TRATAMIENTO Y REPRESENTACIN DE LA SEAL DE VOZ


2.2.1 Enventanado
La segmentacin trama a trama se realiza mediante la conocida tcnica de
enventanado. La
ventana idnea para las aplicaciones que nos interesan es la ventana de Hamming:

La ventana de Hamming tiene dos caractersticas que nos interesan al tratar con la
voz:

No distorsiona la envolvente del espectro, por lo que ser idnea para anlisis
espectral.
Permite solapamiento entre ventanas, dando continuidad al anlisis por tramas y en
tiempo real.

Figura 2.2. Utilidad de la ventana de Hamming. (a) Trama de voz segmentada. (b)
Su espectro
distorsionado debido a la segmentacin. (c) La ventana de Hamming. (d) La trama
enventanada. (e) Su espectro sin distorsin.
Se suele utilizar una duracin de 25 mseg para la ventana. Esto fija, junto a la
frecuencia de
muestreo, la longitud W N . Adems, el desplazamiento entre ventanas ronda los 10
mseg , por lo que solapan entre s.

Figura 2.3. Modelo clsico de generacin de la voz. (a) El aire atraviesa el tracto
vocal y produce la voz. (b) Representacin de las seales involucradas en el
modelo, extrada de voz.
La excitacin y el sistema tienen un fuerte significado fsico:
enrepresenta el aire modulado por las cuerdas vocales. Es una seal
peridica o
ruidosa.
hnmodela el tracto vocal por el que pasa el aire hasta salir al exterior. Es
un filtro con
funcin de transferencia racional.
El reconocimiento de voz est basado en la forma que tiene el tracto vocal, lo cual
determina los
fonemas que se estn diciendo en ese momento. Gracias a la distincin entre
excitacin y
sistema, podemos basar el reconocimiento en hn, pues modela el tracto
vocal.
Debemos encontrar un procedimiento para encontrar el sistema hna partir de
la seal s n,
pues representando aqul adecuadamente tenemos la mejor seleccin de
caractersticas posible
para el reconocimiento de voz.
Anlisis cepstrum
El dominio cepstrum
Una transformacin homomrfica es una transformacin ^que convierte una
convolucin en
una suma:

En esta seccin introducimos el cepstrum como una transformacin homomrfica


que nos permite
separar la excitacin del filtro. Mostraremos que podemos encontrar un valor L N tal
que el
cepstro del filtro 0 , L h n n N , y tal que el cepstro de la excitacin
0 , L e n n N .

Bajo estas condiciones, podemos recuperar hna partir de s n, el cual


ser de extrema
utilidad como observacin de partida para el proceso de reconocimiento.
El cepstrum complejo de una seal s nse define como:

Figura 2.4. Pasos para el clculo del Cepstrum de la voz.


Aqu, S kes la DFT de la seal de voz s n:

No obstante, si la seal s n (como es el caso de la voz), rara vez


utilizaremos el cepstrum
complejo. Introducimos el cepstrum real:

El cepstrum real coincide con la parte par del cepstrum. A partir de aqu,
utilizaremos la notacin
snaunque nos refiramos al cepstrum real de la seal.
Deconvolucin
Puede demostrarse que el cepstrum de la voz tiene una forma como la que se
muestra en la
grfica.

Figura 2.5. Representacin del cepstrum de la seal de voz. Las muestras cercanas
al origen corresponden al cepstrum del filtro, hn. Las muestras exteriores no
nos interesan pues corresponden al cepstrum de la excitacin. Extrado de [S. VOZ].
En estas condiciones, podemos recuperar hnsimplemente aplicando liftering
(recortar la parte
de la seal que nos interesa, en el dominio cepstrum) sobre la parte baja de la
grfica anterior.
Aplicando la transformacin homomrfica inversa, puede obtenerse hna partir
de hn
fcilmente.
Ahora que hemos introducido el concepto de cepstrum de una seal, matizaremos
que no
utilizaremos las muestras de hncomo coeficientes para el reconocimiento,
sino otros
coeficientes cepstrum que han dado mejores resultados en la aplicacin que nos
ocupa.
La escala de frecuencia Mel
Existen escalas de frecuencia en las que el odo humano se comporta de manera
ms uniforme
frente a los sonidos que recibe. Una de ellas es la escala Mel, que se relaciona con
la frecuencia
en hertzios mediante la siguiente expresin emprica:

Esta transformacin se muestra en la siguiente grfica:

Figura 2.6. Conversin de la frecuencia en hertzios a la frecuencia en escala Mel.


El uso de la escala Mel, que modela la percepcin de un odo humano, mejorar el
rendimiento del reconocedor.
COEFICIENTES CEPSTRUM EN FRECUENCIA MEL (MFCC)
2.3.1 Definicin
Es una representacin definida como los coeficientes de la DCT del logaritmo de la
energa de la
seal de voz en cada banda perceptual:

El siguiente diagrama de bloques indica las operaciones a realizar sobre la seal s


(n) para
Obtener C MFCC (m) :

Figura 2.7. Diagrama de flujo para el clculo de los coeficientes MFCC. Lo primero
que se hace es dividir la energa en M M bandas. En cada banda, la seal queda
ponderada por el correspondiente filtro perceptual del odo ( ) m H f . Despus, se
calcula la DCT del logaritmo de la energa para obtener los coeficientes.
El filtro perceptual tiene la forma:

Figura 2.8. Filtro perceptual del odo humano. Est elegido de manera que los
anchos de banda
son uniformes en unidades de frecuencia Mel.
El filtro perceptual tiene la expresin analtica:

Aunque (2.1) no constituya una transformacin homomrfica, en la prctica, esta


representacin

es aproximadamente homomrfica para filtros que tienen una funcin de


transferencia suave.
Caractersticas y aplicacin al reconocimiento de voz
Los coeficientes ( ) MFCC c m de (2.1) se utilizan como parmetros para construir
las muestras de la secuencia observada en reconocimiento de voz.
En general, las caractersticas en el dominio del tiempo son mucho menos precisas
que aquellas del dominio de la frecuencia. Esto es porque muchas caractersticas,
como los formantes (tiles en el reconocimiento de vocales), estn mejor
caracterizados en el domino de la frecuencia.
Como vimos anteriormente, la voz es una seal cuasi-estacionaria, por lo que sus
caractersticas espectrales cambian en el tiempo, jugando estos cambios un
importante papel en la percepcin humana. Una forma de capturar esta informacin
es usar los coeficientes delta cepstrum que miden el cambio de los coeficientes
cepstrum a lo largo del tiempo.
RESULTADOS

EN ESTA IMAGEN PODEMOS OBSERVAR LA REPRODUCCION DE LAS 3 VOCES


ALMACENADAS EN EL PROGRAMA, LAS CUALES SERAN IDENTIFICADAS CON LAS
OTRAS 6 VOCES PARA RECONOCERLAS.

EN ESTA IMAGEN OBSERVAMOS QUE NOS DA LA OPCION DE ELEGIR CON CUAL DE


LAS 6 VOCES GRABADAS PODEMOS TRABAJAR, PARA QUE REALICE LUEGO LA
RESPECTIVA COMPARACION Y RECONOCIMIENTO.

AL ELEGIR LA OPCION 3 VEMOS QUE APARECE EN PANTALLA Y A LA VEZ


ESCUCHAMOS LA 3RA VOZ ELEGIDA

FINALMENTE TENEMOS EL RESULTADO EN LA CUAL LA PERSONA 3 CONCUERDA CON


LA GRABACION DEL SUJETO 1 QUE ESTABA ALMACENADA EN EL PROGRAMA.
CONCLUSIONES
Se pudo realizar el reconocedor de voz con las caractersticas mencionada en los
objetivos especficos, para su correcta aplicacin en diferentes campos de la
ciencia.
Este programa fue correctamente simulado en matlab utilizando los comandos
respecivos dentro del mismo. A pesar de ello existen muchas formas de realizar
este reconocedor de voz y muchos mas mtodos para perfeccionarlo.
ANEXOS
%% RECONOCIMIENTO DE VOZ.
% ---- Etapa adquisicion de los coeficientes cepstrum.
k=16
; % numero de centroides requeridos.
disp('Armando la base de datos');
disp(' ');
for i = 1:3
% Carga los datos de comparacion para cada
persona.
file = sprintf('s%d.wav',i);
mensajea=sprintf('reproduciendo a la persona %d',i);
disp(mensajea);
[s, fs] = wavread(file);
v = mfcc(s, fs);
code{i} = vqlbg(v, k);

% calcula los coeficientes mfcc


% calcula los datos de comparacion.

ID=audiodevinfo(0,fs,16,1);
player=audioplayer(s,fs,16,ID);
play(player);

end

pause(3);

clc;
% ---- Eleccin de
disp('Trabajar con
disp('Trabajar con
disp('Trabajar con
disp('Trabajar con
disp('Trabajar con
disp('Trabajar con

la
la
la
la
la
la
la

persona
persona
persona
persona
persona
persona
persona

de trabajo.
1:
1');
2:
2');
3:
3');
4:
4');
5:
5');
6:
6');

selector=input('Eliga una opcion:


clc;

');

file = sprintf('p%d.wav',selector);
mensajea=sprintf('reproduciendo a la persona %d (persona elegida)',selector);
disp(mensajea);
[s, fs] = wavread(file);
ID=audiodevinfo(0,fs,16,1);
player=audioplayer(s,fs,16,ID);
play(player);
pause(3);
% ---- caculando los datos de comparacion y comparando.
v = mfcc(s, fs);
% calcula los coeficientes mfcc.
distmin = inf;
% distancia minima-condicion inicial.
k1 = 0;
for l = 1:length(code)
% para cada conjunto de datos almacenado
d = disteu(v, code{l}); % distancia euclideana
dist = sum(min(d,[],2)) / size(d,1);
if dist < distmin
distmin = dist;
k1 = l;
end
end
clc;
disp('RESULTADO');
if distmin < 5.5
msg = sprintf('persona %d concuerda con el sujeto %d', selector, k1);
disp(msg);
else
msg = sprintf('persona desconocida');
disp(msg);
end