Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Docente:
Ing. Wily Vargas Mateos
Estudiantes
- Carrasco Benavente, Rod Steven (171575)
- Sanchez Enciso, Isis Minerva (171582)
CUSCO – PERÚ
1
INDICE
ANTECEDENTES……………………………………………………………………………………………………….…3
1) OBJETIVO GENERAL………………………………………………………………………………………………..….4
2) MARCO TEÓRICO……………………………………………………………………………………………………...4
2.10) MUESTREO………………………………………………………………………………………………..……14
2.14) MICRÓFONO……………………………………………………………………………………………………20
RESUMEN ………………………………………………………………………………………………..………………..23
CONCLUSIONES ……………………………………………………………………………………………..…………….25
BIBLIOGRAFÍA/REFERENCIAS………………………………………………………………………………..………….26
ANEXOS………………………………………………………………………………………………………….………….27
2
CAPÍTULO I: ANTECEDENTES Y DESCRIPCIÓN DEL PROBLEMA
Antecedentes
La historia de los primeros Reconocedores de voz comienza hace 40 años pero los
sucesos más importantes que se desarrollaron dentro de la industria fueron gracias a
que AT&T introdujo su Sistema de reconocimiento de voz
En los 1990's en el sector Salud se inicia la generación de reportes clínicos por voz en
salas de emergencisa (fomentado por las empresas se seguros Blue Cross y Blue
Shield). Posteriormente se diversifico a diversas áreas de hospitales como radiología,
cardiología, etc
Actualmente las PC's integran utilerías de voz. Microsoft Corp.: Facilidades para
construir objetos de comandos de voz (voice-commandobjects) en Win95.
Quería construir un sistema/ que pudiera hacer el habla visible a las personas que
tengan problemas auditivos
La mayoría de los investigadores reconoce que era un proceso mucho más intrincado y
sutil de lo que habían anticipado. Entonces empiezan a reducir los alcances y se enfocan
a sistemas más específicos:
Dependientes del Locutor.
Flujo discreto de habla (con espacios / pausasentre palabras)
Vocabulario pequeño (menor o igual a 50 palabras)
Después:
IBM y CMV trabajan en reconocimiento de voz continuo pero no se ven resultados hasta
los 1970's.
3
1) OBJETIVO GENERAL
c) Aplicar un software que funcione como interfaz con el usuario y que además realice
las comparaciones y cálculos necesarios para el reconocimiento de voz, en este caso se
usó MATLAB.
2) MARCO TEORICO
2.1) CONCEPTOS BASICOS: Reconocedores
4
o La boca consiste de:
Puntos de articulación
Dientes
Puente alveolar (puente óseo atrás de los dientes superiores)
Existen varias maneras para analizar y describir el habla. Los enfoques más
comúnmente usados son:
Los tres enfoques proveen ideas y herramientas para obtener mejores resultados en el
reconocimiento
Pre-procesamiento
Comunicación
5
MATLAB
2.3) Métodos y Etapas para el Reconocimiento de Voz
En este Capítulo se darán a conocer los diferentes tipos de Métodos 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.
Para poder manipular la señal de voz este debe de ser transformada a una señal digital
para poder ser utilizada por el software de programación, este proceso se lleva a cabo
en etapas con consideraciones variables que hacen que la adquisición de la señal sea
de forma correcta.
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 presentación digital de la voz nos provee también con las bases para el
reconocimiento y síntesis de voz.
Algunos factores que se deben de considerar para codificar la señal dependiendo del
uso que se le dé son:
6
2.6) Muestreo y Cuantización
El habla es una señal continua y varia en el tiempo. Las variaciones en la presión del
aire se irradian desde la cabeza y se transmiten por el aire.
Un micrófono convierte esas variaciones en presión del aire a variaciones en voltaje. Una
señal Análoga se puede transmitir a través de un circuito telefónico (voltaje) o
almacenados en una cinta magnética (flujo magnético).
En el Mundo Real los estímulos sensoriales son análogos. Sin embargo, para las
computadoras es necesario digitalizar la señal (primera fase del procesamiento de la
señal)
Para esto se usan series de valores numéricos con una frecuencia regular (frecuencia de
muestreo). El número posible de valores está limitado por el número de bits disponible
para representar a cada muestra.
7
2.6.1) Muestreo
Para poder reproducir la señal análoga debe pasar por un filtro pasa-bajas a la
frecuencia de muestreo (quitar ruidos creados por el muestreo).
Si la señal varía más rápido se requiere una T más pequeña por lo tanto un menor ancho
de banda de frecuencias.
El humano produce señales de Voz desde los 100(hombre)-400(mujer) Hertz hasta los
15000Hz. Teléfono: 3100Hz por lo tanto se muestrea a 8000 Hz, inteligible pero baja
calidad. Comparado con un CD, se muestrea a 44.1Hz.
El ancho de banda es mayor para instrumentos que para voz. Pero la diferencia es audible. Por lo tanto se
requiere mayor espacio para almacenar y transmitirlo
8
2.6.2) Cuantización
Ejemplo:
Cuantización uniforme
Cuantización no uniforme
Cuantización logarítm
9
2.8) METODOS DE RECONOCIMIENTO DE VOZ
En el reconocimiento del habla, la señal de voz se ingresa a un procesamiento para
producir una representación de la voz en forma de secuencia de vectores o
agrupaciones de valores que se denominan parámetros, que deben representar la
información contenida en la envolvente del espectro.
Hay que tener en cuenta que el número de parámetros debe ser reducido, para no
saturar la base de datos, ya que mientras más parámetros tenga la representación
menos fiables son los resultados y más costosa la implementación.
Teoría que ha dado lugar a toda una familia de técnicas de reconocimiento de voz,
causando un considerable avance durante las décadas de los 70’s y 80’s.
10
CAPÍTULO III: DESARROLLO DEL TRABAJO
2.8) METODOS Y ETAPAS PARA EL RECONOCIMIENTO DE VOZ
El tipo de características que se calculan depende de:
1. Tiempo para calcularlas
2. Espacio para almacenarlas
3. Facilidad de Implementación.
Análisis mediante banco de filtros, Una muestra de voz se puede aproximar como una
combinación lineal de muestras anteriores.
R(t) T(t)
Se busca una función de alineamiento w(t) que mapee R y las partes correspondientes
de T.
Se buscan una alineación en tiempo "optima" a través de una curva que relacione el eje
de tiempo m de R al eje de tiempo del patrón T.
m=w(n) Restricciones
w(I)=1 W(NT)=NR
Se debe encontrar una medida que indique qué tan similares con los patrones R y T.
Para ello es necesario alinearlos de alguna forma.
11
2.9) DIAGRAMA DE FLUJO DE RECONOCIMIENTO DE VOZ
El siguiente diagrama de flujo muestra las acciones que deben seguirse para que el
Reconocedor de Voz funcione.
Cuando un micrófono está operando las ondas de sonido hacen que vibre el elemento
magnético del micrófono causando una corriente eléctrica hacia la tarjeta de sonido,
donde el convertidor A/D básicamente graba los voltajes eléctricos en intervalos
específicos.
13
2.10) MUESTREO
El muestreo es para transformar una señal analógica o señal continúa a una señal digital o discreta, es decir de
la señal original (analógica) se toman muestras cada determinado tiempo y se hace una copia de su valor en
tiempos definidos, de esta forma surge la frecuencia de muestreo que es la cantidad de muestras que se
tienen de una señal en una unidad de tiempo y se mide en Hz (ciclos por segundo
La frecuencia de audio que percibe el ser humano está entre los 20 Hz y 20kHz,
frecuencias más elevadas el oído humano no lo percibe.
14
Durante el proceso de cuantificación se mide el nivel de tensión de cada una de las
muestras, obtenidas en el proceso de muestreo, y se les atribuye un valor finito de
amplitud, seleccionado por aproximación dentro de un margen
de niveles previamente fijado.
Ganancia
El siguiente paso es amplificar las señales a niveles que sean manejables. La señal
vocal tiene componentes de frecuencia que pueden llegar a los 10 kHz., sin embargo la
mayor parte de los sonidos vocales tiene energía espectral significativa hasta los 5 Khz.
solamente los sonidos fricativos poseen componentes que pueden llegar a los 10 kHz.
Para tomar y no eliminar información se debe amplificar la ganancia.
Pre-procesamiento
Primero se realiza un filtrado de la señal para reducir los efectos del ruido que acompaña
la señal de voz ingresada, sin este filtrado se tendrían datos que no necesitamos.
15
También se hace una segmentación, esto es detectar el inicio y final de la señal de voz para eliminar el ruido
inicial y final, esto ayuda a optimizar memoria y hacer más veloz el tiempo de cálculo para comparaciones y
por supuesto evitar errores, para hacer esto se hace uso del nivel de energí
Filtro Pre-énfasis
Se aplica un filtro digital pasa altas de primer orden a la señal, para enfatizar las
frecuencias altas de los formantes por dos razones, primero para que no se pierda
información durante la segmentación, ya que la mayoría de la información está contenida
en las frecuencias bajas, en segundo remueve la componente DC de la señal, aplanando
espectralmente la señal.
SEGMENTACION
La segmentación consiste en cortar la señal en segmentos de análisis. La señal de voz
es asumida como estacionaria en estos segmentos.
Durante la segmentación los segmentos son guardados cada uno como la columna de
una matriz, para el posterior procesamiento de la señal de voz.
16
2.12) EXTRACCION DE LAS CARACTERISTICAS
En este paso se utiliza el método de Predicción lineal para obtener coeficientes LPC y con ayuda de Cepstrum
entender el espectro frecuencia de la señal que se va a reconocer
CALCULO DE LA DISTANCIA
Para poder realizar estas operaciones es necesario definir una medida de distancia entre
los vectores característicos.
Algunas de las medidas de distancia más utilizadas son las distancias o métricas
inducidas por las normas en espacios Lp.
La seguridad es un pre requisito básico para que las personas puedan satisfacer sus
necesidades básicas y desarrollar sus potencialidades como seres humanos, se ha
constituido como un Derecho Humano exigible.
De acuerdo con estadísticas dadas a conocer por funcionarios de la Secretaría de Seguridad Pública y de la
Procuraduría General de Justicia (PGJDF), ambas del Distrito Federal, así como el Consejo Ciudadano de
Seguridad Pública y Procuración de Justicia, en 68 por ciento de robos a casa habitación la víctima fue
abordada cuando llegaba a su domicilio; 20 por ciento abrieron la puerta al asaltante, quien se hace pasar por
prestador de algún servicio y en 12 por ciento el atraco ocurrió cuando no había nadie en la vivien
2.13 ) METOLOGIA
Primeramente, para la base de datos se realizan 5 grabaciones del usuario, las cuales se
hicieron con un micrófono y en formato .WAV a través de MATLAB a 22 KHz de
muestreo y 16 bits de resolución.
Posteriormente se hizo el filtro que elimina el ruido y aumentaba su energía para que las
grabaciones sean parecidas a sus parámetros (Normalización).
Al tener las 5 muestras sin ruido y normalizadas se obtiene el promedio de estas para
tener una única señal promediada con la señal de voz del usuario.
Con esto se obtienen vectores de 25 coeficientes LPC para cada una de las señales, que
se comparan en distancia para obtener la relación entre la señal grabada y las 3 señales
guardadas en la base de datos.
La medida de la distancia se realiza elemento por elemento uno a uno, entre la señal de
voz grabada y alguna de la de la base de datos.
Al final de la medición de las distancias se suman los coeficientes que tengan menos del
rango dado por el programa para dar el número exacto de coeficientes LPC en que se
parecen las señales.
Este procedimiento se realiza 3 veces comparando la señal grabada con cada una de las
bases de datos.
La toma de decisión se hace en base a que la señal grabada debe tener como mínimo
cierto número de coeficientes LPC, que se parecen a la señal almacenada en la base de
datos de ese usuario, si alguna de esas relaciones supera ese mínimo se da por hecho
que la voz grabada es de ese usuario
2.14) MICROFONO
19
El protector contra viento y el interruptor de filtro pasa-altas evitan las interferencias del viento o
ruidos de baja frecuencia.
20
Debido a que el análisis de predicción lineal es frecuencia y aunando que los fonemas y
pronunciación en cada nombre de los usuarios es completamente diferente, la toma de
decisión depende de la relación 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 gráfica de que usuario
corresponde la voz y le permite seleccionar la acción a realizar en el menú de FUNCIONES DEL SISTEMA. Si no
lo reconoció, no le da acceso al sistema por lo cual no podrá seleccionar ninguna acción a realizar
21
5)
CONCLUSIONES
El sistema de seguridad por voz será más confiable ya que pasara por diversos métodos
22
siendo el más importante la predicción lineal, obtención de parámetros llamados
coeficientes LPC/Cepstrum y condiciones implementadas por el programador,
disminuyendo la probabilidad de error al reconocer al usuario; Aunque un aspecto
importante a considerar y que el programador no puede corregir es si el usuario dice la
palabra en un tono de extrema alegría o extrema tristeza ya que esto modifica las
características de su voz afectando los coeficientes LPC como a su vez lo haría si el
usuario está en estado alcohólico o inconveniente.
Para corregir este problema se propuso tener más bases de datos del mismo usuario
pero en diferentes estados de ánimo, así el usuario antes de identificarse podría indicar
su estado de ánimo y el programa relacionaría su grabación en el momento, con la base
de datos asignada para ese usuario en ese estado de ánimo (Comparación de
coeficientes LPC en diferentes estados de ánimo), esto podría facilitar en gran medida el
acceso a otros usuarios es por esa razón por la cual que no se implementó esta
solución, y se optó por que el usuario grabara de forma correcta y como lo realizo en las
grabaciones cuando se diseñó su base de datos.
La seguridad por voz irá en aumento al paso de las diferentes etapas del sistema como
filtrado, normalización, obtención de parámetros y pitch, tecnologías que vallan
mejorando la confiabilidad y velocidad en la toma de decisión. Estas a su vez ayudaran
en la implementación de sistemas de seguridad eficientes.
La opción de usar MATLAB como herramienta principal permitió realizar una interfaz
para un sistema de reconocimiento de voz de uso fácil, eficaz y con capacidad de
ejecutar operaciones de procesamiento de señales llamada GUI.
Se tuvieron algunos problemas durante la realización del proyecto, los cuales fueron los
siguientes:
23
La solución para este problema fue colocar contadores que indicaran el número de
coeficientes LPC que se parecieron a los coeficientes LPC grabados en la Base de datos
de cada usuario y el número más cercano al máximo de Coeficientes LPC será el
usuario identificado, para el software es más fácil comparar un número contra otro, que
un vector de miles de números contra otro vector de miles de números, no se
comprometió la integridad o seguridad del reconocimiento sólo se agilizó el
procesamiento del software para que al usuario le pareciera más agradable y fluido.
Otro problema que se encontró fue que al aumentar la cantidad de usuarios el programa
sería más extenso y el parecido entre cada usuario y sus coeficientes LPC podría
converger en un punto, causando esto fallas en el sistema.
Este problema se pudo solucionar programando los límites de relación de cada contador
en relación con los demás haciéndolos más trabajosos para que el software no pueda
dar acceso a algún usuario si no lo ha reconocido de manera adecuada.
RECOMENDACIONES
El trabajo empleado requiere mucho énfasis en la programación de MATLAB y ajustar bien los
parámetros del código, tuvimos problemas por la versión del MATLAB de ambos ya que uno era del
2018 y otro del 2019 al menos nos retraso un tiempo para analizar bien la salida de voz
Los códigos que verificamos en diversas fuentes del internet se diferenciaban mucho a lo que
nosotros hacíamos en un inicio por el mismo problema de la versión de MATLAB
Al aplicar la entrada de voz pudimos lograr el reconocimiento de 5 palabras las cuales funcionan; sin
embargo las especificaciones de tiempo que pusimos fue de 3 segundos y al momento de probar la
simulación solo se nos aperturaba 1 segundo de esa misma entrada de voz
24
BIBLIOGRAFIA Y/O REFERENCIAS
ANEXOS
% INICIO DE LA GUIA
functionvarargout = recvoc(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @recvoc_OpeningFcn, ...
'gui_OutputFcn', @recvoc_OutputFcn, ...
ifnargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% INICIALIZA LA GUI
functionrecvoc_OpeningFcn(hObject, eventdata, handles, varargin)
ID=0;
saveID.mat;
26
handles.output = hObject;
guidata(hObject, handles);
% SALIDAS DE LA GUI
functionvarargout = recvoc_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
% BOTON GRABAR
functiongrabar_Callback(hObject, eventdata, handles)
title('Grafica de Voz','Fontname','Trebuchet
MS','Fontangle','Italic','Fontweight','Bold','Fontsize',20,'color',[1 1 1])
xlabel('Tiempo','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('Grabacion terminada');
% BOTON IDENTIFICAR
functionIdentificar_Callback(hObject, eventdata, handles)
% GRAFICA DE TRABAJO
functionGrafica_CreateFcn(hObject, eventdata, handles)
handles.Grafica=1:1:882;
handles.h = plot(handles.Grafica,zeros(882,1));
title('Grafica de Voz','Fontname','Trebuchet
MS','Fontangle','Italic','Fontweight','Bold','Fontsize',20,'color',[1 1 1])
xlabel('Tiempo','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])
loadID;
if ID==1 || ID==2 || ID==3
P0=get(handles.Menu,'Value');
switch P0
case 1,
msgbox('No Selecciono Nada');
case 2,
msgbox('Abriendo Puerta');
case 3,
msgbox('Cerrando Puerta');
case 4,
28
msgbox('Prendiendo Luz');
case 5,
msgbox('Apagando Luz');
end
else
msgbox('No Identificado!!!');
end
ifispc&&isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
29
30