Académique Documents
Professionnel Documents
Culture Documents
NUMERICOS
CUARTA ENTREGA
FUNDAMENTOS DE LA VOZ
La seal de voz es una onda de presin acstica que se genera
voluntariamente a partir de movimientos de la estructura anatmica del
SEAL ACSTICA
Un reconocedor no puede analizar los movimientos en la boca. En
su lugar, la fuente de informacin es la seal de voz misma.
El habla es una seal analgica, es decir, un flujo continuo de ondas
sonoras y silencios.
El conocimiento de las ciencias de la acstica se utiliza para identificar y
describir los atributos del habla que son necesarios para un
reconocimiento de voz efectivo.
Algunas caractersticas importantes del anlisis acstico son:
Frecuencia y amplitud
Todos los sonidos causan movimientos entre las molculas del
aire. Algunos sonidos, tales como los que produce una cuerda de
guitarra, producen patrones regulares y prolongados de
movimiento del aire. Los patrones de sonidos ms simples son los
Muestreo y cuantificacin
Ecuacin
Cuantificacin uniforme
Cuantificacin logartmica
Cuantificacin no uniforme
Cuantificacin vectorial
Ecuacin
Filtro de Pre-nfasis
Se aplica un filtro digital pasa altas de primer orden a la
seal, para enfatizar las frecuencias altas de los formantes por
dos razones, primero para que no se pierda informacin durante la
segmentacin, ya que la mayora de la informacin est contenida
en las frecuencias bajas, en segundo remueve la componente DC
de la seal, aplanando espectralmente la seal. Uno de los filtros
de pre-nfasis ms utilizados tiene la ecuacin:
Ecuacin
Segmentacin
La segmentacin consiste en cortar la seal en segmentos
de anlisis. La seal de voz es asumida como estacionaria en
estos segmentos.
Durante la segmentacin los segmentos son guardados cada uno
como la columna de una matriz, para el posterior procesamiento
de la seal de voz.
Para el proceso una ventana de Hamming de 30ms es aplicada a
la seal de voz, enfatizada previamente con el filtro de prenfasis. Con un desplazamiento tpico 10ms entre cada ventaneo.
Se realiza el algoritmo en base a las siguientes frmulas:
Ecuacin
Ecuacin
Extraccin de caractersticas
Prediccin Lineal
Se trata de una de las tcnicas ms potentes de anlisis
de voz, y uno de los mtodos ms tiles para codificar voz con
buena calidad.
Su funcin es representar la envolvente espectral de una seal
digital de voz en una forma comprimida, utilizando la informacin
de un modelo lineal, con lo cual se proporciona unas
aproximaciones a los parmetros de la voz muy precisas.
Se fundamenta en establecer un modelo de filtro de tipo todo
polo , para la fuente de sonido, el filtro todo polo justifica su
uso ya que permite describir la funcin de transferencia de un
tubo, que sin perdidas est formado por diferentes secciones.
Cepstrum
Como se sabe los sonidos de la voz se pueden
representar mediante un espectrograma, que indica las
componentes frecuenciales de la seal de voz.
Es as entonces como el espectro nos proporciona informacin
acerca de los parmetros del modelo de produccin de voz, tanto
de la excitacin como del filtro que representa el tracto vocal.
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.
Ecuacin
Ecuacin
Medida de distancia
Una caracterstica fundamental de los sistemas de
reconocimiento es la forma en que los vectores caractersticos son
combinados y comparados con los patrones de referencia.
Para poder realizar estas operaciones es necesario definir una medida de
distancia entre los vectores caractersticos. Algunas de las medidas de
distancia ms utilizadas son las distancias o mtricas inducidas por las
normas en espacios Lp.
En el algoritmo de reconocimiento en MATLAB se utiliza una distancia
Euclidea, definida del siguiente modo: por ejemplo si fi y fi, con i=0, 1,
2,, D son las componentes de dos vectores caractersticos f y f, puede
definirse la siguiente mtrica inducida por la norma Lp:
Ecuacin
Primero partimos la
Esta funcin nos permitir digitalizar la voz mecnica en un formato wav
con amplitudes que toman valores menores a 1, Fs es la frecuencia
de muestreo a utilizar, para este caso la frecuencia de la voz humana
circula por los 44100 Hz.
El y cumple la funcin de empezar a grabar en un intervalo de tiempo
de 1 segundo y de tipo mono audio, si queremos podemos visualizar la
seal con plot pero no es necesario; con la funcin sound se reproducir
lo que haya grabado el micrfono en un segundo despus de correr y
por lo que recomendamos hablar rpido pero entendible.
Y por ultimo wavwrite guardara el mensaje reproducido por sound y lo
almacenara en 16 bits.
Lo guardamos en un sript con el nombre grabar.m y pasamos a la
siguiente funcin a utilizar es la funcin normalizar
Lo
que hace la funcin normalizar es devolver un vector estandarizado con valores
de o a 1 dependiendo del rango sabiendo que lenght calcula el tamao del
vector. Si no se normalizara el vector sonido constara de amplitudes muy altas
en la onda que hara imposible la comparacin con otra onda por eso es
preferible normalizar.
Ahora pasemos a grabar nuestra base de datos con la funcin grabar: solo
modificaremos en la funcin grabar el nombre con que se guardar el archivo
wav, estos archivos de ben estar en una carpeta, en mi caso los tengo en:
Y se guarda por ultimo con el nombre reconocer.m ahora que ya tenemos todas
las funciones y nuestra base de datos empezaremos por crear nuestra interfaz
grfica con GUIDE de Matlab.
Interfaz grafica
Nos dirigimos a la opcin guide de la barra de herramientas de Matlab.
Nos saldr otra ventana como esta y tenemos que seleccionar la opcin abrir
nuevo por default:
Aqu podemos crear nuestro interfaz grfica en este caso use estos botones:
Principalmente los push botom, static text y axes que lo veremos en la
siguiente imagen:
Luego de crear los botones y paneles la acomodo tal que se vea en esttica
agradable a la vista y fcil de interactuar, ahora el siguiente paso es ponerle
nombres a los botones necesarios. De la siguiente figura:
No
se
olviden que deben guardarlo en la carpeta que mencionamos antes; la carpeta
reconocedor de voz que debe contener todas las funciones, las base de datos y
ahora ReconocedorGuide; luego de guarddarlo exitosamente entraremos a la
ventana de programacin del .fig:
Todo esto va estar condicionado por un if tal que si cumple en una esta deber
responder en el statict text (el text1 con la x) y enviar una imagen en el
axes1 (axes de tamao reducido).
Al sacar el mnimo error estoy identificando en donde las diferencias de Fourier
del patrn base se asemeja al patrn a reconocer, esta diferencia mnima me
dice que son muy parecidas por lo que se compara despus con las posiciones
del vector error para saber qu posicin es esa cada posicin ya se sabe a qu
pertenece de acuerdo al patrn base lo que no sabemos es a que posicin
pertenece la voz a reconocer por lo que se usa la funcin if.
Como esto es un ejemplo al usar sonidos de las vocales como base se ha
creado otros botones que nos daran la posibilidad de cambiar nuestra base de
datos de cinco ranuras para luego volver a compararlas con nuestra nueva voz
a reconocer, as demuestro la versatilidad del programa sencillez y rapidez al
efectuarse, podramos complicarnos ms haciendo una base de datos extensa
se puede hacer configurando el programa un ejemplo a gran escala seria los
traductores digitales en red o la identificacin de todo el personal de una
compaa.
Bueno veamos las ranuras para crear nueva base de datos:
Aqu
mostramos los
push botn
pequeos en que se a puesto la funcin grabar por separado a cada uno para
grabar cosas distinta como nombres, apellidos, cdigos, etc.