Está en la página 1de 12

CENTRO UNIVERSITARIO DE LOS VALLES

INGENIERIA EN MECATRONICA
ANALISIS DE SISTEMAS Y SEALES
PROFESOR: MIGUEL ANGEL DE LA TORRE GOMORA
PROYECTO: RECONOCIMIENTO AUTOMATICO DE LOCUTOR
DAZ PREZ SAMUEL: 209674837
25 DE MAYO DEL 2016
INTRODUCCION
La voz es el instrumento de comunicacin humana que posee caractersticas que
lo distinguen de los dems por su facilidad de uso, a diferencia de la escritura que
requiere elementos adicionales (papel, lpiz, mquina de escribir, computadora,
etc.), adems la adquisicin de la seal de voz se puede realizar con instrumentos
poco invasivos a diferencia de los requeridos para tomar una huella dactilar,
imagen del iris, muestra de ADN, etc.
Siendo la voz la forma ms natural de comunicacin humana, el procesamiento
del habla se ha convertido en un rea de gran inters dentro del procesamiento de
seales. Resultado de este inters es el desarrollo de diversas tecnologas
orientadas al tratamiento de las seales de voz, conocidas en su conjunto como
tecnologas del habla, las cuales comprenden dos reas: sntesis de voz y
reconocimiento vocal. Este ltimo engloba el reconocimiento automtico del habla
y el reconocimiento automtico de locutor.
El reconocimiento automtico de locutor es de particular inters por el amplio
espectro de aplicaciones en las que impacta: aplicaciones tales como control de
acceso, seguridad en el uso de dispositivos, bsqueda automtica de datos
asociados a un locutor, clasificacin de audio por locutor, entre otras.
Este proyecto consistir en reconocer la identidad de una persona mediante el
anlisis y procesamiento de su voz, auxiliados por una gran cantidad de tcnicas
matemticas y de computacin, con las cuales obtendremos las caractersticas
nicas de cada una de las voces de los participantes.

VISION GENERAL DEL RECONOCIMIENTO DE LOCUTOR INDEPENDIENTE


DE TEXTO
El reconocimiento de voz es un estudio que se ha llevado a cabo durante dcadas,
desde sus inicios se han desarrollado tcnicas de computacin avanzadas para la
extraccin de las caractersticas y el modulado de voces, entre los ms recientes
descubrimientos sobresale el progreso de los vectores convencionales a los
supervectores, con los cuales se abre toda una nueva rea de exploracin.
En pocas palabras, un reconocedor automtico de locutor (RAL), es un sistema
capaz de identificar a una persona nicamente mediante su voz, cabe resaltar que
la voz humana es caracterstica de cada persona en la tierra, pues es fsicamente
imposible que dos personas posean voces similares, adems del aspecto fsico,
hay otras caractersticas que diferencian una persona de otra, como
acentuaciones, edad, estado de nimo, enfermedades, patrones de
pronunciacin, eleccin de vocabulario, etc. Las tcnicas de reconocimiento
utilizan una o varias de estas caractersticas para la identificacin del locutor.
Entre las aplicaciones que se le pueden dar a esta clase de sistemas est el
anlisis forense de llamadas, realizacin de trmites mediante contestadoras
automatizadas, entre muchas otras aplicaciones.
Entre los obstculos que aparecen en un RAL, se encuentra el de la variacin
fontica, por ejemplo, los cambios acsticos del entorno, desgaste de los
receptores o micrfonos, edad o estado de salud del locutor representan factores
indeseables en el reconocimiento. A estos factores se les conoce como
variabilidad fontica, y es uno de los problemas ms grandes al desarrollar un
sistema RAL.

ARQUITECTURA DE UN SISTEMA DE RECONOCIMIENTO AUTOMATICO DE


LOCUTOR
La figura muestra la arquitectura de los sistemas de reconocimiento automtico de
locutor, se divide en dos fases principales: fase de entrenamiento y fase de
reconocimiento. El objetivo del entrenamiento es tomar la seal de voz y obtener
un modelo que contenga las caractersticas propias de un locutor, el cual ser
almacenado en un repositorio de modelos (base de datos).
Para obtener el modelo es necesario hacer un preprocesamiento de la seal, esto
es, aplicar tcnicas para mejorarla (minimizar ruido, resaltar caractersticas, etc.),
la seal resultante es procesada para la extraccin de las caractersticas y con
stas se crear el modelo particular que identifica de manera nica al locutor
emisor de la seal.
Por otro lado, la fase de reconocimiento es la operacin propiamente del sistema
de reconocimiento automtico de locutor en el dominio de la aplicacin. Consiste
en obtener la seal de voz y aplicarle el mismo procesamiento utilizado en el
entrenamiento para encontrar las caractersticas del locutor, mismas que sern
comparadas contra las contenidas en el repositorio.
Los criterios utilizados para la comparacin estarn determinados por el tipo de
sistema de reconocimiento automtico de locutor, si es orientado a la identificacin
del locutor o a la verificacin del locutor, cada uno supone un tratamiento
diferente.

Cabe resaltar, que los sistemas de reconocimiento automtico de locutor, pueden


ser o no dependientes de texto, es decir, en los dependientes el reconocimiento de
una persona es realizado sobre la base de un mensaje para el cual el contenido
lingstico es conocido por el sistema (password o frase). En modo independiente
del texto, el sistema de reconocimiento no tiene ningn conocimiento sobre el
mensaje lingstico pronunciado por la persona.
FASE DE ENTRENAMIENTO: LA GRABACION DE VOCES
Durante esta primera fase, se realiz la captura de las voces de los participantes
en el proyecto, se inici con una grabacin de voz grupal, donde no se deca
ningn mensaje en especfico, simplemente se generaba ruido, las distancias al
centro de recepcin fueron variando, as como tambin las condiciones del
ambiente, pues primero se realiz la grabacin desde una distancia mayor,
posteriormente a una menor distancia, tambin hubo cambios en otro tipo de
ruido, tales como el ruido que genero el aire acondicionado cuando fue encendido.
Posterior a esto se realiz la grabacin individual, durante esta parte la sala de
grabacin fue totalmente desalojada, para que cada participante fuera ingresando
individualmente, con el fin de obtener una mayor claridad de la seal de su voz. En
esta etapa se grabaron mensajes especficos, los cuales fueron El murcilago
est en el rbol amarillo y murcilago, se eligieron estos mensajes puesto que
incluyen, primeramente, todas las vocales del alfabeto, y tambin por la diferencia
en tonos y acentos que se generan al pronunciar este mensaje. En esta etapa
tambin se hicieron cambios en el ambiente, tales como la variacin en el
encendido/apagado del aire acondicionado.
Por ltimo, reingresamos todos los participantes a la sala de grabacin, para
grabar los mensajes una vez ms, pero en esta ocasin con la generacin de
ruido proveniente de las plticas de los compaeros, concluyendo esto
terminamos esta etapa, teniendo ahora a nuestra disposicin todas el abanico de
grabaciones realizadas con sus respectivas variaciones, elementos necesarios
para su posterior procesamiento en la bsqueda de la extraccin de las
caractersticas clave para el reconocimiento automtico de locutor

CARACTERSTICAS DEL SISTEMA DE GRABACION


Informacin detallada de las grabaciones de la base de datos habla hispana.
Grabacin realizada para la clase anlisis de sistemas y seales.
Calendario 2016-A.
* Con un nivel para el micrfono de 47%.
* Un nivel de Microphone Boost +20.0dB.
* Grabacin:
-> 2 channel.
-> 16bit.
-> 44,100Hz (CD Quality).
* Se utiliz el programa voice recorder de Windows 10.
* El micrfono utilizado es de laptop alienware m14x R1.
*Con el respectivo modelo: 4mykf
* El driver de Audio es: Microphone (Realtek High Definition Audio).
* Con el nombre del driver: audioendpoint.inf
* La versin de driver: 10.0.10240.16384
* Hecho en el Sistema Operativo Windows 10 64 bits.

METODOLOGA EXPERIMENTAL
La metodologa de nuestro proyecto detector de locutor se realizara siguiendo la
siguiente metodologa particular, anteriormente ya se haban mencionado algunas
formas de lograrlo, nosotros elegimos este debido a su sencillez, adems
detallaremos ms la forma en la que realizaremos este proceso.
Pre-procesamiento Extraccin de Clasificacin Decisin
caractersticas
Captura Se tomara el canal Se realizara Almacenamiento Toma de
De las 1 de las mediante de decisin del
voces grabaciones Matlab caractersticas, programa de
Se recortara a 2 usando la almacenamiento acuerdo a los
segundos, serian transformada en la base de parmetros
88,200 muestras rpida datos dados
de Fourier
(FFT)

En la fase de pre-procesamiento hemos tomado todas las grabaciones disponibles


para aplicarle algunos funciones de Matlab, tal como se menciona se tom el
canal 1 de la grabacin y se recort a 2 segundos o 88,200 muestras.
Para la fase de extraccin de caractersticas, aplicaremos la funcin de FFT de
nuestro programa Matlab, de este proceso obtendremos el valor mximo de
magnitud de cada seal de voz, as como la posicin en la que este pico se

encuentre, con estos datos formaremos un vector en la forma

Pasando a la fase de clasificacin, tomaremos el vector que corresponda a


nuestra voz o a la voz correcta y a este lo llamaremos como positivo, los dems
sern negativos, todos los vectores sern almacenados en nuestra base de datos.
Por ltimo, para la toma de decisiones ser necesario comparar los vectores
formados con nuestro vector positivo, formaremos otro vector para la referencia
negativa, as con cada nuevo vector que este en prueba, se comparara a cual
punto est ms cercano, si al vector positivo o a la referencia negativa, con lo cual
se tomara la decisin de verdadero o falso segn este ms cercano al vector de
positivo o negativo.
Se realizaran varias sesiones, la primera ser de entrenamiento, donde se tomara
la prueba correcta y se comparara con nuestros vectores de positivo o negativo, lo
cual debera arrojar una decisin verdadera, posterior a esto, iremos tomando
muestras con cada vez ms ruido, verificando as el alcance y fidebilidad de
nuestro detector.
As formaremos una tabla similar a:
1 0 0 1 0 0 0 1
False True True negative
Positive Positive
Donde el 1 dentro del recuadro corresponde a la grabacin correcta con el vector
correcto, es decir son las mismas, por eso es un positivo correcto, en caso de que
fuera incorrecto se marcara un 0 lo cual sera un negativo falso. Tambin tenemos
que tomar en cuenta los falsos positivos, casos donde se acepte la muestra
aunque esta sea incorrecta, y los negativos verdaderos, en los cuales se rechaza
la muestra debido a que no corresponde a la voz positiva de nuestro vector.
Con estos nmeros podemos calcular un porcentaje de eficiencia, dividiendo 100
entre la cantidad total de muestras, y multiplicando este valor por el nmero total
de verdaderos, ya sean positivos o negativos.
En este proyecto se contara con una base de datos con las grabaciones
previamente hechas de las voces de 55 individuos, en este caso particular, se
tomara como voz autentica el caso de la voz del autor de este reporte, que sera la
voz nmero 40, para mayor informacin u obtencin de la base de datos
consltese la referencia nmero 3
Despus de la primera sesin de entrenamiento, se realizaran algunos procesos
matemticos diferentes, como filtrados en diferentes dominios, buscando con
estas una mayor eficiencia en nuestro sistema RAL.

RESULTADOS
Despus de las pruebas, los resultados obtenidos de las diferentes sesiones y
variaciones se representan en las siguientes tablas.
La sesin numero 1 corresponde a la grabacin de la palabra murcilago, las
sesiones 2 a 5 corresponden a la grabacin de la frase el murcilago est en el
rbol amarillo.
Variacin 1. Sistema base, sin filtrado, caractersticas mximo y mnimo en
frecuencia
% de aciertos % de errores
Sesin 1 54.28 45.72
Sesin 2 48.57 51.43
Sesin 3 42.85 57.14
Sesin 4 45.71 54.29
Sesin 5 40 60
Variacin 2. Filtro de media en el dominio del tiempo, caractersticas de
mximo y mnimo en frecuencia
% de aciertos % de errores
Sesin 1 60 40
Sesin 2 57.14 42.86
Sesin 3 54.28 45.72
Sesin 4 48.57 51.43
Sesin 5 51.42 48.58
Variacin 3. Filtro de media en el dominio de Fourier, caractersticas de
mximo y mnimo en frecuencia
% de aciertos % de errores
Sesin 1 62.85 27.15
Sesin 2 54.28 45.72
Sesin 3 57.14 42.86
Sesin 4 54.28 45.72
Sesin 5 51.42 48.58
Variacin 4. Mejor resultado de las variaciones 1 a 3, utilizando todos los
coeficientes de Fourier
% de aciertos % de errores
Sesin 1 77.14 22.86
Sesin 2 74.28 25.71
Sesin 3 68.57 31.43
Sesin 4 60 40
Sesin 5 62.85 27.15

Una vez terminadas las variaciones con las sesiones, podemos concluir que el
mejor mtodo para este caso fue aplicar la transformada de Fourier, para despus
tomar todos sus valores y aplicar la comparativa. Esto podra parecer fcil de
deducir, pues al considerarse ms puntos que solo el mximo y su posicin, las
caractersticas obtenidas son ms precisas, con lo cual el rango de error se reduce
notablemente.
CONCLUSIONES
Como ya se vio al inicio, los sistemas de RAL tienen una gran cantidad de
utilidades, pero para que estos sean confiables, al tratarse de sistemas
automatizados, deben de contar con una precisin del 100%, es decir que el
sistema no cometa errores de confundir una persona con otra y considerarla como
el individuo correcto, pues esto podra traer una gran cantidad de problemas,
como el acceso de personal no autorizado a zonas restringidas, realice de tramites
de personas ajenas a los titulares, etc.
Al probar diferentes tipos de manejo de las seales de nuestras voces, filtros,
normalizaciones, cortes, aplicacin de tcnicas matemticas, etc, pudimos ver
como los resultados de la eficiencia y precisin aumentaron considerablemente,
ms sin embargo no se lleg a los resultados deseados para alguna aplicacin
comercial, dejndolo entonces como un proyecto meramente escolar.
Para esto habra que explorar otras caractersticas a considerar, nuevos mtodos
de procesamiento de seales o forma de tomar los datos para la comparacin,
como los supervectores, mencionados en la introduccin del proyecto, para as
esperar aumentar la precisin a un 100% o lo ms cercano posible a dicho valor.

REFERENCIAS
[1] Kinnunen, Tomi and Lib Haizhou, An overview of text-independent speaker
recognition: from features to supervectors, preprint submitted to Speech
Communication, July 1, 2009.
[2] http://yaqui.mxl.uabc.mx/~molguin/investigacion/th/protocolo.htm
[3] https://drive.google.com/open?id=0B8TFIDma7mpsdTlWQmRDZmx5c1k
ANEXOS
Cdigo base del programa utilizado:
% Sistema base que utiliza los algoritmos bsicos para todas las etapas
del
% reconocimiento biomtrico.
clear all; close all;

% 0. Sensor. Grabaciones en el disco duro, y limitar la grabacin a 2


% segundos.
idi = 35;
[y, Fs] = audioread(['datos/VIC/vic_i' num2str(idi, '%.40i')
'_s01.m4a']);
SB.xp = y(Fs:3*Fs,1); % Seleccionar canal 1, y acotar a los segundos 2 y
3
SB.Fs = Fs;
SB.Ts = 1/Fs;
plot(SB.xp);
clear y Fs;

[y, Fs] = audioread('datos/VIC/ubm4_1.m4a');


SB.xn = y(Fs:3*Fs,1); % Seleccionar canal 1, y acotar a los segundos 2 y
3
figure;
plot(SB.xn);

% 1. Pre-procesamiento. Filtrado en el dominio de Fourier, de acuerdo a


las
% frecuencias conocidas para la voz humana:
% Hombres: 50 - 250 Hz
% Mujeres: 120 - 500 Hz
% En general: 50 - 500 Hz
% - Tambin se incluye la normalizacin
SB.Xp = abs(fft(SB.xp));
SB.Xp = SB.Xp(100:1000, :);
SB.Xn = abs(fft(SB.xn));
SB.Xn = SB.Xn(100:1000, :);
figure;
subplot(211);
plot(SB.Xp);
subplot(212);
plot(SB.Xn);

% 2. Extraccin de caractersticas. Mximo y posicin del mximo en el


% dominio de magnitud de Fourier.
[SB.ap(1), SB.ap(2)] = max(SB.Xp);
[SB.an(1), SB.an(2)] = max(SB.Xn);
figure;
plot( SB.ap(1), SB.ap(2), '*b');
hold on;
plot( SB.an(1), SB.an(2), '*r');
% 3. Clasificacin. En dos etapas: registro y comparacin.

% I. Registro
% Listo

% II. Comparacin
%%%%%%%%%% Sesin 2, todos los individuos %%%%%%%%%%%%%%%%
individuos = [1:10, 12, 15:19, 22:26, 28, 30:37, 39, 40, 42, 44:55];
e = individuos == idi;
for I=1:length(individuos)
pth = ['datos/VIC/vic_i' num2str(individuos(I), '%.40i') '_s03.m4a'];
[y, Fs] = audioread(pth);
x = y(Fs:3*Fs,1); % Seleccionar canal 1, y acotar a los segundos 2 y
3
X = abs(fft(x));
X = X(100:1000, :);
[a(I,1), a(I,2)] = max(X);
plot( a(I,1), a(I,2), '*g');

dp(I) = sqrt( (a(I,2) - SB.ap(2))^2 + (a(I,1) - SB.ap(1))^2);


dn(I) = sqrt( (a(I,2) - SB.an(2))^2 + (a(I,1) - SB.an(1))^2);

if(dp(I) < dn(I))


d(I,1) = 1;
else
d(I,1) = 0;
end
end

% 4. Evaluacin del algoritmo: tpr, fpr, curvas ROC, etc.


% Taza de aciertos o errores
dc = d == e';
aciertos = sum(dc);
ta = aciertos/length(dc);
te = 1-ta;

También podría gustarte