modelo de mezclas gaussianas - 148.206.53.84148.206.53.84/tesiuami/uami12951.pdf · herramienta de...

34
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

Upload: phungcong

Post on 03-Oct-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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

Page 2: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

2

INDICE.

Abstrac…………………………………………………………………………………………..3

Introducción……………………………………………………………………………………..3

Desarrollo……………………………………………………………………………………….11

Programas……………………………………………………………………………………….22

Conclusiones…………………………………………………………………………………....31

Bibliografía………………………………………………………………………………………32

Page 3: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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

Page 4: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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.

Page 5: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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:

Page 6: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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

Page 7: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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

Page 8: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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.

Page 9: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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.

Page 10: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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

Page 11: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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.

Page 12: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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

Page 13: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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

Page 14: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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:

Page 15: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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.

Page 16: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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

Page 17: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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:

Page 18: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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

Page 19: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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.

Page 20: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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 )

Page 21: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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:

Page 22: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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

Page 23: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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)

Page 24: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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

Page 25: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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)

Page 26: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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;

Page 27: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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;

Page 28: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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)

{

Page 29: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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];

}

Page 30: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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);

}

Page 31: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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

Page 32: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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.

Page 33: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

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.

Page 34: Modelo de Mezclas Gaussianas - 148.206.53.84148.206.53.84/tesiuami/UAMI12951.pdf · herramienta de Matlab llamada simulink, ... Los sistemas de reconocimiento de voz basados en HMMs

34