modelo de mezclas gaussianas - 148.206.53.84148.206.53.84/tesiuami/uami12951.pdf · herramienta de...
TRANSCRIPT
1
Licenciatura: Ingeniería en Electrónica
Unidad: UAMI
División: CBI
Modelo de Mezclas Gaussianas
PRESENTA
Manuel Rojas Huerta
____________________
Asesor: Dr. Enrique Escamilla Hernández
Universidad Autónoma Metropolitana Unidad Iztapalapa
Realización: 1 de septiembre del 2005 al 28 de Marzo de 2006
2
INDICE.
Abstrac…………………………………………………………………………………………..3
Introducción……………………………………………………………………………………..3
Desarrollo……………………………………………………………………………………….11
Programas……………………………………………………………………………………….22
Conclusiones…………………………………………………………………………………....31
Bibliografía………………………………………………………………………………………32
3
ABSTRAC.
El siguiente proyecto trata desarrolla un modelo de mezclas gaussianas el cual tiene la intención de
aplicarse en el desarrollo de sistemas de reconocimiento de voz, por lo cual se desarrollo baja los
siguientes parámetros, utilizando el modelo de Fordward-Backward o mejor conocido como Baulm-Welch
el cual utiliza un modelo puramente iterativo de eliminación donde los elementos obtenidos después de un
cierto número de iteraciones, las cuales determinamos dentro del programa. Se generaran dos programas
de los cuales uno deberá de tener las siguiente cualidades, implementar el algoritmo Baulm-Welch para
trabajar en el software conocido como Matlab, versión 6 en adelante, en el editor mfile, y también listo
para utilizarse en el software Code componer que viene incluido al comprar un DSP de Texas Instruments,
para este caso utilice el DSP C6711. Cabe mencionar que este mismo programa se puede realizar con una
herramienta de Matlab llamada simulink, la cual tiene la cualidad de utilizar bloques funcionales que al
unirse pueden formar sistemas muy complejos de electrónica digital y analógica.
INTRODUCCIÓN.
En la actualidad el mejor procesamiento de señales digitales se ha hecho cada vez más importante en el
área de las comunicaciones, es por eso que este proyecto fue realizado. Es claro que este proyecto es muy
importante, la idea principal es que se pueda utilizar como una parte fundamental de aplicaciones más
especificas, por lo cual es preciso indicar que es una mezcla gaussiana, como es que llegamos a ella y
cuales son las propiedades que la hacen tan importante y esto se hará con más cuidado en párrafos
siguientes. El procesamiento de señales en un futuro será una parte fundamental en le desarrollo de la
mayoría de las tecnologías digitales, lo pensado para este proyecto es utilizarlo en la creación de sistemas
de reconocimiento vocal, ya que sólo hacen falta dos etapas la cuales describiré rápidamente.
Como ocurría con el espectro LP, se pueden tomar todos los picos o aquellos cercanos al círculo unitario.
Mezcla de gausianas Cada formante es aproximadamente gausiano. Se puede tratar la densidad del
espectro de potencia como una función de densidad de probabilidad.
Se puede modelar una función de densidad de probabilidad como una mezcla de gausianas:
La imagen siguiente muestra una mezcla de gausianas que encajan con u espectro de magnitud DFT
4
Combinación de candidatos Todos los métodos producen picos de deshecho.
Los formantes tienen continuidad y restricciones en la tasa de cambios.
Se suele imponer restricciones de manera heurística para rechazar algunos candidatos.
Las restricciones deben expresarse formalmente; debe utilizarse programación dinámica.
Análisis de voz Es necesario conocer las siguientes variables:
• tono
• grado de voz
El tono se define perceptualmente - la correlación acústica es la frecuencia fundamental. Puede ser que la
frecuencia fundamental no aparezca, como en el caso de la voz telefónica, pero incluso en voz con un
ancho de banda limitado, el tono se mantiene claramente. Análisis en sincronía con el tono. Las
discontinuidades asociadas al uso de ventanas (windowing) se pueden reducir si el análisis se lleva a cabo
sincronizadamente respecto al tono.
En la mayor parte de los casos esto se aplica a las técnicas basadas en LP, ya que es más fácil trabajar con
ventanas de longitud arbitraria.
5
De nuevo se necesita un conjunto de candidatos potenciales. Cortes con los ejes Los sonidos periódicos
tienen cortes periódicos con el eje x.
Para los armónicos significantes e obtiene un rango de valores de tono. Picos en la función de
autocorrelación Para una señal periódica de periodo P, la función de autocorrelación se repite con un
periodo P:
En la práctica,
Como en el método anterior, es difícil encontrar el pico correcto. Pico en la función de autocorrelación del
residuo LP Es un método similar al anterior. Tiene la ventaja de que una fundamental débil se potencia al
mismo nivel que los armónicos antes de la autocorrelación. Función de la diferencia media de magnitud Es
similar a la autocorrelativa, pero es más rápida de implementar en aritmética de enteros ya que no hau
multiplicaciones.
Pico en el cepstrum
El cepstrum a menudo muestra un pico en el tono muy claro. Este método es uno de los más robustos
basados en ventanas. Combinación de candidatos
• Todos los meses producen candidatos dudosos.
• El tono posee continuidad y restricciones en la tasa de cambios.
• Se imponen restricciones heurísticamente y se descartan candidatos.
Los errores más frecuentes son multiplicar o dividir el tono por 2.
Grado de voz
Se trata de definir un método para saber si está ocurriendo una entrada de voz o no. Determinación de la
existencia de voz Se usa:
6
• tasa de cortes con los ejes
• r1/r0, o la fracción de la potencia a bajas frecuencias
• grado de fuerza del pico de tono
• sorprendentemente difícil. Provoca una enorme diferencia en la calidad subjetiva de un codificador
LP
• en la práctica se combinan varios métodos (utilizando técnicas estadísticas de reconocimiento de
patrones)
Uso El uso más frecuente es del tipo binario: hay voz o no la hay.
En ocasiones un valor real puede resultar útil:
• mezcla excitaciones de voz o de no-voz con las potencias adecuadas
• aplica un filtro pasa-alto a las excitaciones no-voz, y un filtro pasa-bajo a las excitaciones voz, y el
grado de voz define al punto límite entre unas y otras
Introducción al reconocimiento de fonemas
Los sistemas de reconocimiento de voz que pueden reconocer lenguaje humano normal han sido objeto de
intenso estudio en laboratorios a lo largo de todo el mundo.
Tales sistemas tienen un amplio abanico de aplicaciones, como sistemas de respuesta a la voz en
ordenadores, sistemas de seguridad, automatización de la oficina, etc... El problema del reconocimiento de
voz lo forman a su vez dos problemas, el de las técnicas de desarrollo y los sistemas de reconocimiento en
si. Se han descrito numerosas aproximaciones a este tema - técnicas de coincidencia de patrones acústicos,
como DTW (Dynamic Time Warping), técnicas estadísticas utilizando HMM y redes neuronales
artificiales (ANN),...
Los sistemas de reconocimiento de voz basados en HMMs han sido, aplastantemente, los que más éxito
han tenido.
El principal objetivo de un sistema de reconocimiento de voz es comprender el lenguaje humano y tal vez
iniciar una acción específica. En esencia es un problema de coincidencia de patrones en el que la voz de
7
entrada al sistema se segmenta y se compara con patrones de referencia para adecuar la salida del
reconocedor al patrón de referencia que más se parece al patrón de entrada.
Hay otras aplicaciones en las que se espera que el sistema sea capaz de distinguir entre diferentes
interlocutores identificando ciertos patrones en su voz, por ejemplo, en sistemas de seguridad. En cualquier
caso, el énfasis está en identificar qué se está diciendo. La idea es reconocer el lenguaje separándolo en sus
unidades constituyentes, fonemas y comparándolo después con diferentes patrones almacenados. El
resultado de esta comparación es algún tipo de medida de distancia que sirve como entrada a un bloque de
decisión que es el encargado de producir la interpretación de la máquina de la palabra o frase dicha.
A pesar de parecer sencillo, en la práctica hay algunos puntos que complican este proceso. Primero, el
mismo fonema pronunciado por diferentes interlocutores es acústicamente diferente debido a variaciones
en la longitud del tracto vocal y su musculatura. Por ejemplo los interlocutores femeninos producen un
tono más alto comparado con los masculinos, debido a un aparato vocal más pequeño. Además, el mismo
interlocutor puede producir versiones acústicamente diferentes del mismo sonido bajo diferentes
circunstancias, por ejemplo si está o no resfriado.
Determinados sonidos pueden ser acortados o sencillamente no pronunciados si el interlocutor habla muy
rápido. Las características acústicas de un fonema pueden verse significativamente alteradas debido a que
el interlocutor anticipe lo siguiente que va a decir, fenómeno conocido como co-articulación.
Al no haber límites identificables entre sonidos o incluso palabras, se torna extremadamente difícil
determinar dónde comienza o termina una expresión (detección del punto final).
Diferencias entre dialectos como evitar un fonema (dejar de pronunciarlo, sobre todo en inglés) o
sustitución de fonemas (en algunas zonas de Euskal Herria 'j' se pronuncia 'i') también complican el
proceso de reconocimiento de voz.
Existen otros problemas como el ruido debido al lenguaje, por ejemplo los chasquidos de los labios o de la
lengua, lo que hace aún más complejo el proceso.
Es obvio que sin asumir determinadas simplificaciones la tarea de reconocer la voz sería prácticamente
imposible. Para empezar, se utiliza un vocabulario limitado de palabras, lo que facilita la acción del
reconocimiento. Más aún, para hacer que la secuencia de palabras sea predecible por el reconocedor, se
8
utilizan lenguajes artificiales. En determinadas aplicaciones está limitado el número de interlocutores,
intentando reducir las variaciones.
Sistemas de reconocimiento de voz Anteriormente se ha dicho que los sistemas se simplifican asumiendo
determinadas restricciones. Dependiendo de estas restricciones, un sistema de reconocimiento de voz
puede ser independiente o dependiente del hablante, y de palabras discretas o palabras continuas.
Un sistema independiente del hablante almacena algunos patrones generales que corresponden a un grupo
de usuarios más que a uno en particular.
Los sistemas dependientes del hablante sin embargo, son entrenados para reconocer la voz de un usuario
dado, y los patrones que se almacenan son sus pronunciaciones de diferentes palabras.
En un sistema de palabras discretas son necesarias pausas entre las diferentes palabras para que el
reconocedor funcione satisfactoriamente, mientras que no hay tal restricción para un reconocedor de
palabras conectadas.
Otra clasificación se basa en la representación de características - técnicas de coincidencia de patrones
acústicos donde se realiza la comparación del lenguaje hablado y el de referencia, y técnicas estadísticas de
coincidencia de patrones, donde se usan determinadas propiedades estadísticas de la palabra o frase
hablada para la coincidencia de patrones.
Un ejemplo de técnica de coincidencia de patrones acústicos es el método de alineamiento DTW (Dynamic
Time-Warping) que busca encontrar un camino w(n) que minimice la distancia acumulada D entre los
patrones de prueba y referencia, sujeto a una serie de restricciones de trayectoria y punto final, p.e.
D* = min [ ∑ d(T(n), R(w(n)))], para w(n), n = 1 a NT
donde d(T(n), R(w(n))) es la distancia entre la ventana n del patrón de prueba, y la ventana w(n) del patrón
de referencia, y NT es la longitud del patrón de prueba.
Dado que nos interesan los sistemas de reconocimiento de voz que utilizan HMMs, de momento no se
profundizará más en las técnicas DTW.
9
En los sistemas de reconocimiento de voz basados en HMMs, se utiliza una representación estadística de
características para la coincidencia de patrones. Reconocimiento de palabras aisladas
En el reconocimiento de palabras aisladas el patrón acústico de cada palabra del vocabulario se almacena
como una secuencia temporal de características derivadas, usando LPC, análisis de banco de filtros o
alguna otra técnica de análisis del lenguaje.
La medición de las características, al ser conocido este proceso, se limita a una técnica de reducción de
datos donde un gran número de datos de puntos, en este caso, muestras de voz a una determinada
frecuencia de muestreo, se transforman en un conjunto menor de características; ambos son equivalentes
en tanto que ambos describen las propiedades de la onda acústica.
El reconocimiento se lleva a cabo comparando el patrón acústico de la palabra a reconocer con los patrones
almacenados, y seleccionando la palabra que mejor encaje con la palabra desconocida.
Para que un sistema tal sea práctico en términos de complejidad de proceso, el número de palabras para
comparar debe ser bastante reducido, normalmente inferior a 100.
Una vez que se han medido los patrones, el siguiente paso es determinar la similitud entre el patrón de
prueba y el de referencia. Debido a que la pronunciación y la velocidad en el habla son variables, la
similitud de patrones involucra un alineamiento temporal y un cálculo de la distancia. Se han propuesto
varias técnicas para llevar a cabo el alineamiento temporal como la maximización de la correlación y
DTW, siendo DTW la estructura más utilizada.
El último paso en el modelo de reconocimiento de patrones es la regla de decisión, que escoge el patrón de
referencia que más se acerca al de prueba.
10
Se utilizan comúnmente dos reglas de decisión, la regla del vecino más cercano (NNR) y la regla del
vecino más K-cercano (KNNR).
NNR es simplemente elegir el patrón con la menor distancia media (obtenida del algoritmo DTW) como el
patrón reconocido. Reconocimiento de palabras conectadas La figura siguiente muestra la estructura
general de un reconocedor de palabras conectadas:
La aplicación más importante de un reconocedor de palabras aisladas es el reconocimiento de palabras
conectadas.
En el reconocimiento de palabras conectadas, la entrada hablada es una secuencia de palabras de un
vocabulario específico, y el reconocimiento se lleva a cabo basándose en la coincidencia de palabras de
referencia aisladas. Ejemplos de esto son las cadenas de dígitos conectados donde el vocabulario es un
conjunto de 10 dígitos, o el reconocimiento de letras conectadas, donde el vocabulario es el conjunto
formado por el abecedario.
No hay que confundir esto con el reconocimiento continuo de voz, donde el reconocimiento se basa en
unidades lingüísticas denominadas fonemas, sílabas, dítonos, etc. lo que supone separar la voz en estas
unidades y etiquetarlas subsecuentemente.
Si se observa la figura que muestra la estructura de un reconocedor de este tipo, es fácil darse cuenta de
que es idéntica a la del reconocedor de palabras aisladas, si no fuera por la posición de los bloques y el
nivel de la información que, al final de cada reconocimiento, realimenta el algoritmo DTW con un
conjunto de estimaciones del lugar donde encaja en la cadena de prueba el fin local actual.
De este modo, el algoritmo DTW puede construir progresivamente un conjunto de coincidencias con la
cadena de prueba y, al final de la búsqueda, determinar y ordenar las coincidencias de acuerdo con las
distancias acumuladas. El otro punto a tener en cuenta es que el DTW ya no es un algoritmo restringido de
punto final, ya que los límites de la palabra no se conocen a priori. Las aproximaciones del DTW al
reconocimiento de palabras conectadas son bastante complejas, y de momento no se van a tratar. Modelos
11
de señales Un problema de interés capital es la caracterización de las señales del mundo real en términos
de modelos de señales. Un modelo de señales es enormemente importante en el análisis de sistemas debido
a varias razones. Por ejemplo, un modelo de señales puede emplearse para efectuar simulaciones y utilizar
los resultados para analizar el sistema. También permite caracterizar la fuente que produce las señales sin
tener que acceder realmente a ésta. Además proporcionan una descripción teórica del sistema de proceso
de señales permitiendo así construir sistemas que realicen tareas específicas. Por ejemplo, conociendo el
modelo de señal para una señal viciada por el ruido, se puede diseñar un sistema que elimine el ruido y
mejore la calidad de la señal.
Los modelos de señales pueden clasificarse de modo general en determinísticos y estocásticos o de señales
aleatorias, basándose en la naturaleza de la señal tratada.
DESARROLLO.
Los modelos determinísticos utilizan propiedades conocidas de la señal subyacente, que puede estimarse
de forma inmediata. Por ejemplo, una onda senoidal puede caracterizarse en términos de su amplitud, fase
y frecuencia.
Los modelos estocásticos, por otra parte, estiman propiedades estadísticas de las señales subyacentes. Por
ejemplo, series de Gauss, series de Poisson. Se asume que la señal modelada puede caracterizarse como
una serie paramétrica aleatoria, y los parámetros de la serie aleatoria pueden estimarse de manera definida
y precisa. Por esto los modelos estocásticos son una aproximación particularmente adecuada para el
reconocimiento de voz.
El modelo estocástico más popular empleado en el reconocimiento de voz es el HMM. Un modelo de
Markov de estados finitos y un conjunto de distribuciones de salida son las características de los HMMs.
Los parámetros de transición en la cadena de Markov modelan la variabilidad temporal, mientras que los
parámetros en las distribuciones de salida modelan las variabilidades espectrales.
12
Los HMMs se han utilizado en diversas aplicaciones como sistemas de comunicación, biología molecular
(para el análisis de las secuencias de ácidos proteicos y nucleicos), entre otras. Como se dijo anteriormente,
los sistemas de reconocimiento de voz basados en HMMs emplean una técnica de medición de
características estocástica para tratar con las incertidumbres asociadas al reconocimiento de voz, como
efectos contextuales, variabilidades en el interlocutor y homofonías. Procesos discretos de Markov El
modelado de señales según el model Hidden Markov involucra tres problemas fundamentales:
• estimar la probabilidad de una secuencia de observaciones dado un HMM específico
• determinar la secuencia óptima de estados del modelo
• ajustar los parámetros del modelo para que representen lo mejor posible una señal dada
A este modelo se le llama 'oculto' (Hidden) en el sentido en que la secuencia de estados que producen una
secuencia de patrones determinada, no puede ser observada/determinada. Dependiendo de cómo
evolucionen los estados podemos hablar de HMMs ergódicos (cualquier estado se puede alcanzar desde
cualquier otro estado) o HMMs left-to-right (donde el modelo únicamente lleva a cabo transiciones hacia
adelante).
La teoría se desarrolla describiendo en primer lugar las cadenas discretas de Markov.
Considérese un sistema descrito por la cadena de Markov de 3 estados mostrada por la figura siguiente:
El sistema realiza transiciones o movimientos de un estado a otro (incluida la permanencia en un estado
dado, es decir, bucles sobre el mismo estado) a intervalos discretos predeterminados. Se señalan los
instantes de tiempo por t = 1, 2, ..., y los estados por qt.
Por la teoría de las cadenas de Markov (MC), se sabe que el futuro es independiente del pasado dado el
presente, donde el presente puede ser uno o más estados a través de los cuales evoluciona el sistema. Así,
Modelo de 3 estados de Markov
13
el sistema está completamente caracterizado por el estado presente y un número finito de estados previos
(el número de estados previos requeridos para la descripción del estado presente da el orden de la cadena
de Markov. En otras palabras, para un proceso de primer orden,
P[qt = Sj | qt-1 = Si, qt-2 = Sk, …]
= P[qt = Sj | qt-1 = SI]
Sin consideramos las MCs homogéneas solas, las probabilidades de transición del estado aij vienen dadas
por
aij = P[qt = Sj | qt-1 = SI], 1≤ i, j ≤ N
Donde N = 5 en este caso. Las aij ’s son tales que aij ≥ 0 y j = 1, …, N, ∑ aij = 1. La matriz de probabilidad
de transición de este sistema viene dada por:
Este modelo no es oculto, ya que los estados por los que se mueve el sistema son observables. Claramente,
un modelo tal no resultará muy útil en el caso del problema presentado. Modelos Ocultos de Markov
(HMMs) Supóngase que la observación es una función estocástica del estado, a diferencia del proceso
discreto de Markov descrito anteriormente.
El modelo resultante será un proceso estocástico con otro subproceso estocástico oculto. El proceso
subyacente solo puede observarse a través del otro proceso que produce la secuencia de observaciones y al
cual nos referimos como Modelo Oculto de Markov (HMM).
Para ilustrar esta idea, considérese un experimento de lanzamiento de una moneda, donde las
observaciones CA (cara) y CR (cruz) son conocidas sin la naturaleza exacta del lanzamiento de la moneda.
Dada una secuencia de observaciones (CA, CA, CR, CA, CR, CR, CR, CA,...) queremos conseguir un
sistema (mediante el modelado) que produzca esta secuencia de observaciones. Una solución sencilla
14
suponer que se lanza una misma moneda con una determinada propensión y modelar la situación mediante
un modelo de Markov de 2 estados donde los estados corresponden a las ocurrencias de CA o CR. Las
transiciones son descritas mediante la propensión de la moneda (bias), indicando la probabilidad de que
ocurra CA. Si se especifica esta propensión, lo que tenemos es un proceso de Markov observable. Por otro
lado, si se describe ls secuencia de observación mediante un modelo de Markov de 1 estado, siendo la
moneda con su propensión el estado, y la propensión en si (probabilidad de que suceda CA o CR) siendo el
parámetro desconocido, tenemos un HMM equivalente al modelo de 2 estados.
En la figura 5 se muestra un modelo con dos monedas con propensión en lugar de una sola.
P(H) = P1 P(H) = P2
P(T) = 1-P1 P(T) = 1-P2
Se puede observar que el modelo de 1 moneda tiene una incógnita, el modelo de 2 monedas tiene 4
incógnitas y un modelo con 3 monedas tendrá 9 incógnitas. De este modo, si es necesario escoger entre dos
HMMs posibles, será preferible el de mayor número de incógnitas, ya que proporcionará mayor grados de
libertad y por tanto modelará mejor la situación. En cualquier caso y debido a consideraciones prácticas,
pueden imponerse limitaciones al tamaño del modelo. Elementos de un HMM Un HMM se compone de 5
elementos:
15
• N, el número de estados en el modelo. Aunque los estados están ocultos, estos corresponden a
objetos físicos, como la moneda anterior. Los estados pueden seguir cualquier orden lógico
(ergódico u otro). Los modelos en los que el índice de estado siempre aumenta (o por lo menos se
mantiene constante) se utilizan frecuentemente en aplicaciones de reconocimiento de voz (left-to-
right o modelo de Bakis). Los estados individuales se denotan por S = (S1,S2, ... ,SN) y un estado en
un momento t como qt.
• M, el número de símbolos de observación diferentes por estado, es decir, el tamaño del alfabeto
discreto. Por ejemplo, en el experimento de la moneda, los símbolos de observación eran (CA, CR).
Los símbolos individuales se denotan por V = (v1, v2, ..., vM).
• Las probabilidades de transición; n de estado aij.
• Las probabilidades del símbolo de observación, B = {bi(k)}, donde bj(k) = P[vk @ t / qt = Sj], 1 ≤≤≤≤ j ≤≤≤≤
N, 1 ≤≤≤≤ k ≤≤≤≤ M.
• La distribución de estados inicial, π = {ππ = {ππ = {ππ = {πi}}}}, , , , donde ππππi = P[qt = SI], 1 ≤≤≤≤ i ≤≤≤≤ N.
Dados estos cinco elementos, se puede utilizar un HMM para generar una secuencia de observación O =
O1 O2 …OT donde T es el número de observaciones en la secuencia. El procedimiento se detalla a
continuación:
• Se escoge un estado inicial qt = Si como π.
• t = 1.
• Se escoge Ot = vk como en bi(k).
• Transición a otro estado qt+1 = Sj como aij.
• t = t+1 y vuelta al tercer paso si t < T; si no, fin.
Este procedimiento puede usarse también para remarcar la generación de una secuencia dada. El conjunto
completo de parámetros del modelo se denota como λ = (Α, Β, π)λ = (Α, Β, π)λ = (Α, Β, π)λ = (Α, Β, π). Resolución de los 3 problemas básicos
Como se dijo anteriormente, hay 3 problemas fundamentales de la descripción HMM:
• el problema de la evaluación: dado λ = (Α, Β, π), calcular eficientemente la probabilidad de la
secuencia de observación O = O1 O2 …OT, es decir, P(O|λ). La solución a este problema resulta de
utilidad en la comparación de diferentes modelos ya que indica cómo de bien une las observaciones
el modelo.
16
• extracción de características/determinación de la secuencia de estados: dado O y λ, encontrar una
secuencia óptima de estados Q = q1 q2 …qT que explique mejor las observaciones. Aquí se trata de
descubrir la parte oculta del modelo, es decir, se intenta encontrar la secuencia correcta de estados.
• optimización a través de entrenamiento: maximizar P[O | λ] ajustando los parámetros del modelo
λ. Se intenta obtener la secuencia de observación que 'mejor encaje', optimizando los parámetros
del modelo mediante una secuencia de entrenamiento. Esta es la parte más crucial del modelado
HMM.
Los pasos que sigue la descripción HMM de una secuencia de observaciones pueden indicarse para el
problema del reconocimiento de palabras aisladas:
para cada palabra de un vocabulario de W palabras, se construye un HMM diferente de N-estados. Cada
palabra se representa como una secuencia temporal de vectores espectrales codificados utilizando un
codebook de M vectores espectrales auténticos. La secuencia de entrenamiento para cada palabra consiste
en repeticiones de secuencias de índices de los vectores espectrales correspondientes a la palabra.
El primer paso es construir modelos de palabra para todas las palabras del vocabulario. La solución al
problema 3 se utiliza para estimar óptimamente los parámetros del modelo para cada modelo de palabra.
Para llegar a la secuencia de estados correcta, su usa la solución al problema 2 para segmentar cada
secuencia de la palabra de entrenamiento en estados, y después estudiar las propiedades de los vectores
espectrales que conducen a las observaciones que ocurren en cada estado. En esencia se está intentando
refinar el modelo en términos de número de estados, tamaño del codebook, etc. Una vez que se tiene los W
modelos HMM de palabras suficientemente estudiados y optimizados, el último paso será el uso de esos
modelos para reconocer la palabra desconocida comparándola contra los modelos de palabras y
seleccionando el que obtenga más probabilidad, es decir, el que se ajuste mejor. Para esto se utiliza la
solución al problema 1.
Las soluciones a los tres problemas de la descripción HMM pueden encontrarse mediante varias técnicas.
El problema de evaluación puede solucionarse utilizando el procedimiento adelante-atrás (Forward-
Backward) que soluciona inductivamente la probabilidad de la secuencia de observación, comenzando con
una observación parcial. Esta técnica reduce los cálculos de 2T*NT, requeridos para el cálculo directo de la
probabilidad de la secuencia de observación a N2T. El cálculo de probabilidad hacia adelante está basado
17
en una estructura similar a un enrejado (trellis). Esto viene del hecho de que únicamente hay N estados
diferentes y todas las posibles secuencias de estados estarán en estos N estados, independientemente de la
longitud de la secuencia de observación.
La solución al problema 2 no es única, ya que implica un criterio de optimización que puede cambiar. Sin
embargo, modificando el criterio de optimización para que la solución sea la mejor secuencia posible de
estados, se puede obtener una solución exacta utilizando técnicas de programación dinámica. Una técnica
formal que sigue todo esto es el algoritmo Viterbi (este algoritmo sigue muy de cerca la estructura enrejada
del cálculo de probabilidad hacia adelante, aunque proporciona una implementación más eficiente).
La solución al problema 3, el del ajuste fino del HMM para un determinado patrón de observación es la
parte más complicada de la descripción HMM. Esto es debido a que no hay soluciones analíticas para este
problema. De hecho, dado un vector de entrenamiento de longitud finita, no hay una solución óptima para
los parámetros del modelo. Sin embargo una solución sub-óptima puede ser obtenida fácilmente utilizando
técnicas iterativas como el método Baum-Welch o el método Expectation-Modification (EM).
Implementación de reconocedores de voz utilizando HMMs
Modelo de Mezclas Gaussianas (Gaussian Mixture Model (GMM)) o MODELOS OCULTOS DE MARKOV
HMM).
Considerando que el frame en el instante t se compone por un vector de parámetros espectrales Ot , una
elocución se representa entonces por una secuencia de vectores O:
[ ]TooooO ,,........., 3,21= (5)
donde T es la duración en frames de la señal. Para realizar la clasificación de patrones acústicos en el proceso de VL
se debe medir la “distancia” entre el modelo del habla del locutor afirmado j y la secuencia de vectores de
observación O del locutor i que clama dicha identidad. Luego, la distancia obtenida es comparada con un límite de
decisión, con el cual se aceptará o rechazará la identidad clamada. En el caso de los HMM, la distancia corresponde
a una probabilidad, la cual se define como:
),/( jji OSSP λ= (6)
donde Si corresponde al locutor i que pretende ingresar al sistema, Sj corresponde al cliente j que dice ser, O el vector
de observación obtenido de la elocución de verificación, y λj el modelo de referencia del cliente j generado a partir
de las elocuciones de entrenamiento.
Usando el Teorema de Bayes para probabilidades condicionadas se tiene:
18
)(
)()·,/(),/(
OP
SSPSSOPOSSP jijji
jji
====
λλ (7)
Debido a que los términos )( ji SSP = y )(OP se consideran constantes para todos los locutores, el término
trascendental para encontrar ),/( jji OSSP λ= corresponde al valor de la verosimilitud definida por ),/( jji SSOP λ= .
Clasificación de Patrones usando HMM.
El proceso de VL basado en modelos ocultos de Markov (HMM) asume que cada secuencia de vectores de
observación corresponde a palabras de un locutor determinado y que cada una de ellas es generada por un modelo
de Markov.
Un modelo de Markov consiste en una secuencia finita de estados conectados entre sí por probabilidades de
transición. Cada unidad temporal, que en este caso corresponde al frame, debe enfrentarse ante la posibilidad de
mantenerse en el estado actual o avanzar al siguiente. Cada estado x se caracteriza por una función de densidad de
probabilidad de observar un cierto frame Ot. Esta función también se denomina probabilidad de salida o de emisión
y se denota por bx(ot). Considerando la topología izquierda-derecha sin salto de estados de la Fig. 3, la probabilidad
de transición desde el estado x al estado y es ax,y, donde y=x o y=x+1. Por definición se tiene que ax,x + ax,x+1 = 1.
Figura 3. Topología izquierda derecha sin salto de estado de un HMM.
Con las definiciones discutidas hasta ahora se tiene que el modelo de referencia del cliente es ),,( πλ BAj = donde
A es la matriz de todas las transiciones de probabilidad, B es el conjunto de los parámetros de las probabilidades de
observación, y π son las probabilidades de que cada estado sea el primero.
En el modelo de Markov descrito en la Fig. 3 se puede identificar la secuencia de estados como:
{ }8,7,7,6,5,5,4,4,3,2,2,1=X generada por la secuencia de observación O=[o1, o2, o3, ... o12]. La probabilidad
conjunta de que el vector de observación O sea generado por el modelo λj de la identidad clamada moviéndose a
través de la secuencia X, es calculada como el producto entre las probabilidades de transición y las probabilidades de
observación. De esta forma, para la secuencia X mostrada en la Fig. 3 se tendrá
)······()·()·()·()·()·()/,( 6444543443233222221211 obaobaobaobaobaobXOP j =λ (8)
En la práctica, sólo la secuencia de observación O es conocida y la secuencia de estados X correspondiente es oculta.
Este es el motivo por el cual estos modelos se denominan Modelos Ocultos de Markov. De esta forma, dado que X
es desconocido, la verosimilitud requerida es computada mediante la sumatoria de todas las posibles secuencias de
estados X = {x(1), x(2), x(3),.......,x(T)},
a12 a23 a a a a a34 45 56 67 782 3 4 5 6 7
a22 a33 a44 a55 a66 a77
o2 o3 o4 o5 o6 o7 o8 o9 o10 o11
b (o )2 2 b (o )2 3 b (o )3 4 b (o )4 5 b (o )4 6 b (o )5 7 b (o )5 8 b (o )6
a11
9 b (o )7 10 b (o )7 11
1
a88
8
Modelo de Markov
o1
b (o )1 1
o12
b (o )8 12
19
∏∑=
−=T
ttxtxttx
Xj aobOP
1)()1()(
todos)·( )/( λ (9)
donde x(0)=1 corresponde al estado inicial del modelo de la Fig. 3. Una aproximación para la verosimilitud definida
por la ecuación 9, consiste en considerar solamente la secuencia de estados más probable:
≅ ∏=
−T
ttxtxttx
Xj aobMaxOP
1)()1()( )·()/( λ (10)
Si bien el cálculo analítico de la ecuación 10 no es posible, existen procedimientos recursivos que permiten calcular
esta expresión de manera eficiente. Uno de estos procedimientos corresponde al algoritmo de Viterbi, el cual
determina una secuencia de estados óptima y la respectiva verosimilitud. Por su parte, las matrices A y B son
determinadas con las elocuciones de entrenamiento del sistema utilizando el algoritmo de re-estimación de Baum-
Welch (Deller et al., 1993).
La Probabilidad de Observación (bj(ot)).
Los parámetros de los vectores de observación (ot) asumen valores continuos y la probabilidad de observación se
puede modelar con una función de densidad de probabilidad multivariable. Esta función de densidad de probabilidad
está constituida generalmente por una combinación lineal de Gaussianas:
e
G
gxgxgtxgtx Nxocob ∑
=
≤≤Σℵ=1
,1 ),;()( µ (11)
donde Ne corresponde al número de estados del HMM, G es el número de Gaussianas, cx,g es la ponderación de las
Gaussianas, las cuales deben cumplir:
Ggxc
xc
xg
G
gxg
≤≤∧≤≤≥
≤≤=∑=
1N,1 0
N,1 1
e
1e (12)
ℵ(.;µ,Σ) Corresponde a una Gaussiana multivariable con vector de medias µ y una matriz de covarianza Σ:
( ) ( )µµ
πµ
−Σ−− −
Σ=Σℵ t
Tt oo
nt eo1
2
1
··)2(
1),;( (13)
El Algoritmo de Viterbi.
En la sección 5.1 se mostró que la probabilidad conjunta de que el vector de observación O sea generado por el
modelo λj de la identidad clamada moviéndose a través de la secuencia de estados X (o verosimilitud P(O,X/λj ) es
calculada como un producto entre las probabilidades de transición y la probabilidad de observación (ecuación 9).
Dado que la secuencia de estados X no es conocida se debe calcular la secuencia más probable, tal como se mostró
en la ecuación 10. Para encontrar la secuencia más probable, y por ende realizar la verificación más eficientemente,
se utiliza el algoritmo de decodificación de Viterbi. En la figura 4 se muestra la gráfica que representa al uso del
algoritmo de Viterbi operando sobre un modelo HMM de 8 estados con topología izquierda – derecha y sin salto de
estado.
20
Figura 4: Representación gráfica del algoritmo de Viterbi.
El algoritmo de Viterbi puede visualizarse como una solución para encontrar el camino óptimo a través de una
matriz que posee como eje vertical los estados del modelo HMM y como eje horizontal los frames en los que está
dividido la señal de voz. Cada punto negro mostrado en la figura representa el logaritmo de la probabilidad de
observar aquel frame en el instante correspondiente y cada arco entre dos puntos corresponde a la probabilidad de
transición. Si X)
= {x(1), x(2), x(3),.......,x(t)} es la secuencia óptima de estados obtenida para la secuencia de
vectores de observación O = [o1, o2,......, ot] , y además se considera δy(t) como la máxima probabilidad calculada a
lo largo de un camino, trazado hasta el tiempo t, y finalizada en el estado y, se tiene que:
[ ] )/...,)(,),.......,2(),1(()( 21)1( ctty oooytxxxxPt λδ == − …………… (14)
es máxima en función de las posibles secuencias de estados hasta t. Luego, la verosimilitud para el instante t+1 se
calculará usando los valores obtenidos de la ecuación (1).
En el modelo GMM, la distribución de las características de la señal de voz son modelas para cada
hablante por medio de la suma del producto de la mezcla de pesos por las componentes de densidad de
orden M de distribución gaussiana de la señal de voz del hablante de la siguiente manera:
secumpliendo 1
),()( ∑==
M
iiibpp xx λ
1
1∑ ==
Mi
ip (1)
donde x es un vector aleatorio de dimensión D (vector característico), λ es el modelo del hablante, pi son la
mezcla de pesos, bi(x) son los componentes de densidad la cual esta formado por la media (µµµµi) y la matriz
de covarianza (σσσσi), para i = 1,2,3,….M., y cada componente de densidad es una función gaussiana de
variación D dada de la siguiente forma:
−−−= − )(')(
2
1exp
2/1)2(
1)( 1
2/iii
Dib µxσµxx
σπ
(2)
Estado
1 2 3 5 6 7 8 9 104 Frame
a
a
ii
ij
j tb (o )
21
El vector de la media µµµµi, matriz de covarianza σσσσI, y la mezcla de pesos pi de todas las componentes de
densidad determinan la Densidad de Mezclas Gaussiana total.
λ={µµµµ,σσσσ,p} es usado para representar el modelo del hablante. Para obtener un óptimo modelo
representativo para cada hablante es necesaria una buena estimación de los parámetros de GMM, esto es,
llevar acabo un buen entrenamiento del modelo. Para realizar éste entrenamiento, un método muy eficiente
es el de la estimación de Máxima Probabilidad (Maximum-Likelihood (ML)). El cual se utiliza para
calcular la máxima probabilidad de GMM dado el vector característico de la señal de voz con el que será
entrenado, donde para un vector característico de dimensión T, X=(x1,x2,,..xT) a ser entrenado, la
probabilidad de GMM puede ser escrita como:
∏==
T
tpp
1)()( λλ xX (3)
Sin embargo esta no es una función lineal de los parámetros del modelo (λ ), por lo que no es posible
realizar la maximización directamente; por lo que se debe utilizar un algoritmo iterativo llamado Baum-
Welch. El algoritmo Baum-Welch es el algoritmo utilizado por HMM para estimar sus parámetros y tiene
el mismo principio básico del algoritmo de Expectación de Maximización (Expectation-Maximization
(EM)). La principal idea del algoritmo EM es como sigue: Se empieza con la inicialización del modelo
( λ ), posteriormente, se calcula un nuevo modelo (λ ) tal que )()_
( λλ XPXP ≥r
. Así, este nuevo modelo
( λr), se convierte en el modelo inicial para la siguiente iteración. Durante la estimación del modelo GMM
los parámetros µµµµi, σσσσi y pi deben ser estimados. Las condiciones iniciales del modelo es obtenida usando el
algoritmo de Viterbi, para este fin también son usados los algoritmos de k-mean y binary split. Después,
los parámetros de la media µµµµi, matriz de covarianza 2iσ , y la mezcla de pesos pi son calculados en
iteraciones consecutivas dadas por:
∑==
T
tti ip
Tp
1),(
1λxr
(4)
∑
∑=
=
=
),(
),(
1
1
λ
λ
x
xxµ
r
rr
ip
ipTt
ttTt
i (5)
2
1
12
),(
),(i
tTt
ttTt
iip
ipµ
λ
λσ −
∑
∑=
=
=
x
xxr
rr
(6)
Donde la probabilidad a posteriori a la i-th clase es dada por:
22
∑=
= )(
)(),(
1 tkkMk
tiit
xbp
xbpxip λ
(7)
Este proceso es repetido hasta llega a un umbral de convergencia establecido. Las variables que necesita
ser consideradas, el orden de las mezclas y los parámetros previos a la maximización de la probabilidad del
modelo GMM, pueden ser diferentes dependiendo del tipo de aplicación.
Figure6. Modelo de Mezclas Gaussianas (Gaussian Mixture Model (GMM))
Programa para implementar el algoritmo Baum-Welch en Matlab.
clear all
for k=1:90
w(k)=cos(2*pi*k/90);
end
n=10;
A=zeros(n-1,n);
%B=[zeros(900,1)];
for i=1:2:n-1
23
for j=1:n
A(i,j)=1;
end
end
k=1;
for i=1:9
for j=1:10
c(k)=A(i,j);
k=k+1;
end
end
k=1;
i=1;
n=0;
kk=9;
a=1/25000;
b=1/25000;
h=1;
for l=1:2
for i=1:kk
j=1;
if (A(i,j)==0)
while (A(i,j)==0 & j<10)
24
if (h<=90)
B(k)=w(h);
h=h+20;
j=j+1;
k=k+1;
else
h=h-90;
B(k)=w(h);
h=h+20;
j=j+1;
k=k+1;
end
end
else
while(A(i,j)==1 & j<10)
if (h<=90)
B(k)=w(h);
h=h+9;
j=j+1;
k=k+1;
else
h=h-90;
B(k)=w(h);
h=h+9;
j=j+1;
k=k+1;
end
end
end
25
end
end
plot(B)
A=[21,4,7;6,9,5;3,4,1]
N=length(A);
suma=0;
for (i=1:N)
for (j=1:N)
suma=suma+A(i,j);
prom=suma/9;
end
end
A(2,2)=prom;
delta=1/20e6;
Xf=4e-6;
F=7e6;
T=4e-6;
X=(0:delta:Xf)
Y=cos(2*pi*(F/T)*X.^2);
A=length(X);
G=Y;
for i=1:A+30
G(A+i)=0;
end
for i=1:A
G(2*A+30+i)=Y(i);
end
yy=fliplr(Y);
w=conv(yy,G)
plot(w)
26
Programa con el cual se implementa el algoritmo de Baum-Welch en el DSP.
** File: baumwelch.c
**
Proposito: Estimar los parametros del algoritmo
**
#include <stdio.h>
#include "nrutil.h"
#include "hmm.h"
#include <math.h>
static char rcsid[] = "$Id: baumwelch.c,v 1.6 1999/04/24 15:58:43 kanungo Exp kanungo $";
#define DELTA 0.001
void BaumWelch(HMM *phmm, int T, int *O, double **alpha, double **beta,
double **gamma, int *pniter,
double *plogprobinit, double *plogprobfinal)
{
int i, j, k;
int t, l = 0;
double logprobf, logprobb, threshold;
double numeratorA, denominatorA;
double numeratorB, denominatorB;
double ***xi, *scale;
double delta, deltaprev, logprobprev;
deltaprev = 10e-70;
27
xi = AllocXi(T, phmm->N);
scale = dvector(1, T);
ForwardWithScale(phmm, T, O, alpha, scale, &logprobf);
*plogprobinit = logprobf; /* log P(O |intial model) */
BackwardWithScale(phmm, T, O, beta, scale, &logprobb);
ComputeGamma(phmm, T, alpha, beta, gamma);
ComputeXi(phmm, T, O, alpha, beta, xi);
logprobprev = logprobf;
do {
for (i = 1; i <= phmm->N; i++)
phmm->pi[i] = .001 + .999*gamma[1][i];
for (i = 1; i <= phmm->N; i++) {
denominatorA = 0.0;
for (t = 1; t <= T - 1; t++)
denominatorA += gamma[t][i];
for (j = 1; j <= phmm->N; j++) {
numeratorA = 0.0;
for (t = 1; t <= T - 1; t++)
numeratorA += xi[t][i][j];
phmm->A[i][j] = .001 +
.999*numeratorA/denominatorA;
}
denominatorB = denominatorA + gamma[T][i];
for (k = 1; k <= phmm->M; k++) {
numeratorB = 0.0;
28
for (t = 1; t <= T; t++) {
if (O[t] == k)
numeratorB += gamma[t][i];
}
phmm->B[i][k] = .001 +
.999*numeratorB/denominatorB;
}
}
ForwardWithScale(phmm, T, O, alpha, scale, &logprobf);
BackwardWithScale(phmm, T, O, beta, scale, &logprobb);
ComputeGamma(phmm, T, alpha, beta, gamma);
ComputeXi(phmm, T, O, alpha, beta, xi);
delta = logprobf - logprobprev;
logprobprev = logprobf;
l++;
}
while (delta > DELTA); /* if log probability does not
change much, exit */
*pniter = l;
*plogprobfinal = logprobf; /* log P(O|estimated model) */
FreeXi(xi, T, phmm->N);
free_dvector(scale, 1, T);
}
void ComputeGamma(HMM *phmm, int T, double **alpha, double **beta,
double **gamma)
{
29
int i, j;
int t;
double denominator;
for (t = 1; t <= T; t++) {
denominator = 0.0;
for (j = 1; j <= phmm->N; j++) {
gamma[t][j] = alpha[t][j]*beta[t][j];
denominator += gamma[t][j];
}
for (i = 1; i <= phmm->N; i++)
gamma[t][i] = gamma[t][i]/denominator;
}
}
void ComputeXi(HMM* phmm, int T, int *O, double **alpha, double **beta,
double ***xi)
{
int i, j;
int t;
double sum;
for (t = 1; t <= T - 1; t++) {
sum = 0.0;
for (i = 1; i <= phmm->N; i++)
for (j = 1; j <= phmm->N; j++) {
xi[t][i][j] = alpha[t][i]*beta[t+1][j]
*(phmm->A[i][j])
*(phmm->B[j][O[t+1]]);
sum += xi[t][i][j];
}
30
for (i = 1; i <= phmm->N; i++)
for (j = 1; j <= phmm->N; j++)
xi[t][i][j] /= sum;
}
}
double *** AllocXi(int T, int N)
{
int t;
double ***xi;
xi = (double ***) malloc(T*sizeof(double **));
xi --;
for (t = 1; t <= T; t++)
xi[t] = dmatrix(1, N, 1, N);
return xi;
}
void FreeXi(double *** xi, int T, int N)
{
int t;
for (t = 1; t <= T; t++)
free_dmatrix(xi[t], 1, N, 1, N);
xi ++;
free(xi);
}
31
Conclusiones.
La finalización del proyecto fue satisfactoria, ya que los resultados obtenidos fueron los esperados, ya que
el programa creado para utilizarse en Matlab realiza tantas iteraciones como sean requeridas, claro esta
que entre mayor sea el número de iteraciones el desempeño del programa se va haciendo más lento, por lo
tanto el obtener un estado estacionario dentro del modelo de Markov, se pueden estimar los posibles
resultados, sin embargo se pierde exactitud en las estimaciones, por lo cual se tiene que desarrollar un
sistema alterno, el que tiene que determinar cual es el mejor número de iteraciones que se necesitan para
tener un modelo eficiente. Por lo que el programa hecho para Code composer se hace mas eficiente al
utilizar las opresiones de punto flotante que se realizan dentro del DSP, y a su parecido con las
instrucciones de Turbo C, además de que su funcionalidad y desarrollo hacen que el ambiente poco
agradable en ocasiones de code composer se vuelva más agradable, por otra parte se tuvo la oportunidad de
utilizar este programa en conjunto con otras aplicaciones para crear un sistema de reconocimiento de voz,
en el que su desempeño fue bastante aceptable, por lo que se obtiene un sistema optimo el cual gracias al
modelo de mezclas gaussianas tiene un grado de confiabilidad de 90% con un margen de error del 10%.
El modelo de mezclas gaussianas determina los parámetros de aproximación con los coeficientes cepstrales
que se obtiene en una etapa anterior, por que Existen factores importantes que afectarán el desempeño de
los sistemas de MG, entre ellos se pueden nombrar: la cantidad de sesiones de entrenamiento que efectúe
cada locutor; la duración de las sesiones de verificación; y la diferencia de condiciones entre las sesiones
de entrenamiento y verificación. Por su parte, los parámetros seleccionados para establecer los modelos de
los clientes, así como el modelo general, deben ser robustos a las variaciones naturales del locutor. Entre
las características deseables de los parámetros se pueden nombrar: deben representar en gran medida las
características inter locutor y en pequeña medida las características intra locutor; deben ser de fácil
extracción; no deben variar bruscamente en el tiempo; se espera que sean independientes del estado de
salud y/o ánimo del locutor; no deben ser conscientemente modificables; y deben ser robustos ante ruido
ambiental o canales de transmisión. La utilización de un conjunto adecuado de parámetros, escogido a
partir de estas características, elevará el desempeño de un sistema de MG. Los modelos ocultos de Markov
constituyen una representación interesante de la señal de voz en un sistema de verificación de texto
dependiente. La representación de la probabilidad de salida con Gaussianas en conjunto con las
probabilidades de transición descritas por una función de distribución geométrica y el algoritmo de de-
codificación de Viterbi, generan un modelo de reconocimiento de patrones razonablemente representativo.
La normalización de la verosimilitud obtenida para un cliente mediante la verosimilitud obtenida del
modelo general muestra una reducción significativa de la tasa de error de verificación. La utilización de
32
esta técnica ayuda también a reducir el problema asociado a variación del límite de decisión provocado por
las variaciones intra – locutor.
La adición de ruido ambiente o el ruido introducido por canales de transmisión sobre las señales de voz
utilizados por un sistema de MG, constituyen un problema de gran importancia y de difícil solución. El
desempeño del sistema caerá notablemente al operar en condiciones ruidosas y su diseño, tanto de su etapa
de entrenamiento como en el de test, debe considerar el ruido involucrado. Sólo de esta forma el algoritmo
de MG será robusto al operar en ambientes ruidosos y poco estables.
Bibliografía.
Atal, B. S. “Automatic recognition of speaker from their voices”. Proceedings of IEEE, 64 (4): 460-475, 1976.
Becerra Yoma, N., McInnes, F, R., Jack, M. A. “Improving Performance of Spectral Subtraction in Speech Recognition using a Model for Additive Noise”. IEEE Transactions on speech and audio processing, Vol 6, No.6, November, pp. 579-582, 1998.
Becerra Yoma, N.; Villar, M. “Additive and Convolutional Noise Cancelling in Speaker Verification Using a Stochastic Weighted Viterbi Algorithm”. Session E36b Volume 4 pp. 2845 Eurospeech 2001 Scandinavia.
Becerra Yoma, N. & Villar, M. “Speaker Verification in Noise Using a Stochastic Version of the Weighted Viterbi Algorithm”, Programado para publicación en IEEE Transactions on speech and audio processing, Marzo 2002.
Berouti, M., Schwartz, R., Makhoul, J. “Enhancement of speech corrupted by acoustic noise”. Proceedings of the IEEE Conference on Acoustics, speech and signal processing, (4): 208-211, 1979.
Claes, T., Xie, F., Van Compernolle, D. “Spectral estimation and normalization for robust speech recognition”. Proceedings of the IEEE International conference on signal processing, 1997-2000, 1996.
Deller, J. R., Proakis, J. G., Hansen, J.H.L. “Discrete time processing of speech signal”. New York: MacMillan, 1993.
Doddington, G.R. “Speaker Recognition – Identifying people by their Voices”, Proceedings of IEEE, 73(11): 1651-1664, 1985.
33
Forsyth, M. “Semi-continuous Hidden Markov Models for Automatic Speaker Verification” PhD. Thesis, The University of Edinburgh, United Kingdom, 1995.
Furui, S. “Cepstral analysis technique for automatic speaker verification”. IEEE Transactions on acoustic, speech and signal processing, 29 (2): 254-277, 1981.
Furui, S. “An overview of speaker recognition technology”. In: ESCA Workshop on Automatic Speaker Recognition, Identification and Verification, pp. 1-9, 1994.
Furui, S. “Recent advances in speaker recognition”, Pattern Recognition Letters, 18: 859-872, 1997.
Hermansky, H., Morgan, N., Bayya, A., Kohn, P. “Compensation for the effect of the communication channel in auditory-like analysis of speech (RASTA-PLP)”. Proceedings of the Eurospeech, pp 1367-1370, 1991.
Higgins, A., Bahler.,L., Porter, J. “Speaker Verifiaction Using Randomized Phrase Prompting”. Digital Signal Processing, 1:89-106, 1991.
Lamel, L. “An improved end-point detector for isolated word recognition”. IEEE Transactions on acoustic, speech and signal processing. 29 (4): 777-785, 1981.
LDC, http://www.ldc.upenn.edu, Yoho database, 1994
Matsui, T. & Furui, S. “Concatenated phoneme models for text-variable speaker recognition”. Proceedings of the IEEE International conference on acoustic, speech and signal processings, Minneapolis, 2:391-394, 1993.
Openshaw, J.P., Sun, S.P., Mason, J.S. “A comparison of composite features under degraded speech in speaker recognition”. Proceedings of the IEEE international conference on acoustics, speech and signal processing, 2:371-374, 1993.
Sambur, M. R. “Selection of acoustic features for speaker identification”. IEEE Transactions on acoustics, speech and signal processing, 23 (2): 176-182, 1975.
Savoji, M. H. “A robust algorithm for accurate endpointing of speech signals”. Speech Communication. 8: 45-60, 1989.
Soong, F. K. & Rosenberg, A. E. “On the use of instantaneous and transitional spectral information in speaker recognition”. IEEE Transactions on acoustic speech and signal processing, 36(6): 871-879, 1988.
Vasegui, S. V. & Milner, B. P. “Noise compensation methods for Hidden Markov Model speech recognition in adverse environments”. IEEE Transactions on speech and audio Processing, 5 (1): 11-21, 1997.
34