HMMs - Universidad Autónoma de Madrid

Anuncio
HMMs
Doroteo Torre Toledano y Joaquí
Joaquín Gonzá
González Rodrí
Rodríguez
Área de Tratamiento de Voz y Señales, http://atvs.ii.uam.es/
Escuela Politécnica Superior
Universidad Autónoma de Madrid
1
Índice
1. Introducción
2. Modelos de Markov (Markov Chains)
3. Modelos Ocultos de Markov (HMMs)
4. Adaptación al Locutor (MAP, MLLR)
5. Entrenamiento y Evaluación con HTK
6. Conclusiones
2
1
1. Introducción
Introducción
Los Modelos Ocultos de Markov (Hidden
Markov Models, HMMs)
Son los modelos más utilizados en reconocimiento de
voz
Modelan estadísticamente la acústica de la voz (i.e.
modelar cómo suenan los distintos fonemas y palabras)
Sustituyeron hacia la década de los 80 a las técnicas
de comparación de patrones (Dynamic Time Warping,
DTW) que modelaban la voz de forma determinista
Desde entonces siguen siendo la base tecnológica de
los reconocedores de voz comerciales
2
2. Modelos de Markov –
Cadenas de Markov
Modelo de Markov (de primer orden,
discreto y observable)
Consideremos un sistema
Que produzca una salida en cada instante de tiempo
discreto, t = 1, 2, 3, …
Cuya salida en cada instante t (denotada por qt) esté
limitadas a un conjunto finito de salidas {S1, …, SN}
Y tal que la probabilidad de obtener la salida Sj en el
instante t (qt = Sj) dependa de todas las salidas
anteriores
Este sistema todavía es mucho más complejo y
genérico que un modelo o cadena de Markov
3
Modelo de Markov (de primero orden,
discreto y observable): Simplificaciones (i)
Para llegar al modelo de Markov debemos hacer
algunas simplificaciones:
En lugar de depender de todas las salidas anteriores
limitamos el sistema a que dependa de únicamente las
n salidas anteriores (Modelo de Markov de orden n)
En la práctica en reconocimiento de voz se usan
únicamente modelos de Markov de primer orden
Modelo de Markov (de primer orden,
discreto y observable): Simplificaciones (ii)
Simplificación adicional para llegar a los modelos
de Markov de primer orden:
Se asume que el sistema es invariante en el tiempo (el
proceso estacionario), con lo cual las probabilidades de
transición de una salida Si a una salida Sj no dependen
del tiempo.
De este modo el sistema queda definido por un
conjunto de probabilidades de transición:
Que cumplen
4
Modelo de Markov: Representación
gráfica
En un modelo de
Markov observable
cada posible salida
se asocia a un estado
del sistema
Se dice que es observable
porque a la salida se
“observa” la secuencia de
estados
Los estados se
representan con círculos
y las probabilidades de
transición con arcos
Modelo de Markov: Todavía nos falta
algo…
Con lo visto hasta el momento podemos
calcular la probabilidad de estar en cualquier
estado dado el estado anterior del sistema
PERO nos falta conocer el estado inicial del
sistema
Este estado viene definido por las
probabilidades iniciales de cada estado
Muchas veces se asume que el estado inicial es uno de forma
determinista, pero también pueden definirse probabilidades
iniciales distintas de 1 y 0.
5
En Resumen…
Un modelo de Markov de primer
orden, discreto y observable viene
determinado por:
El número de estados (posibles salidas) del
sistema, N.
Una matriz de transición entre estados
(posibles salidas):
Un vector de probabilidades iniciales de
cada estado.
Ejemplo 1
Consideremos un modelo de Markov simple para prever
el tiempo en una ciudad:
Clasificamos el tiempo que hace a las 12 del mediodía
3 estados: lluvia/nieve (S1), nublado (S2), soleado (S3)
Tras varios días de observación estimamos la matriz de
transiciones entre estados
6
Ejemplo 1 (ii)
Asumiendo este modelo, podemos ahora responder a
algunas preguntas interesantes sobre el tiempo
Sabiendo que ha llovido durante los últimos 2 días, ¿cuál es la
probabilidad de que llueva mañana?
¿Y sabiendo que ha llovido todos los días durante el último
mes?
Sabiendo que el día 1 hizo sol, ¿cuál es la probabilidad de que
los siguientes 7 días haga sol, sol, lluvia, lluvia, sol, nubes, sol?
Sabiendo que hoy hace sol, ¿Cuál es la probabilidad de que
haga sol durante exactamente 7 días y ni uno más?
Si hoy ha hecho sol, ¿cúantos días más hará sol en promedio?
Ejemplo 1 (iii)
7
Ej. 1 (iv)
Ejemplo 1 (v)
8
3. Modelos Ocultos de
Markov
Ejemplos de modelos ocultos de Markov
Un modelo oculto de Markov es un modelo de Markov
(de primer orden y discreto) en el que las salidas
observables no se corresponden de forma determinista,
sino probabilística, con los estados del sistema
Ejemplo: Lanzamiento de monedas trucadas
Alguien se dedica a tirar una moneda detrás de una cortina y
decir si sale cara o cruz
Este caso podemos modelarlo con un modelo observable de
Markov en el que cada estado se corresponde con cara o cruz
9
10
Ejemplos de modelos ocultos de Markov
(ii)
Ejemplo: Lanzamiento de monedas trucadas (ii)
Pero ¿qué ocurriría si la persona que está lanzando la moneda
tiene dos monedas trucadas que tienen distintas probabilidades
de sacar cara y cruz y cambia de moneda de forma aleatoria?
En ese caso sería más apropiado un modelo oculto de Markov
con dos estados correspondientes a las dos monedas (no
sabemos la moneda que está utilizando)
Ejemplos de modelos ocultos de Markov
(iii)
Ejemplo: Lanzamiento de monedas trucadas (iii)
En el caso de que usase tres monedas “trucadas”, deberíamos
emplear 3 estados
11
Ejemplos de modelos ocultos de Markov
(iv)
Ejemplo: Extracción de bolas de colores de urnas
Detrás de una cortina se extraen bolas de colores de tres urnas
distintas en las que hay distintas proporciones de colores en
cada bola, retornando la bola a la urna tras decir el color al
observador que está detrás de la cortina
Ejemplos de modelos ocultos de Markov (v)
Ejemplo: Voz
Observamos el espectro de voz, pero no sabemos el fonema dicho
12
Definición formal de un HMM
Un HMM queda caracterizado por los siguientes
elementos:
1. El número de estados en el modelo, N.
2. El número de símbolos observables, M
Denotamos cada estado como Si
Denotamos el estado en el instante t como qt
Si el sistema está en el estado Si en el instante t escribimos qt=Si
Denotamos a cada símbolo observable como vj
Denotamos la observación en el instante t como Ot
Si la observación en el instante t es vj escribimos Ot=vj
3. La matriz de probabilidades de transición
Definición formal de un HMM (ii)
Un HMM queda caracterizado por los siguientes
elementos (ii):
4. La distribución de probabilidad de observación en cada
estado j
5. La probabilidad inicial de ocupación de cada estado
Por conveniencia denotamos todos los parámetros del
HMM (incluyendo N y M) como:
13
HMMs como modelos generativos
Muchas veces se dice que los HMMs son modelos generativos
Esto es porque un HMM nos define un procedimiento muy sencillo
de generar observaciones compatibles con el modelo
Para generar una secuencia de T observaciones compatibles con
un HMM se puede emplear el siguiente procedimiento:
1. Elegir un estado inicial q1=Si de acuerdo con la distribución de
probabilidad inicial de estados, π.
2. Hacer t=1.
3. Elegir Ot=vk de acuerdo con la distribución de probabilidad de
observación en el estado Si, bi(k).
4. Pasar a un nuevo estado qt+1=Sj de acuerdo con las probabilidades
de transición desde el estado Si, aij.
5. Hacer t = t+1 y volver al punto 3 si t<T, en caso contrario terminar.
14
15
Los tres problemas básicos de los HMMs
Hay tres problemas básicos que se deben resolver (y que
afortunadamente están resueltos) para que los HMMs sean útiles
en aplicaciones prácticas
Problema 1: Problema de puntuación: Dada una secuencia de
observaciones y un modelo, ¿cómo calcular la probabilidad de
observar la secuencia vista dado el modelo?
Problema 2: Problema de reconocimiento de estados: Dada
una secuencia de observaciones y un modelo, ¿cuál es la
secuencia de estados que mejor “explica” las observaciones?
Problema 3: Problema de entrenamiento: Dado un conjunto de
observaciones de entrenamiento ¿Cómo ajustamos los parámetros
del modelo para maximizar la probabilidad de observar el conjunto
de entrenamiento dado el modelo?
Los tres problemas básicos de los HMMs
Hay tres problemas básicos que se deben resolver (y que
afortunadamente están resueltos) para que los HMMs sean útiles
en aplicaciones prácticas
Problema 1: Problema de puntuación: Dada una secuencia de
observaciones y un modelo, ¿cómo calcular la probabilidad de
observar la secuencia vista dado el modelo?
Problema 2: Problema de reconocimiento de estados: Dada
una secuencia de observaciones y un modelo, ¿cuál es la
secuencia de estados que mejor “explica” las observaciones?
Problema 3: Problema de entrenamiento: Dado un conjunto de
observaciones de entrenamiento ¿Cómo ajustamos los parámetros
del modelo para maximizar la probabilidad de observar el conjunto
de entrenamiento dado el modelo?
16
Solución al Problema 1: Solución directa
Tenemos un HMM:
Queremos calcular:
Si suponemos que la secuencia de estados es:
Entonces, asumiendo que las observaciones son independientes
estadísticamente tenemos:
Por otro lado, la probabilidad conjunta de O y Q es:
Donde
Solución al Problema 1: Solución directa
(ii)
La probabilidad de O dado el modelo se obtiene sumando las
anteriores probabilidades para todos los posibles caminos
(secuencias de estados ocultos):
Problema del cálculo directo: Requiere O(2TNT) operaciones
Para N=5 estados, T=100 observaciones 1072 operaciones
17
Solución al Problema 1: Algoritmo
Forward / Backward (i)
Consiste en definir la variable forward:
Representa la probabilidad de observar la secuencia parcial O1, …, Ot
hasta el instante t y estar en el estado Si en dicho instante t.
La variable forward se puede calcular con el siguiente algoritmo:
Solución al Problema 1: Algoritmo
Forward / Backward (ii)
El punto clave es el paso de inducción, que permite calcular las
variables forward en el instante t+1 a partir de las variables forward
en el t, de las probabilidades de transición y las de observación:
Para cada estado en el instante t+1 tenemos que hacer las
siguientes operaciones:
En total N+1 multiplicaciones y N-1 sumas
18
Solución al Problema 1: Algoritmo
Forward / Backward (iii)
Para T instantes de tiempo y N estados debemos repetir esa
operación básica NxT veces
El coste computacional total es del orden de TN2 en lugar de 2TNT
Para N=5, T=100 3000 operaciones en lugar de 1072
Solución al Problema 1: Algoritmo
Forward / Backward (iv)
Lo visto hasta ahora es el algoritmo forward, que permite por sí
solo calcular la probabilidad de la observación dado el modelo
Alternativamente, se puede usar la variable backward:
Representa la probabilidad de observar la secuencia parcial Ot+1, …, OT
desde el instante t+1 y estar en el estado Si en el instante t.
En realidad para calcular la probabilidad de la observación dado el
modelo se puede emplear o el algoritmo forward o el algoritmo
backward
Sólo es necesario uno para resolver este problema
Pero utilizando los dos podremos resolver más fácilmente otros
problemas
19
Solución al Problema 1: Algoritmo
Forward / Backward (v)
El algoritmo backward
El coste computacional es idéntico al forward
Los tres problemas básicos de los HMMs
Hay tres problemas básicos que se deben resolver (y que
afortunadamente están resueltos) para que los HMMs sean útiles
en aplicaciones prácticas
Problema 1: Problema de puntuación: Dada una secuencia de
observaciones y un modelo, ¿cómo calcular la probabilidad de
observar la secuencia vista dado el modelo?
Problema 2: Problema de reconocimiento de estados: Dada
una secuencia de observaciones y un modelo, ¿cuál es la
secuencia de estados que mejor “explica” las observaciones?
Problema 3: Problema de entrenamiento: Dado un conjunto de
observaciones de entrenamiento ¿Cómo ajustamos los parámetros
del modelo para maximizar la probabilidad de observar el conjunto
de entrenamiento dado el modelo?
20
Solución al Problema 2: Criterios para
elegir la secuencia de modelos “optima”
Posibles criterios:
Elegir en cada instante de tiempo el estado más probable
Consiste en maximizar en cada instante de tiempo la variable:
Problema: Puede ocurrir que la secuencia de estados (por ejemplo una
secuencia de fonemas) no tenga sentido
Elegir el camino completo de estados con mayor probabilidad total
Consiste en encontrar la secuencia de estados que maximiza globalmente
Este es un problema que tiene más sentido que el anterior
En la analogía con los fonemas reconocidos consistiría en encontrar la
secuencia de estados (fonemas) válida más probable
Es el problema a resolver en reconocimiento de voz
Se resuelve con el algoritmo de Viterbi
Solución al Problema 2: Estado más
probable en cada instante de tiempo
Para calcular el estado más probable en cada instante de tiempo
debemos encontrar una forma eficiente de calcular la probabilidad
de ocupación de cada estado en el instante t
Una forma posible es calculando las variables forward y backward y
combinarlas para calcular la variable anterior
Ahora ya sólo queda tomar el estado más probable:
21
Solución al Problema 2: Viterbi (i)
Para encontrar la secuencia de estados (Q) más probable para una
secuencia de observaciones (O) dada definimos la siguiente
variable auxiliar:
Esta variable representa la mejor puntuación obtenida a través de una
única secuencia de estados (q1,q2, …qt-1)hasta llegar, en el instante t,
al estado i
La clave del algoritmo Viterbi es que si conocemos estas variables
auxiliares en el instante t para todos los estados, podemos calcularlas
para el siguiente instante (t+1) y para todos los estados con:
Si queremos obtener la secuencia de estados no nos basta con estas
variables, tenemos que saber también el estado i que maximiza
Solución al Problema 2: Viterbi (ii)
El algoritmo completo de
Viterbi queda de la
siguiente forma
El backtracking consiste en
volver desde el instante
final al inicial viendo qué
estados maximizaban cada
paso de la recursión
El algoritmo es casi
idéntico al forward
sustituyendo la suma de la
recursión por una
maximización
22
Solución al Problema 2: Viterbi (iii)
La forma de operar con el algoritmo es también similar:
Y el número de operaciones es también O(TN2)
Ejemplo Viterbi
23
Los tres problemas básicos de los HMMs
Hay tres problemas básicos que se deben resolver (y que
afortunadamente están resueltos) para que los HMMs sean útiles
en aplicaciones prácticas
Problema 1: Problema de puntuación: Dada una secuencia de
observaciones y un modelo, ¿cómo calcular la probabilidad de
observar la secuencia vista dado el modelo?
Problema 2: Problema de reconocimiento de estados: Dada
una secuencia de observaciones y un modelo, ¿cuál es la
secuencia de estados que mejor “explica” las observaciones?
Problema 3: Problema de entrenamiento: Dado un conjunto de
observaciones de entrenamiento ¿Cómo ajustamos los
parámetros del modelo para maximizar la probabilidad de
observar el conjunto de entrenamiento dado el modelo?
24
Solución al Problema 3: Algoritmo de
Baum-Welch (i)
El algoritmo más utilizado para estimar los parámetros del modelo
que maximizan la probabilidad de la observación dado el modelo
es el conocido como algoritmo Baum-Welch por sus inventores
En realidad no es más que un caso particular del algoritmo
Expectation-Maximization (EM) aplicado a los HMMs
Esta NO es la única forma de estimar los modelos:
Se pueden utilizar simplificaciones como el entrenamiento con Viterbi
Se pueden utilizar otros criterios de optimización
El criterio de optimización que utiliza Baum-Welch es el de máxima
verosimilitud (Maximum Likelihood) porque maximiza la probabilidad de la
observación dado el modelo
Pero se pueden emplear otros criterios, como criterios discriminativos
(Maximum Mutual Information, MMI, Maximum Discriminant Information)
Solución al Problema 3: Algoritmo de
Baum-Welch (ii)
Formalmente el algoritmo Baum-Welch (y el EM) comienza con la
definición de una función auxiliar:
Esta función dependen de los parámetros anteriores del modelo (λ)
y de la nueva estimación de los parámetros:
La teoría del algoritmo E-M nos dice que maximizar esta función
auxiliar respecto a los nuevos parámetros nos lleva a una
verosimilitud mayor:
Si utilizamos los nuevos parámetros en la función auxiliar como
parámetros anteriores del modelo y repetimos el proceso varias
veces seguiremos aumentando la verosimilitud hasta que el
algoritmo converja o la variación de verosimilitud sea muy pequeña
25
Solución al Problema 3: Algoritmo de
Baum-Welch: Expectation (iv)
El primer paso (Expectation step) del algoritmo consiste en calcular
las partes de la siguiente ecuación que dependen del modelo
anterior
En particular hay que calcular
Es decir, las probabilidades de todas las secuencias de estados
dados el modelo anterior y las observaciones
En realidad basta con estimar (dados el modelo anterior y las
observaciones):
La probabilidad de estar en el estado Si en el instante t
El número esperado de transiciones desde el estado Si
El número esperado de transiciones desde el estado Si al estado Sj
Solución al Problema 3: Algoritmo de
Baum-Welch: Expectation (v)
Dados el modelo anterior y las observaciones:
La probabilidad de estar en el estado Si en el instante t viene dada por
la probabilidad de ocupación del estado que definíamos anteriormente
y se podía calcular en función de las variables forward y backward
El número esperado de transiciones desde el estado Si se puede
calcular en función de éstas como
26
Solución al Problema 3: Algoritmo de
Baum-Welch: Expectation (vi)
Dados el modelo anterior y las observaciones:
Para calcular el número esperado de transiciones desde el estado Si al
estado Sj definimos primero la probabilidad de la transición desde el
estado Si al estado Sj
Con esto el número esperado de transiciones desde el estado Si al
estado Sj es:
Solución al Problema 3: Algoritmo de
Baum-Welch: Maximization (vii)
Una vez tenemos estimados el número medio de todas las
transiciones y el número medio de veces en cada estado
maximizamos la función
Respecto a los datos del nuevo modelo, obteniendo nuevas
estimaciones del modelo dadas por las fórmulas
27
Solución al Problema 3: Algoritmo de
Baum-Welch: Consideraciones Finales
El algoritmo Baum-Welch como caso particular del EM garantiza
que la siguiente estimación del modelo tiene mayor o igual
verosimilitud
Eso únicamente garantiza alcanzar un máximo local en una
superficie de optimización extraordinariamente compleja
En lugar del Baum-Welch se pueden emplear optimizaciones
basadas en el gradiente con resultados similares
También se puede tratar de optimizar los parámetros para
aumentar el poder dicriminativo del modelo en lugar de su
versomilitud
Finalmente, la etapa de estimación se puede simplificar empleando
el algoritmo Viterbi (aunque ofrece peores resultados)
Topología de los HMMs
Viene determinada por el número de estados y la interconexión
entre ellos mediante probabilidades de transición no nulas
En definitiva, por el número de estados y la matriz de transición
Nota: Una probabilidad de transición nula inicialmente se mantiene
siempre nula en el proceso de reestimación Baum-Welch
HMMs ergódicos
Son modelos en los que la probabilidad de transición de un estado a
cualquier otro es no nula
28
Topología de los HMMs (ii)
Modelos de Bakis o de izquierda a derecha
Son tales que aseguran que una vez hemos salido de un estado nunca
podemos volver a él
Son apropiados para modelar señales que varían en el tiempo como la
voz (una vez hemos terminado de pronunciar un fonema pasamos a
otro pero no volvemos al mismo, en todo caso podemos pasar a otra
realización del mismo fonema)
HMMs con funciones densidad de
probabilidad de observación continuas
Hasta ahora hemos asumido que las observaciones eran discretas
En la práctica en reconocimiento de voz las observaciones son
vectores de parámetros (MFCCs) que se consideran continuos
Inicialmente estos vectores de parámetros se discretizaban
mediante el proceso de cuantificación vectorial (VQ)
Pero el la actualidad suelen funcionar modelando la probabilidad
de las observaciones con una función densidad de probabilidad
continua
Habitualmente esta función densidad de probabilidad de la
observación para cada estado se define como una mezcla de M
Gaussianas multidimensionales:
29
HMMs con funciones densidad de
probabilidad de observación continuas (ii)
La utilización de fdps continuas complica especialmente el proceso
de estimación del modelo (Baum-Welch), pues ahora hay que
estimar los vectores de medias y las matrices de covarianzas para
cada estado, así como el peso de cada Gaussiana.
Para el paso de Estimación conviene definir la función auxiliar
Esta variable representa la probabilidad de estar en el estado j en
el instante de tiempo t, con la Gaussiana k explicando la
observación Ot.
HMMs con funciones densidad de
probabilidad de observación continuas (iii)
En función de esta variable auxiliar, en el paso de Maximización
debemos reestimar los siguientes parámetros adicionales:
30
HMMs con funciones densidad de
probabilidad de observación continuas (iv)
En reconocimiento de voz se emplean principalmente HMMs:
Con topología Bakis
Con probabilidades de observación por estados definidas con fdps
continuas
Con fdps continuas modeladas con mezclas de Gaussianas
multidimensionales
Habitualmente se emplean como parámetros para el
reconocimiento de voz MFCCs
Se ha demostrado que las componentes de los MFCC obtenidos a
partir de la voz están aproximadamente incorreladas entre ellas
Esto justifica la utilización de matrices de covarianza diagonales en las
fdps.
Esto nos reduce mucho el número de parámetros a estimar y facilita el
entrenamiento con un número de datos reducido.
4. Adaptación al Locutor
(MLLR, MAP)
31
Necesidad de adaptación al locutor
Cada locutor tiene una voz característica
A veces nos interesa esa información discriminante del locutor
Otras veces nos resulta extremadamente incómoda
En biometría vocal tratamos de reconocer la identidad de la persona
por su voz
En reconocimiento de voz tratamos de reconocer lo que ha dicho la
persona, independientemente de las características particulares de su
voz
Las características de la voz del locutor es uno mas de los factores
que introducen variabilidad en el habla.
Otros son: entorno acústico, canal de transmisión, ruido, estado
emocional, etc.
Variabilidad del locutor
Cada locutor es distinto en:
Factores físicos:
Factores conductuales:
Longitud y forma del tracto vocal, configuración de la boca y
órganos articuladores, edad, sexo, etc.
Nivel de educación, idioma, dialecto, estilo personal, etc.
Para solucionar este problema existen
reconocedores de voz:
Dependientes del locutor
Independientes del locutor
Adaptables a un locutor
32
Formas de afrontar la dependencia del
locutor en reconocimiento de voz
Reconocedores dependientes del locutor:
Reconocedores independientes del locutor:
Se entrenan con voz de al menos 500 locutores distintos
Se entrenan con voz de un único locutor
V: ↓ Error
I: Requiere un entrenamiento largo (30’ de voz)
V: No requiere entrenamiento del locutor
I: ↑ Error, muy dependiente del locutor
Reconocedores adaptables al locutor:
Parten de uno independiente de locutor y se adaptan a la voz de
un locutor con una cantidad de habla reducida
V: No requiere entrenamiento explícito del locutor
I: Error más reducido que independiente (mejora con uso)
Técnicas clásicas de adaptación al
locutor
Existen dos técnicas clásicas de adaptación al locutor:
MAP = Maximum A Posteriori
MLLR = Maximum Likelihood Linear Regression
Ambas parten de HMMs independientes del locutor y
generan HMMs dependientes del locutor a partir de una
cierta cantidad de voz de un único locutor.
Cada una tiene sus ventajas y sus inconvenientes
Además, ambas se pueden combinar
33
Adaptación MAP
A veces denominada también Adaptación Bayesiana
Opera parámetro a parámetro de los HMMs
Considera que el parámetro del modelo independiente del locutor
es la información a priori sobre dicho parámetro
Con la voz de adaptación (con la información nueva observada) del
locutor estima dicho parámetro
Y finalmente combina ambos de acuerdo con
Un factor de adaptación que es necesario fijar para ponderar más o
menos la información nueva
La cantidad total de información nueva empleada para estimar el
parámetro
Adaptación MAP (ii)
Si en el modelo independiente de locutor la media de la Gaussiana
m en el estado j es
Y con los datos de adaptación hemos calculado (en el paso de
Estimación) que la probabilidad de ocupación del estado j y la
Gaussiana m en la grabación de adaptación r para el instante de
tiempo t es
Podemos calcular el número esperado de veces que nos
encontramos en el estado j y la Gaussiana m en todos los datos de
adaptación
34
Adaptación MAP (iii)
Con todo ello (en el paso de Maximización) podemos estimar el
valor de la media de la Gaussiana m en el estado j según los
nuevos datos de adaptación:
Y finalmente combinar ambas estimaciones de la media para llegar
a la estimación MAP
τ es un factor que pondera los nuevos datos de adaptación
Adaptación MAP (iv)
La adaptación MAP opera parámetro a parámetro
Esto hace que requiera muchos datos de adaptación
Es apropiada cuando hay muchos datos de adaptación
Pero falla cuando hay pocos datos
Del mismo modo que se adaptan las medias se adaptan el resto de
parámetros de los HMMs
35
Adaptación MLLR
Maximum Likelihood Linear Regression
Es una técnica que consigue reducir la cantidad de datos de
adaptación necesarios para adaptar los modelos
El “truco” consiste en entrenar una transformación lineal para
transformar un conjunto muy grande de parámetros (de distintos
estados y modelos) con una única transformación, consiguiendo
que en la transformación se reduzcan la diferencias entre los
modelos y los datos de adaptación
Los parámetros que se adaptan de este modo son:
Las medias de las Gaussianas (casi siempre)
Las varianzas de las Gauassianas (a veces)
Adaptación MLLR Global (i)
Comenzamos con el caso más sencillo: MLLR Global
En este caso se van a transformar todas las medias de todas
las Gaussianas de todos los estados de todos los modelos
mediante una única transformación lineal de la forma:
Donde ξ es un vector de medias expandido de esta forma:
Donde w representa un offset habitualmente fijado a 1
De esta forma la matriz W se puede expresar como
Donde b es un vector que representa el offset y A es una matriz
cuadrada n x n que representa la transformación
36
Adaptación MLLR Global (ii)
La adaptación MLLR Global se puede emplear cuando tenemos
muy pocos datos de adaptación (<5 frases cortas)
Pero normalmente conviene utilizar MLLR con un mayor número de
transformaciones, cada una de las cuales se aplica a un conjunto
determinado de vectores de medias o varianzas
Problema: ¿cómo definir el número de clases y las clases mismas?
También se suele aplicar un primer paso de MLLR Global antes de
realizar un MLLR con un mayor número de clases
Queda por resolver el tema de cómo se estima la matriz W
Se estima (¿cómo no?) con el algoritmo E-M
Pero no lo veremos por el momento.
Adaptación MLLR con Clases de
Regresión
MLLR se aplica habitualmente con más de una clase
Para adaptar él número de clases a la cantidad de datos disponibles y
agrupar las Gaussians de un modo consistente se emplea un árbol de
regresión binario que agrupa las Gaussianas de todos los modelos en
clases
El árbol de regresión se construye con los modelos independientes del
locutor (de modo que se usa el mismo árbol para adaptación a cualquier
locutor) del siguiente modo:
1. Se agrupan todas las Gaussianas en una única clase
2. Se divide esa clase en dos perturbando la media en la dirección de la máxima
varianza
3. Se reclasifican las Gaussianas de la clase dividida en las nuevas clases y se
reestiman medias y varianzas de las nuevas clases (repitiendo el proceso hasta
el máximo número de iteraciones o hasta que no hay cambios)
4. Se elige la nueva clase a dividir y se vuelve al punto 2.
37
Adaptación MLLR con Clases de
Regresión (ii)
De este modo, a partir de los modelos independientes de locutor se
construye un árbol binario que incluye a todas las Gaussianas del
HMM
A la hora de aplicar MLLR se determina el número de datos de
adaptación para cada clase del árbol de regresión, determinando
para cada nodo si hay o no hay suficientes datos
Sólo se entrenan transformaciones para clases con suficientes
datos y que tienen hijos sin suficientes datos
Adaptación MLLR con Clases de
Regresión (iii)
La adaptación MLLR con clases de regresión es muy flexible
porque permite adaptarse a la cantidad de datos de adaptación y
consigue siempre buenos resultados, incluso con pocos datos de
adaptación
Tiene una ventaja importante: sólo se necesario almacenar las
matrices de transformación en lugar de almacenar todo un nuevo
conjunto de parámetros
Ahorra espacio para adaptar a varios locutores
Estas matrices de adaptación se emplean también en
reconocimiento de locutor, ya que resumen la información
característica del locutor
Muchas veces se aplica MLLR Global seguido de MLLR con clases
de regresión (y a veces seguido también de MAP)
38
Adaptación con MLLR y MAP:
Consideraciones finales
MLLR
V: permite adaptar con menos datos
V: robusto frente a escasez de datos
I: pobre adaptación con muchos datos
V: permite almacenar sólo la matriz de transformación
MAP
I: requiere muchos datos de adaptación
I: si tiene pocos datos de adaptación los modelos se degradan mucho
V: si dispone de muchos datos de adaptación es la mejor opción
I: requiere almacenar un nuevo conjunto de modelos completo (más
costoso).
Adaptación con MLLR y MAP: Ejemplo
Number
of adapt.
files →
5
10
20
50
100
200
800
1718
glob +
MLLR
66.08
66.90
66.96
67.14
67.31
67.91
68.27
68.30
MAP
46.67
50.34
52.30
54.73
57.84
59.93
61.81
62.16
glob +
MLLR +
MAP
66.02
66.77
66.50
66.45
66.66
67.58
68.38
68.61
Mode ↓
Table 8.18 Comparison of ASR accuracy for feature compensation and model
adaptation methods for robustness with scarce adaptation data for TIMIT
LP4kHz and different number of classes and available training files.
39
5. Entrenamiento y
Evaluación de HMMs (HTK)
La teoría de HMMs es complicada…
Por eso existen paquetes de software que nos facilitan la vida
Uno de los más empleados en reconocimiento de voz es HTK
(Hidden markov model ToolKit)
Lo que veremos en este apartado es cómo construir de forma
práctica un reconocedor de voz con HTK
40
El ejemplo
El reconocedor que vamos a construir es:
Un reconocedor para aplicaciones de marcación vocal sencillas
Reconocerá dígitos conectados y un conjunto limitado de nombres
Será de unidades acústicas fonéticas
Añadir un nuevo nombre sólo implicará cambiar vocabulario y gramática
Los modelos acústicos serán modelos bastante avanzados:
HMMs con fdps continuas (mezcla de Gaussianas)
Modelos dependientes del contexto (trifonemas)
Estados atados mediante clustering con un árbol de decisión binario
Se incluye también la forma de realizar la adaptación de modelos
El ejemplo incluye todo desde el entrenamiento con los audios
hasta la evaluación final y la adaptación.
Paso 1: Gramática a procesar
El primer paso incluye determinar el tipo de frases que queremos
reconocer
Ejemplo:
A partir de las frases a manejar definimos la gramática
41
Paso 1: Gramática a procesar (ii)
Internamente la gramática anterior se representa como un grafo
dirigido que se obtiene a partir de la definición anterior mediante el
programa HParse
Paso 2: Creación del diccionario
El diccionario define la representación fonética de cada palabra a
reconocer
En primer lugar es necesario definir el conjunto de fonemas que va
a emplear nuestro reconocedor
Una vez definido es necesario obtener un diccionario con el
siguiente formato (se puede utilizar un transcriptor fonético
automático para este propósito)
42
Paso 3: Adquirir el audio
Aquí existen dos opciones
Emplear una base de datos comercial (ej. TIMIT)
Grabar una base de datos ad-hoc (opción no
deseable)
En caso de emplear una base de datos
comercial no hay nada más que hacer y se
puede pasar al punto 4.
En caso de grabar una base de datos se
pueden emplear herramientas de HTK que
ayudan en el proceso
HSGen para generar prompts de acuerdo a la
gramática
HSLab para grabar y etiquetar los datos
Paso 4: Generar transcripciones fonéticas
A veces tenemos las transcripciones fonéticas
en la base de datos (ej. TIMIT) pero más
normalmente tenemos sólo la transcripción
ortográfica, como la siguiente
Podemos emplear la herramienta HLEd (Label
Editor) para expandir la transcripción
ortográfica en fonética (comando EX)
43
Paso 5: Parametrización de la voz
HTK dispone de un módulo configurable para generar los
parámetros de voz más habituales así como para transformar
fichero de audio (HCopy)
Por supuesto puede calcular MFCCs
Paso 6: Creación de modelos fonéticos (i)
6.1 Creación de un prototipo de modelo (establece topología y tipo
de parámetros acústicos a emplear por todos los modelos)
44
Paso 6: Creación de modelos fonéticos (ii)
6.2 Entrenamiento global de media y varianza del modelo (y
establecimiento de un suelo de varianza)
6.3 Copiar el prototipo a cada uno de los modelos a entrenar para
crear un fichero con las macros (suelo de varianza y tipo de
parámetros) y otro con las definiciones de los modelos
Paso 6: Creación de modelos fonéticos (iii)
6.4 Reestimar los modelos de cada fonema varias veces empleando
Baum-Welch
Todas la complejidad matemática del Baum-Welch se esconde detrás de
una línea de comandos:
El proceso global es entonces:
45
Paso 7: Mejora de los modelos de silencio
Se añade a los modelos de
silencio (sil) transiciones desde
los estados 2 al 4
Y se crea un nuevo modelo de
silencio para pausas cortas que
incluye una transición desde el
estado inicial al final
Se puede pasar por el modelo
sin asignarle ninguna
observación
Esto es lo que se denomina un
“tee model”
Ambos modelos comparten el
estado central
Paso 7: Mejora de los modelos de silencio
Todo esto se puede hacer con el HMM Editor (HHEd)
Después se hacen otras dos pasadas de reestimación (BaumWelch)
46
Paso 8: Mejora del etiquetado fonético
Se hace un primer reconocimiento con los modelos fonéticos ya
entrenados para que el reconocedor decida la transcripción más
probable en aquellas palabras que tenían más de una posible
pronunciación
Para ello se usa el módulo que hace el reconocimiento (Viterbi)
Paso 9: Creación de modelos trifonéticos
9.1 Se crean etiquetas trifonéticas con el editor de etiquetas (HLEd)
9.2 Se transforman los HMMs en HMMs trifonéticos con el editor de
HMMs (HHEd)
Y se “atan” entre sí las matrices de transición de modelos con el mismo
modelo central
9.3 Se reestiman los modelos
47
Paso 9: Creación de modelos trifonéticos
Resumen:
Paso 10: Atado de estados en modelos
trifonéticos
Es necesario hacer un atado de estados en los modelos trifonéticos
pues de otro modo el número de estados (y Gaussianas) siempre
suele ser demasiado grande.
El atado de estados se hace con una llamada al editor de modelos
(HHEd), pero es necesario definir una serie de preguntas para el
algoritmo de clustering de estados (clustering basado en árbol de
decisión)
El comando es tan sencillo como éste:
Pero el fichero de configuración es complicado, requiere
conocimientos fonéticos y fácilmente da lugar a modelos mal
entrenados (es el punto más delicado del entrenamiento)
48
Paso 10: Atado de estados en modelos
trifonéticos (ii)
Ejemplo de fichero de
configuración para atado de
estados
Después de atarlos, se reestiman
Paso 11: Evaluación del reconocedor
Consiste en dos pasos
Reconocer los datos de evaluación con el modelo (HVite)
Evaluar el reconocimiento obtenido comparando con la transcripción de
referencia (HResults)
También existe la opción de ejecutar el reconocedor (HVite) en
tiempo real sobre frases dichas en el micrófono del PC
49
Paso 12: Adaptación al locutor
12.1 En primer lugar es necesario generar los datos de adaptación
12.1.1 Se pueden generar los prompts de adaptación y de test con
los comandos
12.1.2 Se graban los ficheros de adaptación y se parametrizan
como antes
12.2.3 Se generan las transcripciones forzadas con el comando
HVite (opción -a)
Paso 12: Adaptación al locutor (ii)
12.2 Para hacer adaptación MLLR es necesario antes crear el árbol
de regresión para clasificar Gaussianas. Se hace con el editor de
HMMs (HHEd)
12.3 Por último se hace la adaptación (MLLR o MAP) con HEAdapt
En el ejemplo se hace una MLLR global seguida de una MLLR con 32
clases
Ahora podríamos volver a evaluar y debería haber mejorado
50
Conclusiones sobre HTK
Facilita mucho el manejo de HMMs
Garantiza una implementación fiable de la compleja teoría de los
HMMs, modelos gramaticales, parametrización, etc.
Da mucha flexibilidad como herramienta de prototipado, evaluación
e investigación
51
Documentos relacionados
Descargar