Sistema de reconocimiento de voz para los dígitos en inglés

Anuncio
Sistema de reconocimiento de voz para los dígitos en
inglés del 0 al 9
Iria Gallego Gallego
Irene Pérez Encinar
Universidad Carlos III de Madrid
Universidad Carlos III de Madrid
[email protected]
[email protected]
ABSTRACTO
En este trabajo vamos a desarrollar un sistema de reconocimiento
de voz capaz de reconocer los dígitos en inglés del cero al nueve.
Para ello estudiaremos antes cómo funciona el habla humana y
explicaremos cómo está implementado dicho algoritmo.
Finalmente mediante gráficos y explicaciones mostraremos el
resultado del trabajo.
Términos Generales
Algoritmos, Diseño, Medidas
Palabra clave
Reconocimiento de voz, k-means, extracción de rasgos,
coeficientes cepstrales, aprendizaje.
1. INTRODUCCIÓN
1.1 Breve reseña Histórica
exactitud perfecta en el reconocimiento. Lo siguiente fue trabajar
en el reconocimiento de voz continuo, pero no se observaron
resultados hasta los años setenta cuando se produjo el primer
producto de reconocimiento de voz, el VIP100 de Threshold
Technology Inc. (utilizaba un vocabulario pequeño, dependiente
del locutor, y reconocía palabras discretas ) y que además ganó el
U.S. National Award en 1972.
Como la mayoría de los avances tecnológicos, el
reconocimiento de voz también se vio impulsado por el interés
que mostró el departamento de defensa de los Estados Unidos
lanzando grandes proyectos de investigación y propiciando así un
gran avance de la inteligencia artificial. Como se buscaba el
reconocimiento del habla continuo, se empezaron a incorporar en
los sistemas módulos de análisis léxico, análisis sintáctico,
análisis semántico y análisis pragmático. El proyecto más grande
desde los años setenta terminó en 1976 con el resultado de que
CMU, SRI, MIT crearon sistemas para el proyecto ARPA SUR
(Speech Understanding Research). Actualmente se trabaja con
sistemas de vocabulario amplio (más de 1000 palabras) y
adicionalmente se están bajando los precios de dichos sistemas.
Es importante para entender lo que vamos a hacer en
este trabajo empezar con una breve reseña histórica acerca del
reconocimiento de la voz.
1.2 Usos y aplicaciones
Para situar un comienzo podemos remontarnos a los
años 1870 cuando Alexander Graham Bell, a raíz de querer
construir un sistema que hiciera el habla visible a las personas
con problemas auditivos, acabó inventando el teléfono. Alrededor
de diez años más tarde, fue Tihamir Nemes quien solicitó
permiso para una patente para desarrollar un sistema de
transcripción automática que identificara secuencias de sonidos y
los imprimiera (texto); este permiso fue rechazado por tratarse de
un proyecto poco realista. Tuvieron que pasar treinta años hasta
que los laboratorios AT&T Bell construyeron la primera máquina
capaz de reconocer voz de los 10 dígitos del Inglés. Requería
extenso reajuste a la voz de una persona, pero una vez logrado
tenía un 99% de certeza.
Las dos funciones principales del reconocimiento de
voz son: la toma de dictado y el control de funciones dentro de la
computadora. Por lo tanto el reconocimiento de voz se puede
utilizar para convertir la voz en textos y documentos escritos o
bien para controlar el equipo mediante el uso de órdenes. El
valor de controlar el equipo mediante el reconocimiento de voz,
es que uno tendrá sus dos manos libres, y a su disposición, para
realizar otras tareas.
Surge así la esperanza de que el reconocimiento de voz
es simple y directo; pero el paso de los años daría al traste con
esta idea, ya que a mediados de los años sesenta la mayoría de
los investigadores reconoció que era un proceso mucho más
intrincado y sutil de lo que habían anticipado. Empiezan así a
reducirse los alcances y se enfocan a sistemas más específicos
como, por ejemplo, los sistemas dependientes del locutor, los de
flujo discreto del habla y aquellos con un vocabulario pequeño
que no excedía las 50 palabras. Estos sistemas empiezan a
incorporar técnicas de normalización del tiempo (minimizar
diferencia en velocidad del habla) y ya no buscaban una
Hoy en día el reconocimiento de voz está presente en
muchos aspectos de nuestra vida diaria, ¿Quién no ha llamado a
un teléfono de atención al cliente en el que lo que nos responde y
lo que nos pregunta es una máquina?
Esa es la razón por la que el reconocimiento de voz
está optimizado para funciones dentro de los nuevos vehículos.
Por esta razón, la fuerza aérea también utiliza el reconocimiento
de voz para el uso de sus pilotos. De esta misma razón se deduce
que el reconocimiento de voz sea extremadamente útil para
personas con discapacidad ya que les permite hacer uso de su
ordenador de una forma en la que antes no hubieran podido. Otra
aplicación es la domótica, ya que hay una tendencia hacia la
automatización de los hogares y uno de los elementos más
importantes en este proceso es la tecnología de reconocimiento
de voz.
La industria de la atención de la salud es el principal
consumidor de este tipo de tecnología ya que la utilizan para los
dictados y transcripciones y llevar a su vez un registro de lo que
ocurrió durante una consulta o una atención para evitar posibles
denuncias por malas conductas que tan a la orden del día están
en este campo. Las aplicaciones militares son inolvidables, desde
el control de vuelo al control de batallas. Ambos dos escenarios
donde la carga visual es excesiva y con un sistema de
reconocimiento de voz podría reducirse en gran medida y
permitir a los pilotos centrarse en la batalla y el vuelo y no en
darle a un cierto botón para accionar un cierto mecanismo ya que
esto lo hará con una sencilla orden de voz. En la imagen inferior
se muestra una aplicación de Google de búsqueda por voz.
Fig 1 - Reconocmiento de voz por Google.
A pesar de todo lo visto hasta ahora, el reconocimiento
de voz todavía tiene muchos defectos y limitaciones. Estas
limitaciones se basan en las deficiencias de la inteligencia
artificial y pasaremos a estudiarlas un poco más a fondo en los
siguientes apartados.
Comencemos por entender cómo funciona el habla en
los seres humanos para poder llegar a entender y saber cómo
modelarla en un ordenador. Las señales de voz se componen de
una secuencia de sonidos; estos sonidos y las transiciones entre
ellos sirven de representación simbólica de la información. La
manera en que se organizan estos símbolos viene gobernada por
las reglas del lenguaje; el estudio de estas reglas y sus
implicaciones en las comunicaciones humanas recibe el nombre
de lingüística. Por otro lado el estudio y clasificación de los
sonidos se conoce por fonética. Ahora que sabemos algunas de
las definiciones más importantes relacionadas con el habla
podemos entender un poco mejor cómo produce el ser humano la
voz. Pues bien, la voz se produce a través del tracto vocal que es
excitado por ráfagas cortas, estímulos periódicos o ruido blanco.
Lo sonidos sonoros se vienen dados por la vibración que
producen las ráfagas de aire al pasar entre las cuerdas vocales;
por otro lado los sonidos no sonoros se producen por un flujo de
aire turbulento que atraviesa las cuerdas vocales. De esta manera
los sonidos se clasifican en fonemas entre los que encontramos
cuatro tipos distintos: vocales, diptongos, semivocales y
consonantes. Debido que el habla está formado por frecuencias
casi periódicas que se denominan formantes es importante saber
también los rangos de frecuencia entre los que se encuentran el
habla, estos son: F1 (270-730 Hz), F2 (840-2290 Hz), y F3
(1690-3010 Hz).
Como todas estas características debemos tenerlas en
cuenta a la hora de construir un sistema de reconocimiento de
voz, vamos a ver ahora cómo modelamos el habla humana. Pues
bien, la voz humana se modela como un sistema lineal y variante
con el tiempo excitado por una señal de alta frecuencia. En la
imagen inferior se observa el sistema humano y las diferentes
fases por las que pasa la señal de voz hasta convertirse en una
onda emitida a través del aire.
2. RECONOCIMIENTO DE VOZ
2.1. Términos y definiciones
Una vez situados históricamente y vistas su diversas
aplicaciones vamos a dar una serie de características de por qué
esta técnica es tan difícil pero tan útil al mismo tiempo. El
reconocimiento de voz o también conocido como el
reconocimiento del habla es una rama de la inteligencia artificial
cuyo principal objetivo es permitir la comunicación hablada entre
seres humanos que la utilizamos cotidianamente y las máquinas o
computadoras electrónicas. A primera vista parece sencillo pero
no lo es tanto ya que el habla es dependiente de una gran
cantidad de características que varían según la situación en la
que se encuentre el interlocutor. Algunas de estas características
son el idioma, la acústica, la fonética, la léxica, la semántica,
etc., que consiguen añadir un algo grado de ambigüedad e
incertidumbres que conllevan a errores inevitables en este tipo de
técnicas.
Fig 2 - Sistema vocal humano (I)
una señal en escala logarítmica (dB). Su nombre deriva de
invertir las cuatro primeras letras de “spectrum” (a veces es
llamado espectro del espectro).
En cierta bibliografía se indica que el proceso para
calcular el cepstrum es: FT → log → IFT, es decir, primero
calcular la transformada de Fourier, luego obtener el logaritmo
del resultado y finalmente calcular la transformada de Fourier
inversa. De esta forma el cepstrum sería la transformada inversa
de Fourier del logaritmo del espectro. Esta no es la definición
que se hizo originariamente, pero en la actualidad es
ampliamente utilizada.
Fig 3 - Sistema vocal humano (II)
En la siguiente imagen se puede ver gráficamente el
sentido de aplicar la escala logarítmica para analizar el espectro
de la voz:
2.2. Tipos de Aprendizaje
Es muy importante a la hora de diseñar un sistema de
reconocimiento de voz la elección del tipo de aprendizaje que se
utilizará para modelar las diversas fuentes de conocimiento.
Entre estas técnicas pasamos a destacar dos por ser las más
utilizadas hoy en día: el aprendizaje deductivo y el aprendizaje
inductivo. Las técnicas de Aprendizaje Deductivo se basan en la
transferencia de los conocimientos que un experto humano posee
a un sistema informático que los utilizará en el reconocimiento.
Los sistemas más famosos que utilizan estas técnicas son los
Sistemas Basados en Conocimiento y en particular los Sistemas
Expertos. Por otro lado está el aprendizaje inductivo que se basa
en que el sistema pueda automáticamente conseguir los
conocimientos necesarios a partir de ejemplos reales sobre la
tarea que se desea modelar. Ésta será la técnica que se utilizará
en este trabajo para reconocer los dígitos del 0 al 9 del idioma
inglés. En los siguientes apartados haremos primero una pequeña
introducción teórica a las técnicas y algoritmos que utilizaremos,
para después explicar cómo se van utilizando para el
reconocimiento de voz aplicado a este ejemplo concreto.
Fig 4 – Separación de bajas y altas frecuencias
4. MODELOS OCULTOS DE MARKOV
3. COEFICIENTES CEPSTRALES
Los coeficientes cepstrales se utilizan para la
representación del habla y están basados en la percepción
auditiva humana. Como ya decíamos la voz humana no es más
que una señal sonora modulada según la vibración de las cuerdas
vocales y que, por tanto, se puede representar como un sistema
variante con el tiempo excitado por una señal de alta frecuencia.
Así, para analizar la voz nos interesará ser capaces de
separar las variaciones rápidas de la envolvente de baja
frecuencia. Para ello, necesitaremos hacer un análisis en
frecuencia como el que hace la Transformada de Fourier (TF),
pero con una pequeña modificación: las bandas de frecuencia
estarán situadas logarítmicamente, ya que así se modela más
apropiadamente la respuesta auditiva humana que con las bandas
espaciadas linealmente.
Esto nos lleva a introducir el cepstrum, que es el
resultado de calcular la Transformada de Fourier del espectro de
Hasta ahora hemos visto que los coeficientes cepstrales
nos sirven para identificar sonidos y así poder diferenciar los
distintos fonemas. Ahora bien, las palabras no son sólo el
conjunto de fonemas que las componen, sino también las
transiciones entre ellos, es decir, la manera en que estén
ordenados para formar la palabra.
Por eso, cuando queremos diseñar un sistema de
reconocimiento de voz es muy importante no sólo reconocer los
sonidos sino también qué secuencias son más probables para
poder identificar las palabras. Aquí es donde entran las técnicas
de aprendizaje inductivo; entre ellas, los modelos ocultos de
Markov, que son los más utilizados en este tipo de aplicaciones.
Creemos que está un poco fuera del alcance del trabajo estudiar
estos modelos en profundidad, ya que la matemática sobre la que
se sustentan no es trivial. Por ello, haremos una aproximación
más bien teórica de cara a entender su funcionalidad.
Primero, empezaremos por explicar qué es un modelo
de Markov simple, para después entender mejor los modelos
ocultos. Como decíamos, las señales acústicas son secuenciales
por naturaleza, es decir, las muestras que se toman de ellas no
son independientes, sino que existe una correlación entre cada
muestra y la siguiente. Eso significa que para calcular la
probabilidad de una secuencia de muestras observada
necesitaríamos saber todas las probabilidades condicionadas de
las diferentes muestras de la secuencia dadas las anteriores
muestras. Así, surge un problema computacional importante, ya
que se necesitaría una gran cantidad de realizaciones para
encontrar los parámetros de la distribución.
Para simplificar los cálculos anteriores, se aplica la
asunción de Markov, que dicta que la probabilidad de una
muestra (xi) sólo depende de la probabilidad de la muestra
anterior y no de todas las anteriores como antes. Así, la
probabilidad de generar una secuencia de muestras (D) dado un
modelo (M) se puede escribir simplemente como el producto de
las probabilidades condicionadas de una muestra a la siguiente
(probabilidades de salto):
Normalmente, cuando se trabaja con este tipo de
modelos, las muestras observadas son discretizadas usando un
cuantificador para que la secuencia D pueda expresarse de forma
escalar. Así, cada muestra podrá tomar uno entre M diferentes
valores posibles, a los que se suele llamar estados (S) y la
probabilidad condicionada de una muestra dada la anterior será
la probabilidad de transición entre dos estados (aij).
Esto simplifica mucho las cosas porque reduce nuestro
modelo a determinar una matriz de transiciones entre estados
(A). En la siguiente imagen vemos la representación gráfica de
un modelo de Markov:
Fig 5 – Modelo simple de Markov
El problema del modelo simple de Markov es que es
demasiado estacionario para modelar la voz humana. Por ello, es
necesario introducir los modelos ocultos de Markov (HMM –
Hidden Markov Models) en los que ya no podemos observar
directamente la secuencia D de muestras xi (ni, por tanto, los
estados posibles que pueden tomar), con lo que los parámetros
que queremos determinar se han vuelto “ocultos” (de ahí el
nombre). Ahora observaremos las realizaciones de otra variable
(Y) y tendremos que determinar entonces dos matrices: la matriz
A de transiciones entre estados, al igual que antes, pero también
la matriz de “emisión” (B), es decir, la que expresa la
probabilidad de observar una muestra yi dado que la realización
xi de la variable oculta ha tomado el estado Sj.
En la siguiente imagen vemos este modelo de forma
más intuitiva:
Fig 6 – Modelo oculto de Markov
Normalmente, la variable Y observada también toma
uno entre L posibles valores discretos Ci y también satisface la
propiedad de Markov con respecto a los estados: dada xi, cada
observación yi es independiente del resto de estados y
observaciones.
En definitiva, lo que tenemos es un modelo en el que
dada una secuencia de observaciones discretas, tendremos que
averiguar los siguientes parámetros:
-
La matriz de emisión B, que nos da la probabilidad de
tener un estado oculto dada una emisión
-
La matriz de transiciones A, que nos da la probabilidad
de un estado dado el anterior.
5. ALGORITMO K-MEDIAS
Los algoritmos de agrupamiento o clustering tienen
como objetivo devolver al usuario una serie de puntos que en
cierto modo representan al resto de los puntos iniciales por su
posición privilegiada con respecto al total. El algoritmo más
común utiliza una técnica de refinamiento iterativo que debido a
su ubicuidad, es a menudo llamado el algoritmo K-means,
también se conoce como algoritmo de Lloyd's. El algoritmo
consiste en que dado un conjunto inicial de centroides (punto
representativo de un grupo de valores) que pueden ser
especificados de manera aleatoria o usando algún tipo de
heurística, el algoritmo procede alternando entre dos pasos. El
primer paso se puede denominar paso de asignación en el que a
cada observación le asigna el grupo con la media más cercana, o
lo que es lo mismo, le asigna el grupo del que más cerca se
encuentre en el espacio de k dimensiones que se haya
especificado al comienzo. Matemáticamente, este paso se resume
en la siguiente expresión:
El segundo paso consiste en calcular las nuevas medias
que se convertirán en centroides de las observaciones del grupo
hasta el momento, es decir:
El momento de parar será cuando las medias que se
calculan en el segundo paso ya no cambien y se mantengan
constantes.
En las siguientes imágenes se muestra gráficamente
cómo funciona este algoritmo, que será el que le apliquemos a
una secuencia de entrenamiento dada para hacer nuestro
codebook y poder estimar en cada caso de qué digito se trata (ver
sección 6.2). El ejemplo es el siguiente:
4. Se repiten los pasos 2 y 3 hasta que se
llegue a converger (las medias no varíen).
6. SISTEMA DE RECONOCIMIENTO DE
VOZ PARA LOS DÍGITOS DEL 0 AL 9
1. En este caso tenemos k=3 media iniciales
que se seleccionan aleatoriamente del grupo
inicial de datos (en color).
Ahora que ya hemos analizado todos los elementos que
participan en nuestro sistema, podemos ver qué funcionalidad
tiene cada uno y cómo vamos a ir haciendo para identificar las
palabras.
Nuestro objetivo es diseñar un sistema capaz de reconocer la
voz humana para palabras aisladas dentro de un vocabulario
finito de R posibles palabras (R = 10 en concreto). Cada palabra
entonces, se modelará con una secuencia diferente. Para obtener
dicha secuencia y reconocer la palabra tendremos que seguir los
siguientes pasos:
2. Se forman 3 clusters asociando a cada
-
Extracción de rasgos
-
Identificación de símbolos
-
Entrenamiento del modelo gracias a un conjunto de
datos de entrenamiento (training set)
-
Uso del modelo para el reconocimiento de palabras (en
este caso los dígitos del 0 al 9 del inglés)
observación el centroide más cercano.
6.1 Extracción de rasgos
3. Se recalcula la media y se obtienen los
nuevos centroides.
Como decíamos, lo primero que tendremos que hacer
será dividir las palabras en sus elementos más simples que, en el
terreno de los sonidos, son los fonemas. Así, de cada palabra
tendremos una secuencia de muestras (típicamente, para una
duración de 1 segundo tendremos unas 10000 muestras), las
cuales iremos enventanando por bloques de N muestras mediante
un enventanado de Hamming. Cuántas muestras debe tener cada
bloque (valor de N) o, lo que es lo mismo, cuánto dura cada
fonema o cuántos fonemas componen una palabra es un dato que
a priori no sabemos. Será mediante el entrenamiento del modelo
y el cálculo del error cometido al reconocer las palabras como
iremos determinando todos estos parámetros.
Una vez que tengamos el conjunto de muestras de
sonido que definen un fonema, procederemos a hacer un análisis
espectral con coeficientes LP (linear prediction), obtenidos
mediante el algoritmo de recursión de Levinson-Durbin, y
coeficientes cepstrales que, como hemos visto, nos sirven para
diferenciar unos fonemas de otros.
En las siguientes imágenes vemos cómo el análisis
espectral nos sirve para diferenciar dos fonemas, en este caso las
letras o /ə / y s /es/ del inglés:
En nuestro caso, como sólo trabajamos con un conjunto
de 10 palabras (los dígitos del 0 al 9), el conjunto de fonemas
que vamos a tener es limitado, en concreto 16, por lo que habrá
16 clusters en total.
A partir de aquí, cualquier vector observado será
cuantificado utilizando este codebook, tanto para el
entrenamiento de los modelos, como para el posterior
reconocimiento de las palabras.
6.3 Entrenamiento del modelo
Fig 7 – Espectrograma de la letra s /es/
El siguiente paso del sistema es, una vez que tenemos
las secuencias discretas, saber qué probabilidad hay de que
representen a cada palabra. Aquí es donde intervienen los
modelos ocultos de Markov, ya que, como hemos comentado, nos
sirven bien para modelar las palabras.
Así, vamos a definir y entrenar un modelo para cada
una de las palabras, es decir, para cada uno de los dígitos del 0 al
9 y así luego, dada una secuencia discreta observada, saber cuál
de los 10 modelos es más probable que la haya generado.
Como ya dijimos, entrenar un modelo oculto de
Markov es obtener la matriz A de transiciones entre estados
ocultos y la matriz B de emisión. Pero, ¿qué son los estados
ocultos aquí? Pues bien, ahora vamos a entender perfectamente
el sentido de utilizar modelos ocultos de Markov para este tipo
de sistemas:
Fig 8 – Espectrograma de la letra o /ə /
6.2 Identificación de símbolos
Después del paso anterior, lo que tenemos es cada
palabra representada por una secuencia de vectores {y1, y2, …,
yT} donde cada uno de esos vectores tiene N componentes,
correspondientes a la frecuencia proporcionada por el análisis
cepstral para cada una de las N muestras de la ventana.
El problema es que nosotros no queremos trabajar en
un espacio continuo de vectores, sino en uno discreto de
escalares, por lo que necesitamos alguna forma de clasificar
dichos vectores. Aquí es donde interviene el algoritmo de las kmedias, que nos va a permitir definir tantos clusters como
fonemas tengamos y aproximar así un vector de rasgos por el
centroide del cluster, de forma que todas las ocurrencias de un
mismo fonema, aunque de una vez a otra puedan ser ligeramente
diferentes, al final se representen mediante un mismo símbolo.
Así, se define un “codebook” o diccionario que es una
matriz KxN en la que las columnas representan cada centroide
(que será un vector con una cierta posición dentro del espacio
muestral) y las filas representan los “rasgos” de cada centroide
(es decir, la frecuencia de cada una de las N muestras).
Con esto, se puede representar una palabra como una
secuencia de números enteros, siendo estos números el índice del
centroide correspondiente dentro del codebook citado.
Nosotros observamos una secuencia en la que cada
elemento puede tomar K posibles valores, que ya hemos dicho
que en nuestro caso serán 16; ésta es la secuencia observada.
Ahora bien, esa secuencia observada tiene que pertenecer a
alguna de las palabras posibles, es decir, tiene que haber sido
generada al decir alguien uno de los dígitos. Pero yo no sé qué
dígito ha dicho, para mí eso está oculto, yo lo único que sé es que
tenía unas muestras de sonido, las he enventanado y clasificado y
ahora tengo una secuencia de fonemas. Por eso son necesarios
estos modelos. Ahora vemos claro que la matriz de emisión me
dará la probabilidad de que se haya dicho una palabra dado que
yo he observado una serie de fonemas y la verosimilitud del
modelo se completa con la matriz de transiciones, ya que
sabemos que después de un fonema es más probable que vengan
unos que otros.
Aunque teóricamente el número de estados en cada
caso debería ser el número de fonemas presentes en cada
palabra, en la práctica se comprueba que los mejores resultados
se obtienen con modelos de 5 estados. Entre las razones para esto
están que no todos los fonemas duran lo mismo en inglés
(tenemos tanto vocales como consonantes largas y cortas) y que
las vocales suelen dar más información que las consonantes. Así,
la división de la palabra se hace al final en partes un poco más
pequeñas que los fonemas.
En las siguientes imágenes podemos ver de forma
gráfica un ejemplo de matriz de transiciones (5x5) y otra de
probabilidad de emisión (16x5) para el modelo del dígito uno:
-
Extraeremos los rasgos de la palabra como se ha
explicado
-
Expresaremos la secuencia que representa la palabra
mediante una cadena de símbolos discretos sacados del
codebook
-
Calcularemos la probabilidad de que esa secuencia
haya sido generada con cada uno de los diez modelos
-
Clasificaremos la palabra según el modelo que nos dé
una probabilidad más alta.
En la siguiente imagen vemos el ejemplo de
clasificación del uno:
Fig 9 – Matriz de transiciones (uno)
Fig 11 – Log-probabilidades de los modelos y clasificación
Fig 10 – Matriz de probabilidad de emisión (uno)
En cuanto al entrenamiento de estos modelos, las
matrices A y B se calculan de forma recursiva mediante un
algoritmo de tipo EM (expectation – maximization), que se
compone de dos pasos:
Nota: aunque apenas se aprecia en la gráfica superior,
los valores de las distintas probabilidades están en escala
logarítmica porque al ser tan pequeños, si no sería muy difícil
representarlos.
7. REFERENCIAS
[1] Lars Kai Hansen. Programas en Matlab para la asignatura
“Non-linear signal processing”. Universidad Técnica de
Dinamarca (DTU)
-
Paso E: va calculando la probabilidad de las secuencias
presentes en el training set dado el modelo que estamos
estimando
-
Paso M: Reajusta los parámetros del modelo buscando
hacer máxima dicha probabilidad.
[2] Lars Kai Hansen. Hidden Markov Models. Apuntes para la
asignatura “Non-linear signal processing”. Universidad
Técnica de Dinamarca (DTU).
Esto se hace recursivamente hasta que el incremento en la
probabilidad en un paso es menor que una cierta tolerancia dada
(ε).
[3] Anders Meng. 2003. An introduction to Markov and Hidden
Markov Models.
[4] Wikipedia, http://es.wikipedia.org/wiki/Main_Page.
6.4 Reconocimiento de palabras
Ahora ya estamos preparados para reconocer las palabras, para lo
cual seguiremos el siguiente proceso:
Descargar