Está en la página 1de 124

i

APLICACIONES EN RECONOCIMIENTO
DE VOZ UTILIZANDO HTK


T.G. 0446




AUTOR: IVN HORACIO VILLAMIL ESPINOSA.






SANTA FE DE BOGOTA DC.
PONTIFICIA UNIVERSIDAD JAVERIANA
FACULTAD DE INGENIERIA
DEPARTAMENTO DE ELECTRONICA
MAYO DE 2005.



ii


APLICACIONES EN RECONOCIMIENTO
DE VOZ UTILIZANDO HTK


T.G. 0446




AUTOR: IVN HORACIO VILLAMIL ESPINOSA.


DIRECTOR: PEDRO RAL VIZCAYA GUARN. PHD.
DIRECTOR MAESTRA EN INGENIERA ELECTRNICA.


SANTA FE DE BOGOTA DC.
PONTIFICIA UNIVERSIDAD JAVERIANA
FACULTAD DE INGENIERIA
DEPARTAMENTO DE ELECTRONICA
MAYO DE 2005.



iii




ADVERTENCIA


ARTCULO 23 DE LA RESOLUCIN No. 13 DE JUNIO DE 1946


La universidad no se hace responsable de los conceptos emitidos por sus alumnos en
sus proyectos de grado. Slo velar porque no se publique nada contrario al dogma y la
moral catlica y porque los trabajos no contengan ataques o polmicas puramente
personales. Antes bien, que se vea en ellos el anhelo de buscar la verdad y la justicia.





















iv




TABLA DE CONTENIDO


INTRODUCCIN................................................................................................................ 1
1. MARCO TERICO................................................................................................. 5
1.1 RECONOCIMIENTO DE PALABRAS AISLADAS ..................................... 5
1.2 RECONOCIMIENTO DE VOZ CONECTADA............................................. 6
1.3 PARAMETRIZACION DE LAS SEALES DE VOZ................................... 6
1.4 RECONOCIMIENTO DE VOZ BASADO EN HMMS. ................................. 7
1.4.1 Especificaciones de los HMMs................................................................ 8
1.4.2 Entrenamiento - Reconocimiento usando HMM................................... 10
1.4.3 El problema de Entrenamiento .............................................................. 11
1.4.4 El problema de reconocimiento ............................................................. 12
2. ESPECIFICACIONES .......................................................................................... 15
2.1 PALABRAS AISLADAS .............................................................................. 15
2.2 DGITOS CONECTADOS. ........................................................................... 17
3. DESARROLLOS.................................................................................................... 21
3.1 APLICACIN DE PALABRAS AISLADAS. ........................................................... 22
3.1.1 Grabacin de la Seal de Voz. ............................................................... 22
3.1.2 Etiquetas de las Seales de Voz. ............................................................ 23
3.1.3 Anlisis Acstico................................................................................... 24
3.1.4 Definicin de los HMMs. ...................................................................... 25
3.1.5 Entrenamiento de los HMMs. ................................................................ 26
3.1.5.1 Inicializacin............................................................................. 27
3.1.5.2 Entrenamiento. .......................................................................... 28
v
3.1.6 Diccionario y Gramtica. ....................................................................... 29
3.1.6.1 La Red. ...................................................................................... 30
3.1.7 Reconocimiento. .................................................................................... 30
3.1.8 Evaluacin del Reconocedor ................................................................. 31
3.1.8.1 Archivos de Etiqueta Maestros. ................................................ 31
3.1.8.2 Tasa de Reconocimiento ........................................................... 32
3.2 APLICACIN DE DGITOS CONECTADOS. ......................................................... 32
3.2.1 Definicin de la Tarea del Reconocedor. Gramtica y Diccionario. .... 33
3.2.2 Grabacin de las Seales de Voz. .......................................................... 35
3.2.3 Etiquetas de las Seales de Voz. ............................................................ 35
3.2.4 Codificacin de los Datos. ..................................................................... 37
3.2.5 Creacin de los Monofonemas. ............................................................. 37
3.2.6 Mejorando los Modelos de Silencio. ..................................................... 39
3.2.7 Re-alineamiento de los Datos de Entrenamiento. .................................. 41
3.2.8 Construccin de los Trifonemas desde los Monofonemas. ................... 42
3.2.9 Creacin de los Estados Atados de los Trifonemas. .............................. 43
3.2.10 Reconocimiento de los Datos de Prueba.............................................. 45
3.3 INTERFAZ GRFICA DE HTK........................................................................... 46
4. ANLISIS DE RESULTADOS ............................................................................ 48
4.1 HERRAMIENTA DE ANLISIS ........................................................................... 49
4.2 EVALUACIN DEL PROCESO DE ENTRENAMIENTO DE LOS HMMS. .................... 57
4.2.1 Tiempo Empleado en la Insercin de las Etiquetas de las Palabras ...... 57
4.2.2 Herramienta Utilizada............................................................................ 58
4.2.3 Recursos en Tiempo y Memoria de la Ejecucin de las Herramientas
Utilizadas ....................................................................................................... 59
4.3 EVALUACIN DEL PROCESO DE RECONOCIMIENTO.......................................... 60
4.4 EVALUACIN DE LA COMPLEJIDAD EN LA EJECUCIN DE LAS HERRAMIENTAS 61
5. CONCLUSIONES.................................................................................................. 64
5.1 POSIBLES MEJORAS......................................................................................... 66
5.2 TRABAJOS FUTUROS ....................................................................................... 67
vi
6. BIBLIOGRAFA.................................................................................................... 69
6.1 REFERENCIAS DE INTERNET ............................................................................ 69
6.2 REFERENCIAS BIBLIOGRFICAS ...................................................................... 69
ANEXO A. DESARROLLO DE LAS APLICACIONES.............................................. 71
A.1. DESARROLLO DE LA APLICACIN DE PALABRAS AISLADAS EN HTK.
.................................................................................................................................. 71
A.1.1. Creacin de un Cuerpo de Entrenamiento. ............................................ 71
A.1.2. Anlisis Acstico................................................................................... 72
A.1.3. Definicin de los HMMs. ...................................................................... 73
A.1.4, Entrenamiento de los HMMs. ................................................................ 73
A.1.4.1. Inicializacin............................................................................. 74
A.1.4.2. Entrenamiento. .......................................................................... 75
A.1.5. Diccionario y Gramtica. ....................................................................... 76
A.1.6. Reconocimiento. .................................................................................... 77
A.1.7. Tasa de Error.......................................................................................... 78
A.2. DESARROLLO DE LA APLICACIN DE DGITOS CONECTADOS EN HTK. ................ 79
A.2.1. La Gramtica.......................................................................................... 79
A.2.2. El Diccionario........................................................................................ 80
A.2.3. Etiquetas de las Palabras........................................................................ 80
A.2.4. Creacin de los Archivos de Transcripcin. .......................................... 81
A.2.5. Codificacin de los Datos. ..................................................................... 83
A.2.6. Creacin de los Modelos de los Monofonemas. .................................... 83
A.2.7. Arreglando los Modelos de Silencio...................................................... 87
A.2.8. Realineamiento de los Datos de Entrenamiento. ................................... 89
A.2.9. Creacin de los Trifonemas desde los Monofonemas. .......................... 90
A.2.10. Creando Estados Atados de los Trifonemas. ....................................... 92
A.2.11 Reconocimiento. ................................................................................... 94
ANEXO B. RECONOCIMIENTO DE SEALES RUIDOSAS................................... 96
B.1 TASAS DE RECONOCIMIENTO OBTENIDAS ............................................... 96
B.1.1 Aplicacin de Palabras Aisladas. ............................................................ 97
vii
B.1.2 Aplicacin de Dgitos Conectados. ......................................................... 99
B.1.3 Reconocimiento a Nivel de Fonemas.................................................... 100
B.2. Conclusiones de los Sistemas Reconocedores ........................................ 103
B.2.1. Palabras Aisladas........................................................................ 103
B.2.2. Dgitos Conectados..................................................................... 103
ANEXO C. LIBRETO DE GRABACION DE LAS BASES DE DATOS.................. 105
C.1. GRABACIONES BASE DE DATOS DE ENTRENAMIENTO Y PRUEBA DE
LA APLICACIN DE PALABRAS AISLADAS ................................................. 105
C.2. GRABACIONES BASE DE DATOS DE ENTRENAMIENTO APLICACIN
DE DIGITOS CONECTADOS .............................................................................. 105
C.3. GRABACIONES BASE DE DATOS DE PRUEBA APLICACIN DE
DIGITOS CONECTADOS .................................................................................... 108
ANEXO D. RECURSOS DE MEMORIA UTILIZADOS POR LA HERRAMIENTA
HVITE ............................................................................................................................... 110
D.1. ORGANIZACIN DE LA MEMORIA UTILIZADA POR HVITE................ 110















viii




LISTA DE FIGURAS


Figura 1. Reconocimiento de palabras aisladas.................................................................... 5
Figura 2. Generacin de los Modelos de Markov de Izquierda a Derecha. ......................... 9
Figura 3. Representacin de la Densidad Gaussiana. ......................................................... 10
Figura 4. Diagrama en Bloques Fase de entrenamiento. .................................................... 16
Figura 5. Diagrama en Bloques Etapa de Reconocimiento. ............................................... 16
Figura 6. Diagrama de Bloques Fase de Entrenamiento. ................................................... 17
Figura 7. Diagrama en Bloques de la Etapa de Reconocimiento. ...................................... 18
Figura 8. Interfaz Grfica al invocar la herramienta Hslab. ............................................... 23
Figura 9. Topologa bsica de los HMMs. ......................................................................... 25
Figura 10. Diagrama de Flujo: Procedimiento completo de entrenamiento. ...................... 26
Figura 11. Diagrama de flujo: Inicializacin de los parmetros de los HMM. .................. 28
Figura 12. Diagrama en flujo: Re-estimacin de los parmetros de los HMM. ................. 29
Figura 13. Red de tarea del Reconocedor de palabras aisladas.......................................... 30
Figura 14. Red de Trabajo de las Palabras en la Aplicacin de Dgitos Conectados. ........ 34
Figura 15. Etiquetas de las Seales de Voz con Hslab....................................................... 36
Figura 16. Topologa de los HMMs de Izquierda a Derecha de 3 Estados Emisores. ....... 38
Figura 17. Insercin de las Etiquetas, Anlisis Acstico, Inicializacin de los HMMs y
Entrenamiento de los Monofonemas. ............................................................................ 39
Figura 18. Topologa de los Modelos de Silencio Corto Sp............................................... 40
Figura 19. Entrenamiento, alineamiento de los datos con el modelo sp y creacin de los
trifonemas. ..................................................................................................................... 41
Figura 20. Diagrama en bloques del Entrenamiento de los Trifonemas. ........................... 45
Figura 21. Pantalla de Inicio del Programa. ....................................................................... 46
Figura 22. Segunda Pantalla de la Interfaz. ........................................................................ 47
ix
Figura 23. Resultado de la Aplicacin de Palabras Aisladas en Formato HTK. ................ 50
Figura 24. Resultado de la Aplicacin de Dgitos Conectados en Formato HTK.............. 50
Figura 25. Resultado a Nivel de Fonemas Aplicacin Dgitos Conectados en Formato
HTK............................................................................................................................... 51
Figura 26. Resultado de la Aplicacin de Palabras Aisladas en Formato NIST. ............... 51
Figura 27. Resultado Aplicacin Dgitos Conectados en Formato NIST. ......................... 52
Figura 28. Resultado a Nivel de Fonemas Aplicacin Dgitos Conectados en Formato
NIST............................................................................................................................... 52
Figura 29. Matriz de Confusin de la Aplicacin de Palabras Aisladas. ........................... 53
Figura 30. Matriz de Confusin del Resultado de la Aplicacin de Dgitos Conectados. . 53
Figura 31. Matriz de Confusin de Reconocimiento de fonemas de la Aplicacin de
Dgitos Conectados. ....................................................................................................... 53
Figura 32. Representacin de las Transcripciones Alineadas de la aplicacin de Dgitos
Conectados..................................................................................................................... 55
Figura 33. Contenido del Archivo de Configuracin. ........................................................ 71
Figura 34. Contenido del Archivo listamfcc.txt. ................................................................ 72
Figura 35. Ejemplo de un Archivo de descripcin de HMM. ............................................ 73
Figura 36. Contenido del Diccionario Utilizado en la Aplicacin de Palabras Aisladas... 76
Figura 37. Contenido del archivo Hmmdefs.mmf. ............................................................. 78
Figura 38. Ejemplo de un Archivo de Etiqueta Maestro. ................................................... 79
Figura 39. Gramtica Utilizada en la Aplicacin de Dgitos Conectados. ......................... 79
Figura 40. Contenido del Diccionario Utilizado en la Aplicacin de Dgitos Conectados.
....................................................................................................................................... 80
Figura 41. Ejemplo de un Archivo MLF con Transcripciones Asociadas. ........................ 81
Figura 42. Transcripciones de Nivel fontico. ................................................................... 82
Figura 43. Topologa de los HMMs Utilizados.................................................................. 84
Figura 44. Contenido de Archivo configuracion2.txt. ........................................................ 85
Figura 45. Creacin del Archivo de Descripcin de los HMMs con extensin MMF. ...... 86
Figura 46. Contenido del Archivo Macros. ........................................................................ 86
Figura 47. Grfica de las Tasas de Reconocimiento vs. SNR de la Aplicacin de Palabras
Aisladas.......................................................................................................................... 98
x
Figura 48. Tasa de los Tipos de Errores vs. SNR Aplicacin Palabras Aisladas............... 98
Figura 49. Grfica de las Tasas de Reconocimiento vs. SNR de la Aplicacin Dgitos
Conectados................................................................................................................... 100
Figura 50. Tipo De Errores vs. SNR Aplicacin Dgitos Conectados. ............................ 100
Figura 51. Grfica de las Tasas de Reconocimiento de fonemas vs. SNR de la Aplicacin
de Dgitos Conectados. ................................................................................................ 102
Figura 52. Grfica de la Tasa de los Tipos De Errores vs. SNR Aplicacin Dgitos
Conectados a Nivel de Fonemas. ................................................................................. 102
Figura 53. Estado de la Memoria Antes de la Inicializacin. ........................................... 110
Figura 54. Estado de la Memoria Despus del Reconocimiento...................................... 111
Figura 55. Estado Final de la Memoria ............................................................................ 111























xi




LISTA DE TABLAS



Tabla 1. Grupos de herramientas de HTK Utilizadas en las Aplicaciones......................... 21
Tabla 2. Calculo de los resultados Obtenidos en Formato Bsico de HTK y NIST........... 52
Tabla 3. Recursos de Memoria de las Herramientas de Entrenamiento. ............................ 60
Tabla 4. Comportamiento del Reconocedor de Palabras aisladas Frente al Ruido. ........... 97
Tabla 5. Nmero de Palabras Correctamente Reconocidas, Errores por Insercin y por
Omisin de las Bases de Datos con SNRs en la Aplicacin de Palabras Aisladas........ 99
Tabla 6. Comportamiento del Reconocedor de Dgitos Conectados Frente al Ruido. ....... 99
Tabla 7. Fonemas Reconocidos Correctamente, Errores por Insercin y Omisin, ......... 101






1




INTRODUCCIN


Durante las ltimas dcadas se ha estudiado la posibilidad de desarrollar interfaces hombre-
mquina controlados por la voz para sustituir en ciertas aplicaciones a las interfaces
tradicionales basadas en teclados, paneles o dispositivos similares. El Reconocimiento
Automtico de Voz (ASR) es un campo de investigacin de creciente relevancia que da a
da gana ms adeptos. Los reconocedores actuales manejan cada vez vocabularios ms
grandes, logran menores tasas de error en reconocimiento y menores tiempos de
procesamiento gracias al uso de algoritmos ms eficientes, a la aparicin de equipos ms
potentes y econmicos, y al aumento de complejidad de estos sistemas, al emplearse
modelados ms sofisticados y refinados. No obstante, a pesar de los grandes avances
realizados, se est todava muy lejos de un sistema de reconocimiento automtico de voz
universal que funcione bien en cualquier aplicacin a la que sea destinado.

A travs de los aos se han desarrollado diferentes tipos de programas para reconocimiento
de voz que utilizan mltiples herramientas matemticas como lo son: Dinamic time
Warping (DTW), modelos ocultos de Markov (HMM), redes neuronales, entre otros.
Existen una serie de programas de bastante uso en el rea de reconocimiento de voz: HTK
[1], AT&T FSM Library [2], CMU-Cambridge Statistical LM Toolkit [3], CMU Sphinx
[4], CSLU toolkit [5], entre otros.

Hoy en da la mayora de los sistemas reconocedores en funcionamiento, se basan en la
tcnica de modelos ocultos de Markov HMM, debido a que requieren menos memoria
fsica, ofrecen mejor tiempo de respuesta y una menor tasa de error con respecto a otras
herramientas matemticas utilizadas en reconocimiento de voz. En este caso el
reconocimiento es basado en la comparacin de unos patrones de referencia denominados
2
modelos con los vectores de caractersticas generados para la palabra a reconocer. Al
utilizar modelos ocultos de Markov se hace necesario construirlos, esta construccin tiene
como contrapartida una fase de entrenami ento lenta, pero genera muy buenos resultados en
reconocimiento.

La herramienta denominada Hidden Markov Model Toolkit
1
, es utilizada para el
entrenamiento de los HMMs y el reconocimiento de voz en general. La primera versin fue
desarrollada por Speech Vision and Robotics Group del Cambridge University
Engineering Department (CUED)
2
en 1989 por Steve Young, consiste en un conjunto de
programas, mdulos y libreras escritas en lenguaje C. Estos fueron concebidos
inicialmente para ser utilizados en ASR
3
, pero tambin se han utilizado en otras numerosas
aplicaciones tales como sntesis del habla, reconocimiento de secuencias de DNA,
reconocimiento de caracteres [Toselli04], etc. HTK es uno de los programas ms
completos y utilizados no slo en el Reino Unido, tambin en Europa y Norte Amrica; ha
sido adoptado para varios tipos de idiomas como el dans [Frans04], alemn [Oba03],
espaol, etc., debido a que se puede entrenar y adaptar con cualquier vocabulario y acento.

El programa HTK permite utilizar diferentes metodologas de entrenamiento de los HMMs.
Debido a esto en el proyecto se propuso la posibilidad de utilizar la herramienta HTK en el
proceso de construccin de dos aplicaciones de reconocimiento automtico de voz, las
cuales son: reconocimi ento de palabras aisladas [Morales04] y reconocimiento de dgitos
conectados. El objetivo principal de la construccin de los reconocedores, es explotar el
uso de las herramientas utilizadas en el proceso. Con esto se busca brindar una
metodologa de desarrollo, documentndola por medio de este proyecto.

El primer enfoque que se presenta es el de reconocer palabras aisladas, es decir que las
palabras se pronuncian entre silencios de tal forma que el procesamiento se realiza teniendo
como unidades lingsticas las palabras de un vocabulario especfico, reconociendo una
palabra ante una seal de entrada. Este tipo de reconocedores tiene muchas aplicaciones,

1
Software HTK.
2
http://htk.eng.cam.ac.uk.
3
Reconocimiento automtico de habla.
3
por ejemplo se pueden utilizar en la ejecucin de comandos dictados a una mquina para
realizar una tarea deseada. Debido a esto se escogieron las palabras prender, apagar,
cancelar, si y no para que formaran parte del vocabulario del reconocedor, y as simular los
comandos bsicos para prender y apagar una mquina, con opcin de cancelar la orden y de
confirmarla por medio de los comandos cancelar, si y no.

El segundo enfoque del trabajo fue el de reconocer una cadena de 6 nmeros del cero al
nueve, pronunciados de manera continua. Esta aplicacin se llama dgitos conectados y es
una aproximacin al reconocimiento de habla continua. En esta clase de aplicaciones no se
reconoce el modelo de la palabra en s, sino se reconocen las palabras bajo el nivel de
fonemas, dado que estos representan la unidad bsica del habla. Por lo tanto esta clase de
reconocedores requieren ms trabajo en su construccin con respecto a los reconocedores
de palabras aisladas. Una aplicacin de este tipo de reconocedores es la del marcado
automtico del telfono por medio de la voz.

Los sistemas reconocedores propuestos tienen la caracterstica de ser dependientes del
locutor, es decir slo se reconoce la voz de una persona en particular. En un sistema
dependiente del locutor es ms probable que el porcentaje de reconocimiento sea mayor.
Las muestras que va a tener el reconocedor slo pertenecern a un locutor, lo cual hace ms
fcil la tarea de reconocer el vocabulario. Adems, otra especificacin de los sistemas
reconocedores es la no robustez. Esto significa que el sistema tendr un comportamiento
muy sensible al ruido, por lo tanto su rendimiento se degradar en entornos ruidosos.

HTK presenta una desventaja debido a que esta herramienta se ejecuta mediante comandos
de lnea desde DOS, por lo tanto el sistema presenta poca amabilidad para realizar el
proceso de construccin de los reconocedores. Debido a la gran cantidad de archivos que
se manipulan, los procesos pueden llegar a ser largos y complejos en su construccin. Por
lo tanto el proyecto propuso el desarrollo de una interfaz amigable, para guiar al usuario
paso por paso en las diferentes fases empleadas para la construccin de los reconocedores
propuestos. Esta interfaz se realiz bajo el cdigo de Visual Basic, consiguiendo que la
4
informacin suministrada por el usuario se limite al vocabulario del reconocedor, con
caractersticas tpicas de cada aplicacin.

En este informe se detalla el proceso realizado para la construccin de los reconocedores de
palabras aisladas y de dgitos conectados, adems de la interfaz desarrollada. En el captulo
1 se realiza una breve descripcin de la teora de reconocimiento de palabras aisladas y
dgitos conectados, adems se explica el reconocimiento de voz utilizando modelos ocultos
de Harkov y sus diferentes componentes; en el captulo 2 se presenta por medio de
diagramas de bloques el proceso global realizado para la construccin de los dos
reconocedores, adems se presentan las caractersticas principales con que fueron
desarrolladas; el captulo 3 presenta en forma detallada los pasos que fueron ejecutados en
cada una de las aplicaciones para llegar al resultado final; el captulo 4 presenta los
resultados obtenidos en los procesos de reconocimiento de cada aplicacin, adems muestra
el anlisis realizado en cada uno de los reconocedores frente a diferentes seales; el
captulo 5 plantea las conclusiones de los resultados obtenidos al utilizar la herramienta
HTK, adems presenta las posibles mejoras de los reconocedores y la interfaz, luego se
describen los trabajos a futuro; el captulo 6 presenta la bibliografa utilizada en el
proyecto.















5




1. MARCO TERICO

Este proyecto abarca dos aplicaciones de reconocimiento de voz, aislado y concatenado.
La teora de cada forma de reconocimiento de voz mencionada anteriormente se explica a
continuacin.

1.1 RECONOCIMIENTO DE PALABRAS AISLADAS
4


En este tipo de reconocimiento se asume que el locutor pronuncia de forma deliberada
palabras con pausas suficientemente grandes entre ellas. El hecho de que se puedan
localizar de forma sencilla las fronteras entre palabras simplifica mucho la tarea de
reconocimiento. En la Figura 1., se puede observar la forma ms simple de estrategia de
reconocimiento de habla, la cual es la de reconocimiento de palabras aisladas.


Figura 1. Reconocimiento de palabras aisladas.
5



4
Referencia [Fernandez01].
5
Figura tomada de HTKbook. [Young02]
6
En donde la forma de onda de voz de la palabra a reconocer, se parametriza, luego se divide
en los coeficientes, los cuales contienen la informacin de las caractersticas acsticas de la
voz y finalmente este conjunto se encuentra listo para el reconocimiento final.

Es muy conveniente para ciertas aplicaciones, particularmente aquellas en las que se envan
rdenes a una mquina a travs de comandos consistentes en una palabra de un pequeo
vocabulario.

1.2 RECONOCIMIENTO DE VOZ CONECTADA
6


En aplicaciones de reconocimiento de voz continua con pequeos vocabularios, a veces se
utiliza el denominado reconocimiento de voz conectada. El trmino voz conectada se
refiere a la estrategia de reconocimiento ms que a la voz en s misma. En general, la voz
se pronuncia de una forma continua.

En esta tcnica, la oracin se decodifica conectando modelos y comparando la declaracin
completa con esos modelos concatenados. El sistema normalmente no intenta modelar
efectos alofnicos presentes en las fronteras de las palabras, ni efectos de coarticulacin
intra- e inter- palabras. Hay una hiptesis implcita que es que aunque no se pueden
localizar fronteras inequvocas entre palabras, las palabras estn razonablemente bien
articuladas.

1.3 PARAMETRIZACION DE LAS SEALES DE VOZ

El objetivo de la caracterizacin paramtrica de las seales de voz es transformar la voz de
entrada en un conjunto de vectores que contengan toda la informacin discriminatoria
presente en la seal.


6
Referencia [Fernandez01].
7
Los Coeficientes Cepstrum en la Escala Mel (MFCCs - Mel-Frequency Cepstral
Coefficients) han mostrado, en reconocimiento de voz, un rendimiento superior a otras
tcnicas de parametrizacin, como la tcnica LPC. Para el clculo MFCC se utiliza
normalmente un determinado nmero de filtros triangulares paso-banda con un gran solape.
Estos filtros estn equiespaciados en la escala Mel de frecuencias. La salida de cada filtro
se puede considerar que representa la energa de la seal dentro de la banda de paso de
dicho filtro. Para calcular los parmetros MFCC se aplica una transformada discreta de
coseno a las salidas de log-energa de estos filtros.

( )

=
N
j
j i
j
N
i
m
N
c
1
5 . 0 cos
2
(1.1)

donde N es el nmero de filtros del banco de filtros y m
j
son las amplitudes del banco de
filtros logartmico.

Si una determinada seal de voz se parametriza en T vectores de observacin,
representados por O = {o1, o2, . . . , oT }, entonces se puede calcular la verosimilitud de
generar esta seal de voz utilizando una determinada secuencia de estados S = {s1, s2, . . . ,
sT } dado el anterior HMM. Dicha verosimilitud est dada por el producto de la
verosimilitud de que cada observacin ot sea generada por su estado asociado st, y la
probabilidad de la secuencia de estados calculada a partir de las probabilidades de
transicin.

1.4 RECONOCIMIENTO DE VOZ BASADO EN HMMS.
7


Los modelos ocultos de Markov (HMM) son modelos estadsticos que pueden representar
procesos aleatorios paramtricos. Estos son el enfoque estocstico ms popular y con
mayor xito en el mbito del reconocimiento de voz.


7
Referencias [Rabiner86] y [Deller93]
8
Un modelo oculto de Markov est compuesto de dos elementos bsicos: un proceso de
Markov y un conjunto de distribuciones de probabilidad de salida. Los estados del proceso
de Markov estn ocultos pero son observables de una manera indirecta a partir de la
secuencia de vectores con informacin espectral extrados de la seal de voz de entrada.

Los HMM en reconocimiento de voz se utilizan teniendo en cuenta dos hiptesis:

1. La voz se puede dividir en segmentos, estados, en los que la seal de voz se
puede considerar estacionaria. Es decir, en la ventana de anlisis la seal mantiene
la estructura de principio a fin. Se asume que las transiciones entre segmentos
contiguos son instantneas.
2. La probabilidad de observacin de que un vector de caractersticas se genere
depende slo del estado actual y no de smbolos anteriores. Esta es una suposicin
de Markov de primer orden, denominada hiptesis de independencia.

Ninguna de estas hiptesis es cierta para la seal de voz. Sin embargo, hasta el momento,
los HMM estndar son los que se utilizan en la mayora de los reconocedores de voz
actuales.

1.4.1 Especificaciones de los HMMs

Un modelo oculto de Markov es una mquina de estados finita probabilstica, es decir, un
conjunto de estados conectados unos a otros por arcos de transicin, con probabilidades
asociadas a cada arco, mirar la Figura 2. En esta figura se puede observar un ejemplo de
un modelo oculto de Markov tipo Bakis o de izquierda a derecha, con dos estados no
emisores y cuatro estados emisores, es decir que emiten funcin de probabilidad.

9

Figura 2. Generacin de los Modelos de Markov de Izquierda a Derecha.
8


En cualquier instante de tiempo especificado se puede considerar que el sistema est en
uno de los estados disponibles y que, a intervalos regulares de tiempo ocurre una transicin
a otro estado (o al mismo estado si este dispone de una transicin a si mismo) conforme a
las probabilidades asociadas a los arcos de transicin. Asociado a cada estado tambin
existe una funcin de densidad de probabilidad que define la probabilidad de emitir un
vector de observacin una vez que se entra en dicho estado del HMM.

Para una densidad Gaussiana Figura 3., la probabilidad de salida:

( ) ( )

=
=
M
m
jm jm t jm t j
o N c o b
1
, ;
(1.2)


8
Figura tomada de HTKbook. [Young02]
10

Figura 3. Representacin de la Densidad Gaussiana.

En este proyecto, las especificaciones de HMMs utilizadas son las soportadas por la
herramienta HTK para reconocimiento de voz conectada y aislada. Estas especificaciones
limitan la arquitectura general de los HMM de la siguiente forma:

1. Las densidades de observacin son Gaussianas multivariables continuas.
2. La topologa del modelo considera un estado de entrada y otro de salida no
emisores.

Los estados no-emisores en la topologa de HMM propuesta en HTK se utilizan para
facilitar la conexin de HMMs en el reconocimiento de voz conectada, y se denominan
estados de entrada y salida del HMM.

1.4.2 Entrenamiento - Reconocimiento usando HMM

Los modelos ocultos de Markov [Rabiner86], se caracterizan por tres problemas que hay
que resolver para que resulten modelos tiles en aplicaciones reales:

Problema de evaluacin. Dada una secuencia de observaciones y un modelo, se
busca como calcular la probabilidad de que la secuencia observada haya sido
producida por dicho modelo.
11
Problema de estimacin. Dada una secuencia de observaciones y un modelo, se
busca como elegir una secuencia de estados que sea ptima en algn sentido.
Problema de entrenamiento. Dada una secuencia de observaciones de
entrenamiento, se busca como obtener los parmetros del modelo de forma ptima.

Estos problemas se concretan en las dos fases de entrenamiento y reconocimiento.

1.4.3 El problema de Entrenamiento

El problema del entrenamiento implica la estimacin de los parmetros del modelo , dada
la secuencia de observacin O = {o1, o2, . . . , oT } como datos de entrenamiento, tal que se
maximice P(O| ).

Tpicamente, el mtodo utilizado para lograr esto es la estimacin Mxima Verosimilitud
(ML - Maximum Likelihood). Para el caso de datos incompletos (tales como la secuencia
oculta de estados) la estimacin ML se puede calcular utilizando el algoritmo Esperanza-
Maximizacin (EM). El caso particular del algoritmo EM para HMMs se conoce como
algoritmo de Baum-Welch desarrollado por Baum y sus colegas [Baum66]. El algoritmo
EM es una aproximacin iterativa para el clculo de mxima verosimilitud que se utiliza
para encontrar en cada paso una estimacin del conjunto de parmetros , y luego intenta
maximizar la verosimilitud de generar los datos de entrenamiento utilizando el modelo, de
tal modo que la nueva verosimilitud es mayor o igual a la previa. Al definir la secuencia de
estados s como perteneciente a un espacio de secuencias de estado S, que incluye todas las
posibles secuencias de estados, la maximizacin de la anterior verosimilitud se puede
realizar maximizando una funcin auxiliar dada por:

Q( ,
^
)

=

S s
P(O, s| ) log P(O, s|
^
) (1.3)

La convergencia del anterior algoritmo fue probada en primer lugar por Baum [Baum66].

12
La anterior funcin auxiliar se puede expandir y descomponer en funciones auxiliares
separadas que se pueden maximizar de forma independiente, para obtener estimaciones
para las probabilidades de transicin entre estados, los pesos de las mezclas y los
parmetros de las Gaussianas para el HMM propuesto. En concreto, para la estimacin de
pesos y parmetros de Gaussiana se llega a las siguientes expresiones

=
=
=
T
t
i
T
t
t ik
t L
o t L
1
1
^
) (
) (
(1.4)

=
=

=
^
1
1
) (
) )( )( (
T
t
i
T
t
T
ik t ik t ik
t L
o o t L
(1.5)

=
=
=
T
t
T
t
ik
ik
t Li
t L
1
1
^
) (
) (
(1.6)

donde Lik(t) es la probabilidad a posteriori de estar en la mezcla k del estado i en el instante
t, y Li(t) es la probabilidad a posteriori de estar en el estados i en el instante t. Tambin se
pueden obtener ecuaciones para la estimacin de las probabilidades de transicin de estado.

1.4.4 El problema de reconocimiento

En la prctica, es preferible basar el reconocimiento en la secuencia de estados de mayor
probabilidad que genera un conjunto dado de observaciones, ya que esto se generaliza de
forma sencilla a la tarea de reconocimiento de voz conectada, mientras que el uso de la
probabilidad total no lo hace.

El problema es encontrar:
13
( ) { } O P
i
i
| max arg
(1.7)

Donde, de acuerdo a Bayes:

( )
( ) ( )
( ) O P
P O P
O P
i i
i

|
| =
(1.8)

Asumiendo que la secuencia de observaciones correspondiente a una palabra wi se genera
por un modelo oculto de Markov i, para resolver el problema de reconocimiento se
necesita calcular P(O| i). En este caso, se asume que:

( ) ( )
i i
O P O P | | =
(1.9)

X
max arg = ( )

T
t
t x x x x x
o b a o b
t t t
2
1
) ( .
1 1 1

(1.10)

El clculo eficiente de la anterior verosimilitud se puede realizar utilizando el denominado
procedimiento Forward-Backward, que es un algoritmo recursivo. El paso forward de este
algoritmo es suficiente para calcular P(O| i).

Dado un modelo , se define un parmetro i(t) como la verosimilitud mxima de
observar los vectores o1 a ot y estar en el estado i en el instante t. Esta verosimilitud
parcial se puede calcular de forma eficiente utilizando la siguiente recursin:

i(t) =
j
max { j(t - 1)aji}bi(ot) (1.11)

Las condiciones iniciales en este caso son:

1(1) = 1 (1.12)
14
i(1) = a1ibi(o1) 2 i N 1 (1.13)

El paso de terminacin, la mxima verosimilitud, es

N(T) =
j
max { j(T)ajN} (1.14)

El mejor camino se puede obtener calculando la anterior mayor verosimilitud en cada
instante de tiempo y manteniendo el camino de los argumentos que lo maximizan.

La anterior recursin forma la base del denominado algoritmo de Viterbi [Forney73].
























15




2. ESPECIFICACIONES

El objetivo del trabajo de grado es utilizar correctamente las herramientas que provee HTK
para reconocimiento automtico de voz. Se busc entender el procedimiento de utilizacin
de las herramientas y adems la metodologa para el proceso de construccin de sistemas
reconocedores utilizando HTK, todo con el fin de documentar los procesos realizados. Para
esto se propuso desarrollar dos aplicaciones de reconocimiento automtico de voz, las
cuales son: reconocimiento de palabras aisladas y reconocimiento de dgitos conectados.
Para desarrollar las dos aplicaciones se sigui el proceso descrito en los diagramas de
bloques, Figuras 4, 5, 6 y 7.

2.1 PALABRAS AISLADAS

El diagrama de bloques de un sistema de reconocimiento de voz de palabras aisladas se
puede dividir en dos etapas importantes, las cuales son: etapa de entrenamiento y etapa de
reconocimiento.

La etapa de entrenamiento es utilizada para construir y entrenar los modelos ocultos de
Markov para cada palabra. Se realiza el proceso de grabacin de bases de datos y anlisis
acstico de las seales de voz, donde se segmentan y parametrizan las seales. En la
Figura 4. se pueden observar los bloques que conforman esta fase:

16

Figura 4. Diagrama en Bloques Fase de entrenamiento.

En la fase de reconocimiento se evala el rendimiento del reconocedor frente a una seal
desconocida. Tiene como entradas la red gramatical obtenida de la gramtica del
reconocedor, el diccionario que contiene el vocabulario del reconocedor, los modelos
entrenados los cuales conforman la salida de la etapa de entrenamiento y finalmente el
anlisis acstico de las seales que hacen parte de la base de datos de prueba. El bloque de
reconocimiento tiene como salida las palabras reconocidas por el sistema, las cuales
conforman la entrada del bloque de anlisis, el cual las compara con las palabras que fueron
insertadas, obteniendo las estadsticas del sistema reconocedor. En la Figura 5. se puede
obsevar el proceso descrito:


Figura 5. Diagrama en Bloques Etapa de Reconocimiento.
17

2.2 DGITOS CONECTADOS.

La aplicacin de dgitos conectados es ms compleja y por lo tanto la aplicacin consta de
ms elementos que en la aplicacin de palabras aisladas. En la primera fase de
entrenamiento de esta aplicacin, se realiza el anlisis acstico de las seales de voz de la
misma forma en que se utiliza en la aplicacin anterior. El entrenamiento se realiza a nivel
de fonemas del espaol Colombiano. Luego se inserta el modelo de silencio corto sp, el
cual modela cualquier pausa introducida por el locutor entre palabras y despus se realiza el
entrenamiento de este modelo junto con los modelos de los fonemas. Posteriormente se
alinean los datos de entrenamiento con el algoritmo de Viterbi, donde se obtienen las
transcripciones alineadas y se crean los modelos de los trifonemas, despus se procede a
entrenarlos y se genera el conjunto final de todos los modelos entrenados, los cuales son la
entrada de la etapa de reconocimiento. En la Figura 6. se puede observar el proceso
mencionado:


Figura 6. Diagrama de Bloques Fase de Entrenamiento.

En la fase de reconocimiento se obtienen las palabras reconocidas frente a una base de
datos de prueba. Sigue el mismo proceso mencionado de la fase de reconocimiento de la
aplicacin de palabras aisladas. En la Figura 7. se puede observar el proceso:

18

Figura 7. Diagrama en Bloques de la Etapa de Reconocimiento.

Despus de haber explicado los componentes del proceso de creacin de de los
reconocedores, se explicaran las caractersticas principales de los sistemas:

Locutor: Debido a que el sistema de reconocimiento para las dos aplicaciones fue planteado
para ser un sistema dependiente del locutor (monolocutor), se escogi una persona diferente
al desarrollador para grabar las bases de datos de entrenamiento y de prueba para cada
aplicacin. El locutor escogido fue una persona adulta y de gnero masculino.

Bases de datos: Las bases de datos de entrenamiento y de pruebas, fueron grabadas en un
ambiente controlado libre de ruido, utilizando un estudio de grabacin. Cada palabra del
vocabulario, fue grabada en formato .wav (PCM de 16 bits y frecuencia de muestreo de
44.1 kHz). La base de datos de entrenamiento, de la aplicacin de palabras aisladas tuvo
como mnimo 79 repeticiones de cada palabra. En el caso de la aplicacin de dgitos
conectados se busc que existiera un mnimo de 59 repeticiones por cada palabra.

El nmero de estados de HMM y el nmero de veces que se re-estimaron los parmetros,
varo en cada aplicacin. En el sistema reconocedor de palabras aisladas el nmero de
estados de los modelos fue de seis, cuatro emisores y dos no emisores, y el nmero de re-
estimaciones de los parmetros fue de cuatro. En el caso de la aplicacin de dgitos
19
conectados el nmero de estados de los modelos fue de cinco con tres estados emisores y
dos no emisores, y el nmero de re-estimaciones embebidas fue de once.

En este trabajo de grado se utilizaron modelos ocultos de Markov de izquierda-derecha, los
cuales fueron descritos en el marco terico de este documento.

Como funcin de observacin se utilizaron las densidades Gausianas multivariables
continuas.

Tamao del vocabulario: Para la aplicacin de palabras aisladas, el tamao del vocabulario
fue de 5 palabras y para la aplicacin de nmeros conectados el tamao del vocabulario fue
de 10 palabras (cada nmero del cero al nueve).

o Palabras aisladas: El sistema es capaz de reconocer una de las palabras, SI,
NO, PRENDER, APAGAR, y CANCELAR.
o Dgitos Conectados: El sistema reconoce una secuencia de seis nmeros.

La interfaz del programa HTK, fue desarrollada en un computador bajo la plataforma
Windows. Para su ejecucin se necesita como mnimo un procesador de 400 MHz y 128 M
de RAM.

El sistema reconoce una palabra de un vocabulario reducido, la cual ha sido asignada como
entrada a reconocer, cumpliendo con la mnima tasa de error descrita en el anteproyecto.
Las entradas del sistema son las bases de datos (bases de datos para entrenamiento y para
pruebas de reconocimiento); deben contener muestras de voz para el entrenamiento de los
modelos ocultos de Markov y un conjunto pequeo de muestras de voz para su
reconocimiento, stas tienen que estar grabadas bajo el formato de audio .wav, sin importar
su frecuencia de muestreo y nmero de bits.

20
La interfaz fue desarrollada de forma que gua al usuario paso por paso en el entrenamiento
y reconocimi ento de voz aislado y conectado. Los pasos propuestos en el programa
siguieron el orden del desarrollo realizado en el trabajo de grado.
































21




3. DESARROLLOS

En este trabajo de grado, se desarrollaron dos sistemas de reconocimiento de voz: un
reconocedor de palabras aisladas y un reconocedor de dgitos conectados, gracias a que el
programa HTK permite utilizar diferentes metodologas de entrenamiento de los HMMs.
Adems se gener una interfaz grfica del programa HTK para las dos aplicaciones
propuestas. Para la construccin de los sistemas, se utilizaron las herramientas de
preparacin de datos, entrenamiento, reconocimiento y anlisis de HTK. La construccin
de los reconocedores permiti evaluar el proceso de utilizacin del programa HTK en los
pasos necesarios para el desarrollo de los sistemas reconocedores, dado que el objetivo
principal, que propuso este trabajo de grado, radica en explotar el programa como
herramienta til en el proceso de entrenamiento y reconocimiento automtico de voz de las
dos aplicaciones. Debido a esto, fue necesario familiarizarse con las herramientas, para
poder ejecutarlas de manera correcta, por medio de un comando de lnea. Se dividieron las
herramientas utilizadas en los cuatro grupos descritos anteriormente, y los cuales se pueden
observar en la Tabla 1.

GRUPO HERRAMIENTAS
HERRAMIENTAS DE PREPARACION DE
DATOS
HSLAB, HCOPY, HLED.
HERRAMIENTAS DE ENTRENAMIENTO
HINIT, HREST, HCOMPV, HHED,
HVITE.
HERRAMIENTAS DE RECONOCIMIENTO HVITE, HPARSE, HSGEN
HERRAMIENTAS DE ANALISIS HRESULTS
Tabla 1. Grupos de herramientas de HTK Utilizadas en las Aplicaciones.

22
Una meta que busc este trabajo de grado, fue la de facilitar la utilizacin del programa
HTK, para personas interesadas en el rea, logrando documentar los procesos realizados.
Para un mejor entendimiento del desarrollo de las aplicaciones, en este capitulo se
presentan y se explican tericamente los pasos necesarios en la construccin de los
reconocedores y en el Anexo A de este documento, se pueden observar los comandos de
lnea utilizados en cada uno de los pasos propuestos en este capitulo junto con su
correspondiente explicacin.

A continuacin se expondr el proceso desarrollado en cada aplicacin.

3.1 APLICACIN DE PALABRAS AISLADAS.

Los principales pasos para la construccin de sta aplicacin son:

Creacin de una base de datos para entrenamiento.
Anlisis acstico.
Definicin de los modelos.
Entrenamiento de los modelos.
Definicin de la tarea.
Reconocimiento de una seal de entrada desconocida, Base de datos de Prueba.
Evaluacin del sistema Reconocedor.

3.1.1 Grabacin de la Seal de Voz.

Primero se grabaron las seales de voz cuyos modelos de palabras fueron entrenados. Las
palabras grabadas fueron SI, NO, PRENDER, APAGAR y CANCELAR. Estas
grabaciones se realizaron en un estudio de grabacin libre de ruido (ambiente controlado) y
bajo el formato de audio .WAV. Cada palabra fue cuidadosamente grabada en medio de un
silencio de inicio y un silencio final. Las palabras grabadas en la base de datos de
entrenamiento, se repitieron 60 veces cada una. La base de datos de prueba, se grabo, bajo
23
las mismas condiciones y cada palabra se repiti un nmero de 20 veces. En general para
la base de datos de entrenamiento se grabaron 299 seales de voz, y para la base de datos
de prueba se obtuvieron 100 grabaciones en total.

Las seales de voz pertenecen a un slo locutor masculino, debido a que la voz masculina
presenta mejor comportamiento en el reconocimiento automtico de voz.

3.1.2 Etiquetas de las Seales de Voz.

Cada seal de voz fue etiquetada, esto se realiz al asociar un texto (etiqueta) describiendo
su contenido. Para etiquetar las seales, se utiliz la herramienta HSLab de HTK. Para la
invocacin de esta herramienta, fue necesario utilizar un archivo de configuracin, para
poder leer los archivos de voz en formato .wav. Al utilizar la herramienta HSLab, una
interfaz grfica se despliega en la pantalla, esta es la nica interfaz que posee el programa.
En la Figura 8. se puede observar la pantalla que aparece al invocar la herramienta Hslab:


Figura 8. Interfaz Grfica al invocar la herramienta Hslab.

24
Para cada seal de voz, se etiquetaron, 3 regiones sucesivas: silencio de inicio, la palabra
grabada, y un silencio final. En la figura se puede observar las 3 regiones que fueron
etiquetadas, las cuales son: sil cancelar sil, respectivamente. Estas tres regiones no se
pueden sobrelapar una con otra, pero no importa si existe un pequeo espacio entre ellas.

3.1.3 Anlisis Acstico

Las herramientas de reconocimiento de voz de HTK, no pueden procesar las formas de
onda de voz directamente sobre la seal, primero se deben parametrizar. Estas tienen que
ser representadas en una forma ms compacta y eficiente. Este paso es llamado Anlisis
Acstico. A continuacin se presenta una explicacin de lo realizado en este numeral,
paso por paso:

La seal fue segmentada en paquetes sucesivos, cuya longitud es de 30ms
sobrelapandose 20ms sobre cualquier otra, logrando un 66.66% de sobrelapami ento.
Cada paquete fue multiplicado por la funcin de Hamming, utilizando ventanas de
una misma duracin.
Se extrajo un paquete de vectores de coeficientes acsticos, dando una
representacin compacta de las propiedades espectrales del paquete. En este
proyecto se utiliz el anlisis MFCC o anlisis de los Coeficientes Cepstrales en la
escala de Frecuencia Mel. Se obtuvieron los primeros 12 coeficientes MFCC
[c1,., c12], el coeficiente MFCC nulo (c0) el cual es proporcional al logaritmo
de la energa total, 13 coeficientes delta y 13 coeficientes de aceleracin.
Todos los coeficientes en conjunto forman un vector de 39 coeficientes extrados de
cada seal de voz.
El banco de filtros utilizado fue de 26 canales.
Las seales tuvieron un pre-nfasis de primer orden con un coeficiente de 0.97.

Lo anteriormente descrito, fue introducido como informacin, en un archivo de
configuracin para poder ejecutar correctamente algunas herramientas (Hcopy y Hslab).
25
Cabe resaltar que HTK permite utilizar otras clases de configuraciones. Se pueden utilizar
funciones Gaussianas continuas o discretas, el porcentaje de sobrelapamiento esta a
disposicin del desarrollador y adems se puede implementar otra clase de parametrizacion
de la seal como lo es LPC.

La conversin desde la forma de onda original hacia una serie de vectores de coeficientes
acsticos, se realiz con la herramienta HCopy de HTK.

3.1.4 Definicin de los HMMs.

Se deben modelar eventos acsticos con los modelos ocultos de Markov [Rabiner66] para
las palabras y el silencio (si, no, apagar, prender, cancelar y sil). Para cada una, se diseo
un HMM. El primer paso para disearla es el de escoger una topologa a priori para cada
HMM:

- Numero de estados.
- Forma de las funciones de observacin (Asociadas para cada estado).
- Disposicin de las transiciones entre estados.

No existe actualmente una regla fija para definir la topologa [Deller93]. En esta
aplicacin, se escogi la misma topologa para cada uno de los HMMs, que se encuentra en
la Figura 9.


Figura 9. Topologa bsica de los HMMs.
9


9
Figura tomada de HTKbook.
26

El modelo consiste realmente de 4 estados activos, {S
2,
S
3
, S
4
, S
5
}: El primer y el ultimo
estado (aqu S
1
y S
6
), son estados no emisores (sin funcin de observacin), usados por
HTK para algunas facilidades de implementacin. Las funciones de observacin b
i
son
distribuciones Gaussianas con matrices diagonales. Las transiciones de probabilidades son
nombradas a
ij.
En HTK un modelo oculto de Markov se describe en un archivo de texto
siguiendo un estructura definida la cual se puede observar en el Anexo A del este
documento.


3.1.5 Entrenamiento de los HMMs.

El procedimiento de entrenamiento est descrito en la Figura 10.


Figura 10. Diagrama de Flujo: Procedimiento completo de entrenamiento.

Para entrenar los modelos se utilizaron directorios de la forma HMMi, donde i hace
referencia al nmero de veces que se han entrenado los modelos. El procedimiento de
entrenamiento descrito anteriormente, toma los modelos inicializados en el directorio
HMM0 y los entrena hasta llegar a la convergencia de los datos de entrenamiento. Este
proceso se realiz hasta llegar al directorio HMM4. A continuacin se describe
detalladamente el proceso de entrenamiento utilizado en esta aplicacin.



27
3.1.5.1 Inicializacin

Antes de empezar el proceso de entrenamiento, los parmetros de los HMMs deben estar
apropiadamente inicializados con los datos de entrenamiento para permitir una
convergencia rpida y precisa de los algoritmos de entrenamiento. HTK ofrece 2
herramientas diferentes de inicializacin: Hinit y HCompV.

Hinit, inicializa los HMMs por alineacin en tiempo de los datos de entrenamiento
con el algoritmo de Viterbi [Forney73].
Hcompv, ejecuta una inicializacin absoluta del modelo. Para cada estado de los
HMMs la herrami enta muestra la media y los vectores de varianza, estos son
computados globalmente sobre todo el cuerpo de entrenamiento.

El proceso de inicializacin en primer lugar, se realiz con la herramienta Hinit. Este
proceso de inicializacin se realiz para cada uno de los modelos propuestos.

Por otro lado tambin se invoc Hcompv, que adems de inicializar los modelos tiene como
salida un archivo llamado vFloors, el cual contiene la varianza global del vector
multiplicada por un factor.

Los valores guardados en vFloors se utilizaron posteriormente durante el proceso de
entrenamiento como valores piso para los vectores de varianza estimados. El valor piso fue
usado, para prever que la varianza fuera muy pequea y que por consecuencia causara un
error numrico en los clculos, segn lo recomendado en el manual de HTK.

En general el proceso de la inicializacin de los parmetros de los HMM est descrito en la
Figura 11. Donde se utiliza el algoritmo de Viterbi para encontrar la secuencia de estados
ms probables que corresponda a cada muestra de la base de datos de entrenamiento,
despues obtener la estimacin y convergencia de los parmetros de los HMMs.

28

Figura 11. Diagrama de flujo: Inicializacin de los parmetros de los HMM.
10


3.1.5.2 Entrenamiento.

HTK provee una herramienta para el entrenamiento de los modelos ocultos de Markov,
llamada HRest (Re-estimacin por Baum-Welch [Baum66], la cual es utilizada para
ejecutar una re-estimacin e iteracin de los valores ptimos para los parmetros de los
HMM (probabilidades de transicin, media y vectores de varianza para cada funcin de
observacin

El uso de esta herramienta se repiti continuamente en el transcurso del entrenamiento de
cada HMM. En cada ocasin, la iteracin de HRest, muestra sobre la pantalla la
verosimilitud, indicando la convergencia, y adems el cambio de la medida de sta. En el
preciso momento en el que sta medida no disminuyo en valor absoluto, desde una
iteracin de HRest hacia otra, se procedi a detener el proceso. La cantidad de re-
estimaciones utilizadas en este proyecto fue de 4.

En la Figura 12. Se puede observar el diagrama de flujo del entrenamiento de los modelos
HMM.

10
Para mayor informacin acerca del proceso de inicializacin de los HMMs referirse al manual de HTK
pagina 120.
29


Figura 12. Diagrama en flujo: Re-estimacin de los parmetros de los HMM.

Donde el algoritmo Forward/Backward, se encarga de encontrar la probabilidad de estar en
un estado, en una ventana de tiempo. Finalmente la convergencia de los parmetros tendr
como consecuencia el resultado de los HMMs entrenados.

3.1.6 Diccionario y Gramtica.

Antes de usar los modelos de palabras, se tiene que definir una arquitectura bsica para el
reconocedor (la tarea de gramtica). Primero se defini la ms simple: Un silencio inicial
(sil), seguida de una sola palabra, y luego un silencio final (sil).

En HTK, la tarea de gramtica se escribe en un archivo de texto, por medio de un lenguaje
de programacin llamado lenguaje Perl, mirar Anexo A. Por medio de la utilizacin de
variables se puede definir la forma, en la que el sistema va a reconocer las palabras. El
reconocedor debe reconocer a cual palabra corresponde cada una de las variables
propuestas en la gramtica. El listado de estas palabras fue introducido por medio del
archivo del diccionario, el cual contiene todas las palabras que van a ser reconocidas.

30
3.1.6.1 La Red.

La tarea de gramtica se compil con la herramienta HParse para obtener la red de tarea.
La red de la gramtica, es la red que indica como se reconocern las palabras, es decir, si se
reconocern despus de un silencio inicial y un silencio final, etc. En el caso de palabras
aisladas esta red es ms sencilla que la red de la aplicacin de nmeros conectados. En la
Figura 13. se puede observar la red utilizada en el sistema reconocedor de palabras aisladas
de este proyecto:


Figura 13. Red de tarea del Reconocedor de palabras aisladas.

En la figura 13. se puede observar que los modelos de las palabras correspondientes al
vocabulario del reconocedor, se reconocen en medio de un silencio de inicio y un silencio
inicial, sin importar la duracin del silencio. Cada modelo del vocabulario del reconocedor,
se reconoce una sola vez.
3.1.7 Reconocimiento.

A continuacin se describir el proceso de reconocimiento:

31
- Primero se transform una seal de voz de entrada (.wav), a una serie de vectores
acsticos, con la herramienta HCopy, de la misma forma como se realiz con los
datos de entrenamiento.
- La entrada de observacin se proceso posteriormente por el algoritmo de Viterbi,
cuyas correspondencias se compararon con los modelos de Markov del reconocedor.
Esto se llevo a cabo, ejecutando la herramienta HVite.

La salida de esta herramienta, presenta las etiquetas de las seales de entrada, es decir las
palabras reconocidas por el sistema. En este proyecto, de una seal de entrada, se
reconoci una palabra entre seis que forman el sistema. La palabra final es reconocida de
forma correcta junto con el modelo sil. El modelo sil es reconocido varias veces, debido a
que su tiempo de aparicin en los archivos de audio varia mucho en cada uno.

3.1.8 Evaluacin del Reconocedor

La evaluacin del reconocimiento de un sistema reconocedor, debe ser medida sobre un
conjunto de datos diferente del conjunto de entrenamiento. Un conjunto de prueba
separado, con nuevas palabras grabadas (las mismas a reconocer y unas diferentes). De
nuevo estas palabras debern estar etiquetadas y convertidas a la parametrizacin utilizada
en la etapa de entrenamiento.

3.1.8.1 Archivos de Etiqueta Maestros.

Antes de medir el rendimiento del reconocedor, se necesitan crear 2 archivos llamados
archivos de etiqueta maestros MLF, cuya arquitectura se encuentra descrita en el Anexo
A.

- El primero deber contener las transcripciones correctas de todo el
cuerpo de prueba, estas son las transcripciones obtenidas al etiquetar
manualmente.
32
- La segunda deber contener las transcripciones del reconocedor de todo el
cuerpo de prueba, estas son, las transcripciones hipotticas producidas por el
reconocedor.

3.1.8.2 Tasa de Reconocimiento

La medida del rendimiento del reconocedor resultar de la comparacin entre las
transcripciones de referencia y las hiptesis de reconocimiento de cada dato. Estos son
comparados al ejecutar la herramienta de evaluacin HResults.

La salida es un archivo de texto el cual contiene las estadsticas de rendimiento del sistema
reconocedor, como:

- Estadsticas de reconocimiento sobre un archivo base.
- Transcripciones alineadas en tiempo.

En el archivo de salida de esta herramienta, se puede observar los tipos de resultados que
fueron obtenidos. Se presenta la tasa de reconocimiento de la oracin, adems se muestra
la tasa de reconocimiento de las palabras.

En el caso de palabras aisladas, las dos tasas son del mismo valor debido a que la gramtica
slo permite oraciones con una sola palabra (aparte de los silencios). Esta es por
consiguiente, una tarea de reconocimiento de palabras aisladas.

3.2 APLICACIN DE DGITOS CONECTADOS.

A continuacin se presentar la segunda aplicacin de este proyecto, la cual es la de
reconocimiento de dgitos conectados. Se presentarn los pasos que se tuvieron en cuenta
para la ejecucin de este sistema. Con respecto a la aplicacin anterior, esta demand
mayor tiempo y trabajo debido a su complejidad, gracias a que el entrenamiento se realizo a
33
nivel de fonemas y trifonemas utilizando un modelo de silencio corto entre palabras. Toda
la informacin de los comandos de lnea y arquitectura de los archivos utilizados para la
construccin de este reconocedor se pueden observar en el Anexo A de este documento.

El proyecto sigui los siguientes pasos para la finalizacin del reconocedor en esta
aplicacin:

Definicin de la tarea del reconocedor. Gramtica y Diccionario.
Creacin de las bases de datos de entrenamiento y de pruebas.
Etiquetas de las seales de voz.
Anlisis acstico.
Definicin de los modelos.
Entrenamiento de los modelos monofonemas.
Insercin del modelo de silencio corto.
Entrenamiento de los monofonemas con el silencio corto.
Construccin de los modelos de los trifonemas.
Entrenamiento de los trifonemas.
Reconocimiento a una seal desconocida.
Evaluacin del reconocedor.

3.2.1 Definicin de la Tarea del Reconocedor. Gramtica y Diccionario.

La meta del sistema propuesto es la de reconocer una cadena de 6 dgitos del cero al nueve,
donde esta informacin pertenece a la gramtica del reconocedor. HTK provee una
definicin del lenguaje de gramtica, para especificar gramticas simples como la utilizada
en este proyecto. Consiste en un conjunto de definiciones de variables seguidas por una
expresin regular, describiendo as las palabras a reconocer. El contenido del archivo de
gramtica del reconocedor se encuentra descrito en el Anexo A de este documento.

34
La gramtica descrita anteriormente se puede representar en forma de una red, como
muestra la Figura 14.


Figura 14. Red de Trabajo de las Palabras en la Aplicacin de Dgitos Conectados.

Cabe resaltar que la anterior representacin de la gramtica es introducida por el usuario a
su conveniencia, manipulando el archivo que contiene la gramtica. El reconocedor de
HTK requiere una red de palabras, la cual tiene que ser definida empleando una notacin de
nivel bajo llamada Standard Lattice Format SLF en la que cada palabra y cada transicin
que exista de palabra a palabra es listada de forma explcita. Esta red de palabras fue
creada automticamente desde la gramtica del reconocedor, usando la herramienta Hparse
de la misma forma en que se utiliz en la aplicacin anterior.

Despus de haber definido la gramtica del reconocedor, se tiene que crear el diccionario
del sistema. El primer paso para la construccin del diccionario, es hacer un listado de las
palabras requeridas. En esta aplicacin, el contenido del diccionario vara con respecto a la
aplicacin de palabras aisladas, debido a que el reconocimiento de palabras en esta
aplicacin, se realiz a nivel de fonemas. El formato general del diccionario es:

UNO [smbolo de salida] p1 p2 p3 . sp

Lo anterior significa que la palabra UNO, se pronuncia como la secuencia de fonemas p1
p2 p3., el smbolo de salida encerrado dentro de los parntesis cuadrados, especfica el
35
smbolo que el reconocedor mostrar cuando reconozca la palabra UNO. En el caso en que
se omitan los parntesis, la palabra misma ser la salida del sistema. Si no se incluye nada
dentro de los parntesis, entonces el sistema no mostrar nada en la salida.

Se utiliz el modelo de short-pause o silencio corto sp, el cual existe entre palabras debido
a las pausas existentes entre ellas, las cuales son introducidas por el locutor. En el
diccionario, este silencio se representa al final de cada pronunciacin de las palabras. Este
modelo se explicar con ms detenimiento en los siguientes captulos. Hay que resaltar que
el diccionario debe seguir el orden alfabtico del cdigo ASCII. En el Anexo A de este
documento se puede observar el contenido del diccionario utilizado en el sistema
reconocedor.

3.2.2 Grabacin de las Seales de Voz.

Las bases de datos se grabaron bajo las mismas caractersticas que las seales de voz de la
aplicacin de palabras aisladas. En la base de datos de entrenamiento se grabaron 117
archivos que contenan secuencias de seis nmeros cada uno, estas secuencias fueron
creadas por la herramienta Hsgen de HTK, al tomar la gramtica del reconocedor y generar
un listado aleatorio de las palabras utilizadas en la aplicacin, esta lista se puede observar
en el Anexo C. Cada palabra se grabo un nmero mnimo de 59 repeticiones cada una.

En la base de datos de pruebas, se grabaron 23 archivos con secuencias de 6 nmeros en
cada archivo.

3.2.3 Etiquetas de las Seales de Voz.

En el caso de los datos de entrenamiento, las etiquetas fueron utilizadas en conjunto con la
pronunciacin del diccionario para proveer el nivel inicial de las transcripciones de los
fonemas exigidos, y poder as empezar el proceso de entrenamiento.

36
Para entrenar un conjunto de HMMs, todos los archivos de datos de entrenamiento deben
tener una transcripcin asociada a los fonemas (Etiquetas). En la figura Figura 15. se
puede observar un ejemplo de las etiquetas de dos palabras diferentes (seis y Uno), stas, se
etiquetaron a nivel de fonemas, este proceso se realiz manualmente con la herramienta
Hslab, debido a que HTK no provee una herramienta que haga un alineamiento de las
etiquetas con los datos de voz, adems se necesitara una base de datos del espaol
Colombiano para poder realizar este procedimiento.


Figura 15. Etiquetas de las Seales de Voz con Hslab.

Se utilizaron dos transcripciones para entrenar los modelos: la primera transcripcin no
contena el modelo de silencio corto (sp) entre palabras. En la segunda transcripcin se
insert el modelo sp, el cual es utilizado para la prevencin de cualquier pausa introducida
por el locutor. Cada transcripcin fue utilizada en el entrenamiento los modelos.

Despus de etiquetar las seales de voz, se cre un archivo Master Label File (MLF), el
cual contiene un listado de las palabras grabadas en cada archivo de voz (117 grabaciones).
El proceso se vuelve ms eficiente al utilizar el archivo MLF, en vez de utilizar cada
archivo de transcripcin individualmente. Todo esto se realiza para crear el nivel de
palabras.

37
Una vez que fue creado el nivel de palabras MLF, se procedi a generar un nivel de
fonemas MLF utilizando el editor Hled. Hled reemplaza cada palabra contenida en el nivel
de palabras, por su correspondiente pronunciacin descrita en el diccionario y adems
coloca el modelo de silencio al inicio y al final de cada expresin, debido a que la cadena
de nmeros se reconocer despus de un silencio de inicio y un silencio final. Por ltimo
esta herramienta borra todas las etiquetas de silencio corto sp, dado que este modelo fue
creado y entrenado posteriormente.

3.2.4 Codificacin de los Datos.

La fase final de la preparacin de los datos, es la parametrizacion de las formas de onda de
la voz en secuencias de vectores de coeficientes. Esta fase se llev a cabo de la misma
forma que en la aplicacin de palabras aisladas, utilizando la misma configuracin.

3.2.5 Creacin de los Monofonemas.

Primero se definieron los fonemas colombianos que forman cada una de las palabras que
contiene el diccionario del reconocedor. Los fonemas fueron los siguientes: u, n, o, d, s, t,
r, e, kk, w, a, i, N, j, c y b. El fonema k fue reemplazado por el fonema kk utilizado en la
aplicacin, debido a que el programa no permita el uso de la letra k como un fonema.
Cada fonema junto con sil forman los HMMs del sistema.

El primer paso en el entrenamiento de los HMMs es el de definir la topologa del modelo.
Los valores numricos de la media, la varianza y las probabilidades de la matriz de
transicin del modelo prototipo no son importantes, su propsito es el de definir la
topologa del modelo. Una topologa que es muy utilizada para sistemas basados en
reconocimiento a nivel de fonemas, es la de los modelos de 3 estados de izquierda-derecha
sin saltos como se puede observar en la Figura 16.

38

Figura 16. Topologa de los HMMs de Izquierda a Derecha de 3 Estados Emisores.

Al crear los modelos se utilizaron unos directorios con nombres HMM0, HMM1,,
HMMi. Donde i significa el nmero de veces que se han entrenado o manipulado los
modelos.

La inicializacin de los modelos se llev a cabo con la herramienta Hcompv, de igual forma
a como se realiz en la aplicacin de palabras aisladas, de igual manera se obtuvo el
archivo vFloors. Para cada fonema (incluyendo el modelo sil), se copi el contenido del
prototipo HMM ya inicializado. Esto se realiz manualmente utilizando un editor de texto,
para crear un archivo MMF (Master Macro File) y guardarlo en el directorio HMM0. El
formato de los archivos MMF es similar al de los archivos MLF y adems de esto, tienen
un propsito similar.

Despus de la inicializacin, se entrenaron los modelos del directorio HMM0 al HMM1. El
entrenamiento se realiz con la herramienta Herest, la cual ejecuta una reestimacin
embebida. Esto significa que se actualizarn simultneamente todos los modelos del
sistema, usando todas las muestras de entrenamiento. Para ello, se ignora toda la
informacin de segmentado en las etiquetas, puesto que slo interesa conocer el mensaje
que contiene la frase. En cada ocasin que se invoc Herest, esta herramienta ejecut una
sola reestimacin. Cada nuevo conjunto de HMMs fue guardado en un nuevo directorio.

Por recomendacin del manual de HTK, se invoc Herest dos veces ms, hasta llegar al
directorio HMM3 en el cual fue guardado el conjunto final de los HMMs de los
monofonemas.
39

A continuacin en la Figura 17. se presenta el diagrama en bloques del proceso realizado:


Figura 17. Insercin de las Etiquetas, Anlisis Acstico, Inicializacin de los HMMs y Entrenamiento de los
Monofonemas.

3.2.6 Mejorando los Modelos de Silencio.

En el paso anterior se generaron los HMMs de 3 estados de izquierda a derecha para cada
fonema y para el modelo de silencio (Figura 17). El siguiente paso es el de mejorar el
modelo de silencio sil para hacer el modelo ms robusto al permitir estados individuales
para absorber los ruidos impulsivos en los datos de entrenamiento. Esto se realiz al aadir
transiciones extras de los estados 2 a 4 y 4 a 2 en el modelo de silencio y dejar el estado
central igual.

Luego se cre un modelo de silencio corto sp de un slo estado emisor, para la prevencin
de cualquier pausa entre palabras que sea introducida por el locutor. Este modelo es el
llamado modelo atado, el cual contiene una transicin directa desde la entrada al nodo de
salida. El modelo de sp tiene su estado emisor atado al estado central del modelo de
silencio (sil). La topologa requerida para los dos estados de silencio y lo descrito
anteriormente, es presentada en la Figura 18.

40

Figura 18. Topologa de los Modelos de Silencio Corto Sp.

Los dos modelos de silencio fueron creados en dos pasos:

Usando un editor de texto sobre el archivo que contiene los modelos en el directorio
HMM3, para copiar el estado central del modelo de silencio, luego, crear un nuevo
modelo sp y guardar el archivo MMF resultante en el directorio HMM4.
Ejecutar la herramienta Hhed para aadir las transiciones extras requeridas y poder
as atar el estado emisor del modelo sp al estado central del modelo de silencio
(sil). El resultado es guardado en el directorio HMM5.

Hhed trabaja de manera similar a la herramienta Hled utilizada anteriormente. Esta aplica
un conjunto de comandos (introducidos por el usuario), para modificar el conjunto de
HMMs. Estos comandos aaden transiciones a las matrices de transiciones propuestas y
adems crean un estado atado. Los parmetros del estado atado son guardados en un
archivo con cada uno de los modelos, en general los parmetros del estado original son
reemplazados por el nombre del macro, los macros sern descritos ms adelante. Es
importante recalcar que esta herramienta es el mecanismo que utiliza HTK para compartir
los parmetros.

Finalmente, despus de invocar la herramienta Hhed, se aplicaron otros dos pasos de
reestimacin de los parmetros utilizando Herest con la transcripcin de los fonemas sin
41
olvidar el modelo sp entre palabras, de forma que el resultado final este guardado en el
directorio HMM7.

3.2.7 Re-alineamiento de los Datos de Entrenamiento.

Los modelos de los fonemas creados hasta el momento pueden ser utilizados para el re-
alineamiento de los datos de entrenamiento y la creacin de nuevas transcripciones. Esto
se puede lograr invocando la herramienta Hvite, la cual realiza el alineamiento por Viterbi.
Esta herramienta utiliza los archivos guardados en HMM7 para transformar el nivel de la
transcripcin de la palabra de entrada a un nuevo nivel de transcripciones alineadas
utilizando las pronunciaciones guardadas en el diccionario.

Una vez que el nuevo alineamiento por fonema fue ejecutado, se efectuaron dos
invocaciones de la herramienta Herest para re-estimar los parmetros del conjunto de
HMMs. Al realizar lo dicho anteriormente, el nuevo conjunto de HMMs de los
monofonemas se encuentra guardado dentro del directorio HMM9.

En la Figura 19. se puede observar el proceso realizado al mejorar los modelos de silencio
y realizar el alineamiento de los datos:


Figura 19. Entrenamiento, alineamiento de los datos con el modelo sp y creacin de los trifonemas.

42
3.2.8 Construccin de los Trifone mas desde los Monofone mas.

Para crear los modelos de trifonemas dependientes del contexto se clonaron los
monofonemas y se re-estimaron utilizando las transcripciones de los trifonemas. Esto se
realiz con la herramienta Hled y al mismo tiempo se gener un listado de todos los
trifonemas para los cuales existe al menos un ejemplo en los datos de entrenamiento.

Al utilizar Hled las transcripciones de los monofonemas alineados se convirtieron en un
conjunto equivalente de transcripciones de los trifonemas y bifonemas unidos con los
modelos de silencio sil. Por ejemplo, la siguiente secuencia de fonemas:

Sil u n o sp s e r o sp .

Se convirti en,

Sil sil-u+n u-n+o n-o sp s+e s-e+r e-r+o r-o sp ..

Este estilo de transcripcin de los trifonemas es referido a palabras internas. Cabe notar
que algunos difonemas se generaron debido a que los lmi tes de las palabras algunas veces
incluyen dos fonemas o los difonemas no se pueden atar con los modelos de sp.

La creacin de los modelos de los trifonemas se realiz de forma eficiente al utilizar el
editor de los HMMs, el cual es la herramienta Hhed. En esta fase, cuando se ejecut la
herramienta Hhed, el programa gener warnings debido a que ste, no puede atar las
matrices de transicin de los modelos sp y sil, dado que ninguno de los modelos es
dependiente del contexto y no contienen ninguna matriz que atar.

El atar los modelos significa que uno o ms HMMs comparten el mismo conjunto de
valores ya sea la media, varianza de un estado o la matriz de transicin del modelo. Las
matrices de transicin se atan por medio de un apuntador o macro con un nombre definido
por medio del comando ingresado.
43

Una vez que los modelos dependientes del contexto
11
fueron creados, el nuevo conjunto de
trifonemas se re-estim utilizando la herramienta Herest teniendo cuidado de utilizar las
transcripciones de los trifonemas. Herest cre un archivo de estadsticas de ocupacin de
los estados. En combinacin con las medias y las varianzas, este permiti que se calcular
la verosimilitud para el grupo de estados. Este archivo se utiliz durante el proceso de
agrupamiento de los estados.

La reestimacin se realiz nuevamente dos veces, y el conjunto de los modelos resultantes
fue grabado en el directorio HMM12.

3.2.9 Creacin de los Estados Atados de los Trifonemas.

El resultado de la fase anterior, es un conjunto de HMMs de los trifonemas que comparten
la misma matriz de transicin de los fonemas. El ultimo paso en el proceso de construccin
de los modelos, es el de atar los estados con el conjunto de los trifonemas para compartir
datos y de esa manera poder hacer esti maciones de parmetros robustos.

En la construccin de los trifonemas desde los monofonemas, los comandos fueron
utilizados explcitamente para atar conjuntamente todos los miembros del conjunto de las
matrices de transicin. Sin embargo, la eleccin de cual estado hay que atar requiere ms
cuidado dado que el rendimiento del reconocedor depende crucialmente de que capture de
forma acertada las estadsticas de distribucin de salida de los datos de voz.

Hhed provee dos mecanismos los cuales permiten que los estados sean agrupados y luego
cada grupo sea atado. El primero es dato-conducido
12
y utiliza una medida similar entre
estados. El segundo utiliza rboles de decisin y se basa en hacer interrogantes acerca de
los contextos de izquierda y derecha de cada trifonema.


11
Mirar HTKbook para ms informacin de estos Modelos.
12
Este mecanismo se explica en el HTKBook.
44
Los rboles de decisin de estados atados se ejecutan al invocar la herramienta Hhed. Esta
herramienta debe leer un archivo que debe contener instrucciones que indiquen respecto a
cuales contextos hay que examinar para posibles agrupamientos, este puede ser largo y
complejo. Para un sistema de trifonemas, por medio de los comandos es necesario incluir
preguntas referentes a los dos contextos de izquierda y derecha de un fonema. La pregunta
debe desarrollarse acerca de clasificaciones generales (como consonantes, vocales, nasales,
diptongos, etc.) para especificar las instancias de cada fonema. No existir ningn errror al
crear preguntas innecesarias.

El conjunto de trifonemas usados hasta el momento, solamente incluye a aquellos que
cubren los datos de entrenamiento. Una vez que los estados atados fueron completados y el
nuevo conjunto de modelos fue sintetizado, algunos modelos pueden compartir
exactamente los mismos 3 estados y las matrices de transicin; entonces estos modelos
sern idnticos.

Despus que Hhed ha sido implementado, el efecto de atar los modelos puede ser
estudiado. Como consecuencia de la invocacin de la herramienta se cre un archivo en el
cual se pudo encontrar un resumen de las estadsticas; este archivo entreg el nmero total
de estados fsicos que permanecieron y el nmero de los modelos resultantes luego de
compactarlos.

Finalmente, y por ultima vez, los modelos se re-estimaron dos veces ms utilizando Herest.
Los modelos entrenados fueron guardados en el directorio HMM15 (directorio final).

En la Figura 20. se puede observar el proceso que se llev a cabo para obtener el conjunto
final de modelos entrenados:

45

Figura 20. Diagrama en bloques del Entrenamiento de los Trifonemas.

3.2.10 Reconocimiento de los Datos de Prueba.

Los datos de prueba tienen que ser parametrizados de la misma forma en que se
parametrizaron los datos de entrenamiento con la herramienta Hcopy.

Se utiliz la herramienta Hvite para realizar el reconocimiento de los datos de prueba.
Hvite lee el diccionario que contiene las transcripciones de los monofonemas mientras que
la lista suministrada de los HMMs contiene palabras con trifonemas internos. Esta
herramienta hace las conversiones necesarias cuando carga la red de palabras. Sin
embargo, si la lista de los HMMs contiene monofonemas y fonemas dependientes del
contexto, entonces Hvite entra en confusin. Este fue un problema crtico encontrado en la
aplicacin de dgitos conectados. El programa al ejecutar la herramienta Hvite, encontr un
error denominado error 8231, el cual se gener debido a que no poda encontrar un modelo
en la lista de los modelos propuestos. Este error se arreglo al forzar la expansin de la red
de palabras internas requeridas por medio del archivo de configuracin.

Despus, se cre un archivo MLF, el cual debe contener las transcripciones de los niveles
de palabras de cada archivo de prueba, estas deben escribirse manualmente. Gracias a lo
anterior se pudo ejecutar la herramienta Hresults, la cual determin el rendimiento del
sistema.

46
Los resultados obtenidos se dividieron en las siguientes partes:

Resultados de reconocimiento a nivel de palabras. Debido a que en esta clase de
reconocedores importa ms el resultado de reconocimiento de palabras, que el resultado
de reconocimiento de las oraciones.
Resultado de reconocimiento de oraciones: Se obtendr la tasa de reconocimiento de las
oraciones que componen la gramtica del reconocedor.
Resultados de reconocimiento a nivel de fonemas.
Matrices de confusin de los fonemas y palabras.

3.3 INTERFAZ GRFICA DE HTK

Uno de los objetivos del proyecto fue desarrollar una interfaz amigable del programa HTK.
Esta fase se desarroll en cdigo de Visual Basic, permitiendo la ejecucin de los
comandos utilizados en la construccin de los reconocedores mencionados anteriormente.

En la Figura 21. se puede observar la pantalla de inicio del programa:


Figura 21. Pantalla de Inicio del Programa.


47
El proceso de la implementacin de la interfaz, gua al usuario en los diferentes pasos
necesarios para la construccin de reconocedores de palabras aisladas y palabras
conectadas. En la segunda pantalla se pueden observar los botones para cada aplicacin
propuesta (Habla Conectada y Palabras Aisladas), los cuales se pueden observar en la
Figura 22.


Figura 22. Segunda Pantalla de la Interfaz.

El desarrollo se realiza paso a paso hasta llegar al resultado final de la construccin de los
reconocedores, en donde se obtienen las tasas de reconocimiento del sistema. El uso de
comandos por parte del usuario es mnimo, toda la informacin introducida por l pertenece
a el vocabulario y gramtica del reconocedor. Para una mayor informacin acerca del uso y
funcionamiento de la interfaz remitirse al manual del programa.









48




4. ANLISIS DE RESULTADOS

Los resultados obtenidos se dividieron en tres grupos, los cuales son: presentacin de la
interfaz desarrollada, evaluacin de los sistemas de aplicacin de palabras aisladas y dgitos
conectados y por ultimo la evaluacin de la construccin de los sistemas de reconocimiento
de voz utilizando HTK. En este ltimo se realizar ms nfasis, debido a su importancia en
los objetivos del proyecto.

Con respecto a la evaluacin de los sistemas reconocedores desarrollados, se realizaron
pruebas con seales reales o ambientes ruidosos, para analizar la robustez de los sistemas
frente al ruido. Debido a esto, a las bases de datos de prueba de las dos aplicaciones, se les
sum ruido blanco con diferentes SNRs. Los SNRs sumados fueron 5, 15, 20, 25, 30, 35 y
40 db, utilizando el programa Matlab con la herramienta de adicin de ruido blanco
llamada Awgn. La informacin sobre el rendimiento de los reconocedores y los resultados
obtenidos se pueden observar en el Anexo B de este documento.

En relacin con la interfaz desarrollada, los resultados obtenidos fueron:

La interfaz fue desarrollada bajo un ambiente amigable.
El uso de comandos por parte del usuario es mnimo.
La informacin introducida por parte del usuario es nica y exclusivamente la
correspondiente al vocabulario, insercin de las etiquetas y gramtica del
reconocedor.
Se implement la metodologa utilizada en el proyecto, para la construccin de
sistemas reconocedores utilizando la interfaz desarrollada.
El programa gua al usuario paso por paso en la construccin de los reconocedores.
49
La interfaz no slo entrena los modelos ocultos de Markov, tambin efecta el
reconocimiento de los mismos.

Toda la informacin acerca de la utilizacin del programa se podr encontrar en el manual
del usuario de la interfaz de Reconocimiento de Voz Utilizando HTK.

Finalmente, el proceso de evaluacin de la construccin de los sistemas de reconocimiento
de voz desarrollados utilizando HTK, fueron evaluados teniendo en cuenta los siguientes
tpicos:

Herramienta de Anlisis: En este tpico se estudia la herramienta de anlisis
Hresults, la cual gener las estadsticas de reconocimiento, error, matriz de
confusin y las transcripciones alineadas de las aplicaciones propuestas.
Evaluacin del proceso de entrenamiento de los modelos ocultos de Markov HMM,
con respecto al tiempo utilizado en el desarrollo de sus pasos.
Evaluacin del proceso de reconocimiento: Se evalu el tiempo y recursos
utilizados por el sistema para lograr al resultado final de las dos aplicaciones.
Evaluacin de la complejidad en la ejecucin de las herramientas.

4.1 HERRAMIENTA DE ANLISIS

Al invocar la herramienta Hresults, sta compara las transcripciones de los datos
reconocidos con las transcripciones de los datos de prueba ingresados por el usuario de
forma manual por medio de un editor de texto, realizando el clculo de las tasas de
reconocimiento y de errores cometidos por el reconocedor, utilizando una tcnica basada en
un mtodo de programacin dinmica. Por medio de diferentes configuraciones, Hresults
genera un archivo con distintos tipos de formatos para la informacin de las estadsticas,
entre los formatos se encuentra el bsico de HTK y el formato US NIST, el cual presenta la
misma informacin que el formato HTK pero en porcentajes como se podr observar ms
adelante, adems genera matrices de confusin, las cuales presentan una informacin ms
50
detallada del reconocimiento correcto o incorrecto de cada modelo, y finalmente crea las
transcripciones alineadas en tiempo, en las cuales se podr observar el orden y la forma en
que fueron reconocidos los modelos.

A continuacin en la Figura 23. se presenta el resultado obtenido en la aplicacin de
palabras aisladas cuando se invoc la herrami enta en el formato bsico de HTK


Figura 23. Resultado de la Aplicacin de Palabras Aisladas en Formato HTK.

La primera lnea SENT, presenta el resultado de la tasa de reconocimiento de oraciones,
Correct = 100%. La segunda lnea WORD presenta el resultado de la tasa de
reconocimiento a nivel de palabras, Corr = 100%. En el caso de la aplicacin de palabras
aisladas, las tasas de reconocimiento en las dos lneas son iguales debido a que una oracin
se forma por un silencio de inicio seguido de una palabra y finalmente un silencio final,
entonces no existir ninguna diferencia entre reconocimiento de oraciones y palabras. En la
segunda lnea Acc, representa el porcentaje de exactitud de la tasa de reconocimiento. La
letra H representa el nmero de etiquetas reconocidas de forma correcta, S el nmero de
errores por substitucin, N es el nmero total de etiquetas definidas en los archivos de
transcripcin, D es el nmero de errores por omisin y finalmente I el nmero de errores
por insercin. La definicin de los tipos de errores mencionados anteriormente se puede
observar en el Anexo B de este documento.

Para la aplicacin de dgitos conectados Hresults gener la informacin que se muestra en
la Figura 24.


Figura 24. Resultado de la Aplicacin de Dgitos Conectados en Formato HTK.
51

En la primera lnea se puede observar que el porcentaje de reconocimiento de oraciones fue
de 60.87%, se reconocieron correctamente 14 oraciones, se generaron 9 errores por
sustitucin de un total de 23 oraciones, las cuales forman la base de datos de prueba de esta
aplicacin.

La informacin de la segunda lnea muestra que la tasa de reconocimiento de palabras es de
92.75%, con una exactitud de 92.03%. Se encontraron 9 errores por sustitucin, uno por
insercin y uno por omisin. Se reconocieron correctamente 128 palabras de un total de
138.

En la Figura 25. se puede observar el resultado del reconocimiento de fonemas en la
aplicacin de dgitos conectados:


Figura 25. Resultado a Nivel de Fonemas Aplicacin Dgitos Conectados en Formato HTK.

El formato NIST presentado por HTK, el cual presenta la informacin en porcentajes se
presenta en la siguiente Figura 26.


Figura 26. Resultado de la Aplicacin de Palabras Aisladas en Formato NIST.

Donde Snt es el nmero de oraciones en los archivos de prueba, Corr es la tasa de
reconocimiento, Sub representa la tasa de errores por sustitucin, Del la tasa de errores por
omisin, Ins el porcentaje de errores por insercin, Err la tasa de los errores del
reconocedor y finalmente S. Err representa la tasa de error a nivel de oraciones.

52
A continuacin en la Figura 27 y la Figura 28, se presenta el formato NIST producido por
la herramienta Hresults en la aplicacin de dgitos conectados a nivel de palabras y de
fonemas:


Figura 27. Resultado Aplicacin Dgitos Conectados en Formato NIST.


Figura 28. Resultado a Nivel de Fonemas Aplicacin Dgitos Conectados en Formato NIST.

Los resultados presentados en formato bsico de HTK y el formato NIST se calculan de la
forma en que se presenta en la Tabla 2:

Resultados de Hresults Formula
Tasa de Reconocimiento % 100 % =
N
H
Corr

Tasa de Reconocimiento de Oraciones % 100 % =
N
H
Correct
, N de la primera Fila
Exactitud % 100

=
N
I H
Acc

Tasa de Error por Sustitucin
N
S
Sub =

Tasa de Error por Insercin
N
I
Ins =

Tasa de por Omisin
N
D
Del =

Tasa Total de los Errores
Ins Del Sub Err + + =
Tasa de Error de Oraciones
N
S
Err S = .
, N de la primera Fila
Tabla 2. Calculo de los resultados Obtenidos en Formato Bsico de HTK y NIST.
53

La matriz de confusin es una buena forma de anlisis de los resultados obtenidos, donde se
pueden observar con ms detalle los errores producidos por los sistemas reconocedores. La
matriz de confusin generada por la herramienta Hresults se presenta en las siguientes
figuras:


Figura 29. Matriz de Confusin de la Aplicacin de Palabras Aisladas.


Figura 30. Matriz de Confusin del Resultado de la Aplicacin de Dgitos Conectados.


Figura 31. Matriz de Confusin de Reconocimiento de fonemas de la Aplicacin de Dgitos Conectados.
54

La matriz de confusin brindada por la herramienta Hresults, es una buena forma para
analizar cuales modelos tuvieron errores en su reconocimiento y como se presentaron, ya
sea por sustitucin, insercin y omisin. En las filas se presenta el listado de las palabras o
fonemas del vocabulario del reconocedor. En las columnas, se puede observar las palabras
o fonemas que fueron reconocidos por el sistema. La diagonal de la matriz, presenta el
nmero de palabras que fueron reconocidas correctamente. Cualquier diferencia entre fila
y columna representa un error por sustitucin entre la palabra reconocida (columna) y la
palabra del vocabulario (fila).

Ins representa los errores de insercin de cada columna y Del representa los errores por
omisin de cada fila de la matriz. La tasa %c representa el porcentaje de ocurrencias
correctas en la fila y la tasa %e representa el porcentaje de etiquetas reconocidas de forma
incorrecta en la fila.

Por ejemplo en la matriz de confusin de dgitos conectados, se pueden observar los
siguientes resultados:

Todas las palabras que pertenecan al vocabulario del sistema fueron reconocidas.
La palabra UNO fue reconocida dos veces como la palabra OCHO.
La palabra UNO fue reconocida cinco veces como la palabra NUEVE.
La palabra OCHO fue reconocida dos veces como la palabra DOS.
La palabra UNO genero un error por insercin y un error por omisin.

La tasa de reconocimiento de ocurrencias correctas en la fila se calcula de la siguiente
forma:

fila la en muestras de total Nmero
fila la en n Sustituci por Errores
% = c (4.1)

La tasa de error en la fila, se calcula de la siguiente forma:
55

N muestras de total Nmero
fila la en n Sustituci por Errores
% = e (4.2)

Adems, HTK ofrece un resultado de las transcripciones alineadas, esta es otra forma de
analizar los errores producidos por el reconocedor. A continuacin se presentaran ejemplos
de este tipo de transcripciones alineadas los cuales son:

LAB: no LAB: prender
REC: REC: apagar

Donde LAB contiene la correcta etiqueta de la seal de entrada y REC es la salida del
reconocedor. En estos ejemplos se puede observar un error producido por omisin, debido
a que el reconocedor no presenta salida reconocida a la palabra no. Adems se presenta un
error producido por sustitucin, dado que la palabra prender fue recocida como la palabra
apagar.

En el caso de dgitos conectados se obtuvo la trascripcin que se muestra en la Figura 32.


Figura 32. Representacin de las Transcripciones Alineadas de la aplicacin de Dgitos Conectados.

En el archivo 136 de la base de datos de prueba, se presentaron la mayor cantidad de
errores, entre estos se puede observar el error de sustitucin cuando se reconoci la palabra
UNO como la palabra OCHO. Adems se present un error por omisin, cuando la
palabra UNO no fue reconocida y el reconocedor no present salida alguna. Tambin se
present un error por insercin cuando reconoci la palabra UNO, sin haberse presentado
una palabra en la entrada.

56
El anlisis de esta clase de resultado puede no ser completamente correcto en este tipo de
reconocedores. Debido a la gramtica del reconocedor de dgitos conectados, ante una
secuencia de 6 nmeros en la entrada del reconocedor, se obtiene una secuencia de 6
nmeros reconocidos por el sistema. Debido a esto no es muy fcil observar el error
producido por la herramienta en este ejemplo.

Considrese el siguiente ejemplo
13
de un reconocedor de dgitos conectados con un
vocabulario ms extenso, donde a una entrada de 5 palabras reconoce 7 palabras: el locutor
pronuncia setecientos cuatro dos doce quinientos, y el reconocedor proporciona a su
salida siete cien dos cuatro dos seis quince dos. La transcripcin alineada en tiempo de la
herramienta Hresults proporciona lo siguiente:

LAB: sete cientos cuatro dos doce quinientos
REC: siete cien dos cuatro dos seis quince dos

Con los datos anteriores parece que lo que ha ocurrido es:

Se ha insertado un siete al principio.
Se ha sustituido un sete con un cien.
Se ha sustituido un cientos con un dos.
Se ha insertado un seis.
Se ha sustituido un doce con un quince.
Se ha sustituido un quinientos con un dos.

Con un anlisis ms detallado en el que se consideren las fronteras temporales de las
palabras proporcionadas por el reconocedor y las fronteras de las palabras presentadas a su
entrada se puede observar lo siguiente:

Se reconoce siete en lugar de sete.
Se reconoce cien dos en lugar de ciento.

13
Ejemplo tomado textualmente de la referencia [Fernandez01]
57
Se reconoce dos seis en lugar de doce.
Se reconoce quince dos en lugar de quinientos.
El dos ha sido absorbido por los modelos del cuatro y del dos.

Por lo tanto se puede concluir que el nmero y la tasa de los errores por sustitucin,
insercin y omisin presentada por la herramienta Hresults, no son del todo correctos, pero
son una buena aproximacin al resultado real. Se necesitara una herramienta que no slo
tenga en cuenta las transcripciones de referencia sino tambin los instantes de tiempo de las
fronteras de las palabras para obtener un resultado ms preciso que el proporcionado por
Hresults, pero HTK no cuenta con esta herramienta.

4.2 EVALUACIN DEL PROCESO DE ENTRENAMIENTO DE LOS HMMS.

El proceso utilizado se midi con respecto a varios factores que influyeron en el proceso de
entrenamiento de los modelos ocultos de Markov, los cuales sern nombrados a
continuacin:

Tiempo empleado en la insercin de las etiquetas de las palabras.
Herramienta utilizada.
Recursos en tiempo y memoria de la ejecucin de la herramienta utilizada.

4.2.1 Tiempo Empleado en la Insercin de las Etiquetas de las Palabras

Este proceso no present ningn inconveniente durante el desarrollo de la aplicacin de
palabras aisladas. La forma para etiquetar los archivos de voz de las palabras es muy
sencilla, gracias a que en la grfica de la voz que genera la herramienta Hslab, se puede
observar el inicio y el final de cada palabra, por lo tanto, no es necesario escuchar la seal
para poder etiquetarla, aunque Hslab permite la opcin de escuchar las etiquetas. El nico
inconveniente es la gran cantidad de archivos para su correspondiente insercin de las
etiquetas. En este proyecto se utilizaron 299 archivos y en cada uno se etiquetaron tres
58
regiones, lo cual demand tiempo y paciencia. El promedio de tiempo que demand esta
fase fue de 3 das trabajando 6 horas diarias.

En la aplicacin de dgitos conectados, este fue el proceso que ms demand tiempo y
paciencia. El proceso de insercin de las etiquetas fue a nivel de fonemas, lo cual fue
realizado manualmente con la herramienta Hslab. Las etiquetas se colocaron al escuchar
segmentos de cada palabra, e identificar los fonemas por medio del odo. Debido a la gran
cantidad de palabras (138) y que cada una tiene como mnimo tres fonemas, este proceso se
torn muy largo, lo cual tuvo como consecuencia gran cantidad de tiempo empleado en esta
fase. El promedio de tiempo empleado para etiquetar la totalidad de los datos de
entrenamiento fue de 8 das trabajando 6 horas diarias. Durante el proceso de
entrenamiento es necesario insertar las etiquetas correspondientes al modelo sp, este
proceso tom 3 horas. Luego, para entrenar los modelos de los trifonemas se tienen que
convertir las etiquetas creadas a etiquetas de trifonemas. Este proceso fue largo, dado que
para crear un modelo de trifonema de la forma a-b+c, se hace necesario tomar el tiempo de
inicio del fonema a y el tiempo final del fonema b para crear la nueva etiqueta a-b+c, este
proceso se realiz al manipular por medio de un editor de texto todos los archivos de las
transcripciones. El promedio aproximado de tiempo utilizado en esta etapa fue de 6 das
trabajando 6 horas diarias.

4.2.2 Herramienta Utilizada

En la aplicacin de palabras aisladas, se utiliz la herramienta Hinit y Hcompv para
inicializar los modelos con los datos de entrenamiento para permitir una convergencia
rpida y precisa de los algoritmos de entrenamiento, este proceso demor aproximadamente
de 2 a 3 segundos. La inicializacin se realiz individualmente para cada modelo por
medio de un comando de lnea. Adems para el entrenamiento de los modelos, se utiliz la
herramienta Hrest, la cual ejecuta la re-estimacin por Baum Welch de un slo modelo,
debido a esto se entren cada modelo por aparte, por medio de un comando de lnea para
cada uno. Este proceso se realiz cuatro veces para los seis modelos, lo cual fue suficiente
para obtener su convergencia. Con respecto al tiempo, el proceso fue rpido y se limit al
59
tiempo requerido para escribir los comandos de lnea, aproximadamente el proceso tom 20
minutos.
En la aplicacin de dgitos conectados, se utiliz la herramienta Hcompv para inicializar
todo el conjunto de modelos en un slo comando de lnea a diferencia de la aplicacin
anterior. Para el entrenamiento de los modelos se utiliz Herest, la cual ejecuta una sola re-
estimacin de los parmetros utilizando la versin de entrenamiento embebido del
algoritmo Baum Welch. El entrenamiento de los modelos en esta aplicacin tom ms
tiempo que en el entrenamiento de palabras aisladas, dado que primero se entrenaron los
modelos de fonemas, luego fueron entrenados los fonemas junto con el modelo de sp y
despus se entrenaron los modelos de trifonemas. El tiempo empleado en esta fase sin
incluir el tiempo requerido de las nuevas inserciones de las etiquetas de los modelos sp y
trifonemas, fue aproximadamente de 2 das trabajando 6 horas diarias, debido a la
manipulacin requerida en los archivos empleados.

4.2.3 Recursos en Tiempo y Memoria de la Ejecucin de las Herramientas Utilizadas

En la aplicacin de palabras aisladas, el proceso de la inicializacin y la re-estimacin de
los modelos son casi inmediatos. El tiempo varia en relacin de la cantidad de datos y
etiquetas existentes entre los datos, porque a mayor nmero de datos o etiquetas repetidas,
el proceso se torna ms lento. En el proyecto se manejaron 299 archivos y la herramienta
tuvo un buen comportamiento con respecto al tiempo gastado en el cmputo de la re-
estimacin con esta cantidad de datos. Como se explic anteriormente, el tiempo de
clculo variaba de modelo a modelo y en general el promedio fue de 3 a 4 segundos. Los
modelos de las palabras no requirieron gran cantidad de tiempo para su convergencia pero
el modelo de silencio demand ms tiempo que los otros modelos, debido a la mayor
ocurrencia entre los datos.

En la aplicacin de dgitos conectados, las herramienta Hcompv slo toma unos segundos
en inicializar los parmetros, aproximadamente 2 segundos. Con la herramienta Herest, el
60
tiempo puede ser ms rpido o ms lento de acuerdo a un umbral
14
puesto por el
desarrollador, el cual indica como tienen que ser estimados los parmetros. Con un mayor
umbral se obtendr un mayor tiempo empleado en el clculo de las re-estimaciones y estas
sern ms precisas. El umbral utilizado gener un promedio de tiempo de espera de 10 a12
segundos con esta herramienta. Tambin influy la cantidad y longitud de los archivos de
voz que fueron manipulados los cuales para esta aplicacin duraban un promedio de 8
segundos en su reproduccin.

Con respecto a la memoria utilizada por parte de la CPU en el proceso de la ejecucin de
las herramientas, la informacin se puede observar en la Tabla 3:

Herramienta Uso Mximo de Memoria
Hinit 1356 KB aprox.
Hcompv 1308 KB aprox.
Hrest 1586 KB aprox.
Herest 4364 KB aprox.
Tabla 3. Recursos de Memoria de las Herramientas de Entrenamiento.

Los resultados obtenidos se extrajeron del administrador de tareas de Windows. El proceso
de la ejecucin de la herramienta Herest requiere ms memoria debido a la mayor duracin
de grabacin de los archivos de voz y la mayor cantidad de modelos a entrenar. En general
las herramientas no requieren mayor cantidad de recursos de memoria.

4.3 EVALUACIN DEL PROCESO DE RECONOCIMIENTO.

El proceso de reconocimiento demand casi el mismo tiempo en las dos aplicaciones. Para
realizar el proceso, se ejecut la herramienta Hvite, la cual es un reconocedor de palabras
de propsito general del algoritmo de Viterbi. La tarea de HVite consiste principalmente

14
Este umbral, se coloca para facilidad en el computo del algoritmo utilizado.
61
en encontrar el camino que tenga la mayor probabilidad. Cuanto mayor sea la red, ms
computacin requerir el algoritmo y por lo tanto, ms lento ser el reconocimiento. Esta
herramienta tom varios segundos para efectuar la tarea de reconocimiento,
aproximadamente unos 10 segundos. Pero el proceso de reconocimiento no se limita slo a
la ejecucin de esta herramienta, tambin es necesario realizar el anlisis acstico de las
seales de prueba, luego se necesita crear un archivo con un listado de las etiquetas reales
de los datos de prueba. Este archivo se crea manualmente y puede ser largo dependiendo
del nmero de palabras que se vayan a reconocer. Adems para llegar a los resultados de la
tasa de reconocimiento, se ejecut la herramienta Hresults, la cual de forma inmediata
presenta el archivo de los resultados finales. En general la fase de reconocimiento con
respecto a la fase de entrenamiento, demand menos tiempo requerido para su
cumplimiento. Aproximadamente 2 das trabajando 6 horas diarias.

Con respecto a los recursos utilizados por el sistema en la ejecucin de esta fase, se
encontr que la mxima memoria requerida por la herramienta es de 1528 KB, adems se
observ la gestin de la memoria que utiliza y ejecuta el programa. La administracin de la
memoria es una funcin de muy bajo nivel y la mayora de las veces es invisible para los
usuarios de HTK. Sin embargo, herramientas como Hvite requieren gran cantidad de
memoria en su ejecucin. Debido a lo anterior, HTK ejecuta su propia administracin de la
memoria. En el Anexo D se puede observar la organizacin de la memoria que utiliza el
programa HTK.

4.4 EVALUACIN DE LA COMPLEJIDAD EN LA EJECUCIN DE LAS
HERRAMIENTAS

Como se ha explicado, cada herramienta se ejecuta mediante un comando de lnea en DOS.
Los comandos en HTK siguen un formato bsico, el cual es:

Hherramienta [opciones] archivos.

62
Opciones: Son las opciones que son indicadas por una lnea o raya seguidas por una
letra para la opcin requerida. Las opciones universales tienen letras maysculas.
Algunas opciones estndar son comunes para todas las herramientas de HTK. A
continuacin se nombran algunas de ellas:
o -A: Muestra los argumentos del comando de lnea.
o -D: Muestra la configuracin de la herramienta.
o -T 1: Muestra la informacin acerca de las acciones de los algoritmos.
En HTK, es necesario el uso de las extensiones de los archivos (si las tienen).

Debido a la gran cantidad de opciones que ofrece HTK en sus herramientas, estas se pueden
tornar confusas en su utilizacin, como es el caso del manejo de los archivos por medio de
estas opciones, dado que cada tipo de archivo utiliza una opcin diferente.

El comando de lnea en algunas herramientas es muy sencillo y consta de un archivo de
entrada y otro de salida, como es el caso de Hparse. Algunas herramientas necesitan de un
archivo de configuracin para su correcta ejecucin, como es el caso de Hcopy. Otras
herramientas necesitan de un umbral colocado por el desarrollador para obtener una buena
estimacin de los parmetros, como es el caso de Herest. Existen herramientas que
necesitan leer comandos adicionales por medio de un archivo de texto (estos pueden ser
extensos y complejos), como es el caso de las herramientas Hhed y Hled. Slo una
herramienta posee una interfaz grfica como es el caso de Hslab. En general, la
complejidad y la extensin del comando de lnea varan de una herramienta a otra de
acuerdo a su funcin.

Debido a la gran cantidad de errores que pueden ocurrir en la invocacin de una
herramienta, HTK presenta el siguiente formato cuando sucede un error:

ERROR [+xxxx] Funcin A: 'Breve explicacin'
ERROR [+xxxx] Funcin B: 'Breve explicacin'
ERROR [+xxxx] Funcin C: 'Breve explicacin'
FATAL ERROR - Terminating program Hherramienta
63

Donde xxxx, representa el numero del error. Los nmeros de los errores en HTK, son
asignados modulo por modulo y herramienta por herramienta en bloques de 100. En cada
bloque de 100 nmeros, los nmeros del 0-19 y 90-99, son reservados para los errores de
tipo estndar, los cuales son comunes para todas las herramientas y mdulos de libreras.
En el manual de HTK se encuentra documentado todos los tipos de errores y sus posibles
soluciones. Esta es una gran ayuda para el usuario de HTK, pero algunas veces las
soluciones no son claras aunque el error sea muy sencillo. En general, slo la experiencia
de utilizar el programa una y otra vez, permite al desarrollador encontrar las soluciones
rpidamente.
























64




5. CONCLUSIONES

Llegado a este nivel de desarrollo e investigacin se puede considerar que los objetivos
planteados de este trabajo de grado han sido alcanzados satisfactoriamente. A continuacin
se exponen de forma resumida las conclusiones ms importantes que se pueden extraer de
este proyecto:

El desarrollo de aplicaciones de reconocimiento de voz como palabras aisladas y dgitos
conectados, no es una tarea sencilla, sobre todo cuando la mayora de trabajos y
herramientas no estn hechos para el espaol y mucho menos para el espaol colombiano.
Un proceso complejo es el de la insercin de las etiquetas de las palabras a nivel de
fonemas, porque no existe una herramienta que realice el proceso de rotularlas de forma
automtica en la fase de entrenamiento, gracias a que este proceso necesita de una base de
datos rotulada para el espaol colombiano, la cual no est disponible. Debido a esto, las
aplicaciones necesitan un arduo trabajo en la fase de entrenamiento, antes de alcanzar los
objetivos propuestos.

Se logr ejecutar correctamente el conjunto de herramientas de preparacin de los datos,
entrenamiento, reconocimiento y anlisis de HTK, logrando construir dos sistemas
reconocedores, uno de palabras aisladas y uno de dgitos conectados. Esto se llev a cabo
con el esquema de pruebas y errores. Slo la experiencia y la paciencia de haber utilizado
el programa una y otra vez influy en la terminacin del proyecto.

Se comprob que HTK es una poderosa herramienta en los procesos de reconocimi ento
automtico de voz y de creacin, manipulacin y entrenamiento de modelos ocultos de
Markov. El programa permite utilizar diferentes metodologas de entrenamiento de los
HMMs.
65

El diseo y las caractersticas de los sistemas de reconocimiento automtico de voz
dependen fuertemente de la aplicacin a la que van a ser destinados y a las condiciones de
funcionamiento. Los procesos de entrenamiento y reconocimiento que fueron ejecutados
en este proyecto utilizando el programa HTK siguiendo siempre las especificaciones
propuestas, presentaron excelentes resultados para las dos formas de reconocimiento
indicadas como palabras aisladas y dgitos conectados.

Se encontr que los resultados que presenta la herramienta Hresults en aplicaciones como
la de dgitos conectados, no son del todo correctos, debido a que slo tiene en cuenta las
transcripciones de referencia pero no los instantes de tiempo de las fronteras de las
palabras, por lo tanto al hacer la comparacin entre la salida reconocida y la oracin a
reconocer, se presentan diferencias entre el nmero real de errores y el nmero de errores
que presenta la herramienta por sustitucin, insercin y omisin.

Se construy de un reconocedor de palabras aisladas utilizando el programa HTK. La
aplicacin de palabras aisladas presenta grandes ventajas en vocabularios finitos, debido a
que los reconocedores automticos de voz en esta aplicacin obtienen tasas elevadas.
Adems esta clase de sistemas resultan convenientes para ciertas aplicaciones,
particularmente aquellas en las que se envan rdenes a una mquina a travs de comandos
que consisten en una sola palabra. Sin embargo, la extensin de la tarea de reconocimiento
de voz a problemas ms complejos, tales como grandes vocabularios, hace que el sistema
sea ms complicado debido al gran nmero de modelos requeridos (proporcional al tamao
del vocabulario). Por lo tanto, se necesita una unidad de reconocimiento ms apropiada
como fonemas o difonemas.

El reconocedor de dgitos conectados construido con la herramienta HTK present una
buena tasa de reconocimiento. La aplicacin de dgitos conectados presenta grandes
ventajas en vocabularios extensos, debido a que la unidad de entrenamiento se modela a
nivel de fonemas los cuales se pueden convertir luego a difonemas y trifonemas. Se
modela a este nivel debido a que el nmero de fonemas bsicos en una lengua es bastante
66
pequeo y se pueden utilizar para construir cualquier palabra aunque no este dentro del
vocabulario del reconocedor. Su gran desventaja es la complejidad y tiempo utilizado en el
proceso de insercin de las etiquetas y la fase de entrenamiento.

Los sistemas de reconocimiento de voz tienen diversas limitaciones en su construccin y
son muy sensibles a las diferencias entre las condiciones de diseo y de operacin. Cuando
los reconocedores de voz se utilizan en situaciones reales sus rendimientos se ven
enormemente degradados. Los sistemas generan errores por omisin cuando la seal de
ruido es alta y no pueden reconocer las caractersticas de la voz del locutor. Tambin
generan errores por sustitucin, cuando los sistemas comienzan a reconocer los parmetros
de la seal de voz, pero el ruido interfiere en el reconocimiento llegando a un resultado
errneo. Finalmente el reconocedor presenta errores por insercin cuando reconoce una
palabra cuando no se ha introducido palabra alguna o en un silencio. Este error no se
present con frecuencia en los sistemas desarrollados.

Dentro de las desventajas del programa HTK, se debe mencionar la poca amabilidad del
sistema en el llamado y manipulacin de los archivos. Debido a esto se construy una
interfaz grfica que permitiera al usuario manejar el programa de una forma ms amigable.
Fue desarrollada siguiendo los procesos realizados en el proyecto. La interfaz gua al
usuario paso por paso, para desarrollar un reconocedor de palabras aisladas y un
reconocedor de dgitos conectados. Se pueden entrenar diferentes bases de datos para
cualquier aplicacin. La interaccin del usuario respecto a comandos de lnea es mnima,
se consigui que la informacin introducida por el usuario fuera nica y exclusivamente la
correspondiente al vocabulario, insercin de las etiquetas y gramtica.

5.1 POSIBLES MEJORAS

Optimizar el diseo de los sistemas reconocedores propuestos para obtener mejores
resultados frente a variaciones de la voz de un mismo locutor y frente al ruido. Como se
pudo observar los reconocedores presentaron bajas tasas de reconocimiento ante bases de
datos de prueba ruidosas. En general se desea que los sistemas de reconocimiento
67
mantengan su rendimiento ptimo cuando las condiciones en las que van a operar difieren
de las del diseo. Para hacer un sistema reconocedor ms robusto al ruido utilizando HTK
se puede realizar:

Las denominadas tcnicas de realce de seal, basadas en una estimacin de la voz
limpia a partir de la voz ruidosa. Entre estas se puede utilizar la sustraccin
espectral, donde se asume que voz y ruido son aditivos en el dominio del tiempo.
Tcnicas basadas en la compensacin o adaptacin de los modelos de voz. Se
puede utilizar la estrategia de aadir ruido a los datos de entrenamiento. El uso de
datos de entrenamiento contaminados con ruido puede mejorar de forma
considerable la precisin del reconocimiento bajo esa condicin especfica de
entrenamiento.

Con respecto a la interfaz realizada en el proyecto, se puede mejorar el proceso de
ordenamiento de los archivos, debido a que en el cdigo no se utilizaron directorios para
organizar las diferentes clases de archivos creados y necesitados por la herramienta. Dado
que el programa fue diseado para llevar un proceso organizado de los pasos necesarios
para la construccin de los reconocedores, presenta una falencia cuando el proceso es
abandonado, por lo tanto es necesario comenzar de nuevo todo el proceso. Debido a esto el
sistema se podra mejorar preguntando al usuario en que paso del proceso quiere comenzar.
Con una mayor utilizacin del programa se encontrarn posibles mejoras del rendimiento
de la interfaz.

5.2 TRABAJOS FUTUROS

Realizar reconocedores de palabras aisladas y habla conectada, con vocabularios extensos
que superen las 700 palabras para cada aplicacin propuesta. Para esto es necesario crear
bases de entrenamiento correctamente rotuladas para el espaol colombiano. Estas bases
de datos pueden llegar a ser muy grandes, por lo tanto demandaran bastante trabajo en su
grabacin y rotulacin.
68

Estudiar el uso de la herramienta Hadapt de HTK, en la adaptacin de los sistemas
desarrollados para convertirlos en sistemas reconocedores independientes del locutor. Lo
que necesita una gran base de datos con muestras de distintos locutores.

Estudiar el uso de redes gramaticales complejas en sistemas reconocedores de habla
continua construidos en HTK.




























69




6. BIBLIOGRAFA


6.1 REFERENCIAS DE INTERNET

[1] http://htk.eng.cam.ac.uk.
[2] http://www.research.att.com/sw/tools/fsm/
[3] http://svr-www.eng.cam.ac.uk/~prc14/toolkit.html
[4] http://fife.speech.cs.cmu.edu/sphinx/
[5] http://cslu.cse.ogi.edu/toolkit/

6.2 REFERENCIAS BIBLIOGRFICAS

[Baum66] BAUM L. E. and PETRIE T., Statistical inference for probabilistic
functions of finite state Markov chains, Ann Math, vol. 37, pg, 1554-1563, 1966.

[Carrillo] CARRILLO AGUILAR Roberto Diseo y Manipulacion de Modelos
Ocultos de Markov, Utilizando Herramientas HTK: Una Tutora., Universidad de La
Frontera. Depto. Ing. Elctrica.

[Carrillo03] CARRILLO RANGEL Rafael Eduardo, CHINCHILLA GUARN Berta
Liliana, LARA GMEZ Claudia Patricia, Herramienta para la construccin de procesos
ocultos de Markov Bogota 2003, Trabajo de Grado (Ing. Electrnico), Pontificia
Universidad Javeriana. Facultad de Ingeniera. Carrera de Ingeniera Electrnica

70
[Deller93] DELLER John R., PROAKIS Jr. John G., HANSEN John H. L.. Discrete-
Time Processing of Speech Signals, Macmillan Publishing Company. 1993.

[Fernandez01] FERNNDEZ Laura Doco, Aportaciones a la Mejora de los Sistemas de
Reconocimiento, TESIS DOCTORAL Universidade de Vigo. 2001

[Frans04] FRANS Adriaans, HEUKELOM Markus, KOOLEN Marijn, LENTZ Tom,
ROOIJ Ork de, VREESWIJK Daan, Building an HMM Speech Recogniser for Dutch
2004, Speech Technology Project 2004.

[Forney73] FORNEY G.D., The Viterbi algorithm, Proc. IEEE, vol. 61, pp.268-278,
Mar. 1973.

[Morales04] MORALES MOMBIEL Nicols. Word-isolated Long-vocabulary Speaker-
independent Automatic Speech Recognition Systems. HCTLAB. EPS-Universidad
Autnoma de Madrid Junio 2004.

[Oba03] OBA Toshifumi, ATWELL Eric, Using the HTK speech recogniser to
analyse prosody in a corpus of German spoken learners English, University of Leeds,
School of Computing, 2003

[Rabiner86] RABINER Lawrence R. y JUANG B. H., An introduction to Hidden
Markov Models, IEEE ASSP Magazine, Vol 3, No 1, pg 4-16, 1986.

[Rabiner89] RABINER Lawrence R., A tutorial on Hidden Markov Models and
Selected applications in Speech Recognition, Proceedings of IEEE, Vol 77, No. 2,
February 1989.

[Toselli04] TOSELLI Alejandro Hctor Reconocimiento de Texto Manuscrito
Continuo Valencia, 2004, Universidad Politcnica de Valencia para optar al grado de
Doctor en Informtica.

71
[Young02] S. YOUNG, J. ODELL, D. OLLASON, V. VALTCHEV Y P.
WOODLAND, D. POVEY, G. MOORE, D. KERSHAW, T. HAIN, G. EVERMANN.
The HTK Book: Hidden Markov Models Toolkit V3.2.1. Cambridge Research
Laboratory Ltd (2002).






71




ANEXO A. DESARROLLO DE LAS APLICACIONES

A continuacin se presenta los conjuntos de cdigos de lnea utilizado en el proyecto para
la construccin de los reconocedores de palabras aisladas y dgitos conectados.

A.1. DESARROLLO DE LA APLICACIN DE PALABRAS AISLADAS EN HTK.

A.1.1. Creacin de un Cuerpo de Entrenamiento.

Para invocar la herramienta Hslab correctamente se debe escribir el siguiente cdigo fuente:

Hslab C configuracin1.txt nombre.wav

Donde C es la opcin para que lea el archivo configuracin1.txt, el cual es un simple
archivo de texto, que contiene la configuracin para que pueda leer archivos .wav.
El contenido del archivo de configuracin se puede observar en la Figura 33.


Figura 33. Contenido del Archivo de Configuracin.
72

Nombre.wav es el archivo de voz que se va a etiquetar. .

Despus de escribir las etiquetas en las formas de onda de voz, se debe grabar y
automticamente HTK crea un archivo .lab.

A.1.2. Anlisis Acstico

Para invocar correctamente el uso de esta herramienta se debe escribir el siguiente cdigo
fuente:

Hcopy C configuracin1.txt S listamfcc.txt

Configuracin.txt es el archivo de texto anteriormente utilizado cuando invocamos a hslab,
con toda la informacin sobre la extraccin de los coeficientes MFCC, etc.
El archivo listamfcc.txt contiene el nombre de la seal de voz (archivo origen), y al frente
contiene el nombre el archivo destino con extensin .mfcc.
En la Figura 34. se puede observar el contenido del archivo lista.mfcc:

Figura 34. Contenido del Archivo listamfcc.txt.

Se debe tener en cuenta una consideracin al crear esta clase de archivos, donde se debe
dejar un lnea en blanco al finalizar el texto, porque si no se pone, HTK generar un error.

73
A.1.3. Definicin de los HMMs.

Se debe crear un archivo para cada uno de los modelos, el cual debe contener la definicin
(prototipo) de los HMMs,
A continuacin en la Figura 35. se presenta un ejemplo de su contenido:


Figura 35. Ejemplo de un Archivo de descripcin de HMM.

Cada prototipo tiene que ser generado para cada evento a modelar. En el caso de este
proyecto, se escribi un prototipo para cada uno de los 6 HMMs que se llamaron si, no,
prender, apagar, cancelar y sil.

A.1.4, Entrenamiento de los HMMs.

A continuacin se presentan los pasos que conforman esta fase:
74

A.1.4.1. Inicializacin

Se utiliz la herramienta Hinit para realizar el proceso de inicializacion de los parmetros
de los modelos propuestos.

HInit -A -D T 1 -S lista_entrenamiento.txt -M modelos/hmm0 H
modelos/proto/Archivo_hmm -l etiqueta -L dir_etiqueta nombre_hmm

Nombre_de_hmm: Es el nombre del HMM a inicializar (si, no, prender, apagar, cancelar o
sil).
Archivo_hmm: Es un archivo de descripcin del modelo que contiene el prototipo del
HMM llamado nombre_de_hmm. Ejemplo Hmm_sil, . Donde sil es el nombre del
modelo.
Lista_entrenamiento.txt: Presenta un listado completo de los archivos .mfcc los cuales
forman el cuerpo del entrenamiento. Son todos los archivos con extensin .mfcc.
Modelos/hmm0: Es el directorio y archivo de salida. De la herramienta ms no del sistema.
Etiqueta: Es el nombre de la etiqueta introducida en el modelo que se va a entrenar.
Dir_etiqueta: Es la direccin de donde se encuentran las etiquetas. En el proyecto es lab/.

En este proyecto tambin se utiliz la herramienta Hcompv y el comando de lnea de
inicializacin es el siguiente:

Hcompv A D T 1 S lista_entrenamiento.txt M modelos/hmm0flat H
modelos/proto/Archivo_hmm f 0.01 nombre_de_hmm

Nombre_de_hmm, Archivo_hmm, Lista_entrenamiento.txt, son los mismos archivos
utilizados en la herramienta Hinit.
Modelos/hmm0flat: Es el directorio y archivo de salida. De la herramienta ms no del
sistema.
75
Al utilizar esta herramienta tambin se genera un archivo llamado vFloors el cual se
utilizar ms adelante. A este archivo es necesario adjuntarle una informacin adicional, la
cual es la informacin de la cabecera, que se adjunta al principio del archivo. La cabecera
es:

~o <MFCC_0_D_A> <VecSize> 39

A.1.4.2. Entrenamiento.

El siguiente comando de lnea ejecuta la herramienta Hrest:

Hrest A D T 1 S lista_entrenamiento.txt M modelos/hmmi H vfloors
H modelos/hmmi-1/archivo_hmm l etiqueta L direc_etiqueta
nombre_de_hmm

Nombre_de_hmm: Es el nombre de los HMM a entrenar (sil, no si, prender, apagar y
cancelar) igual que en el caso anterior.
Archivo_hmm: Es el archivo de descripcin del HMM a entrenar. Esta guardado en un
directorio cuyo ndice indica la ultima iteracin (por ejemplo modelos/hmmi -1/).
Vfloors: Es el archivo que contiene la varianza global del vector obtenido anteriormente
invocando hcompv.
Lista_entrenamiento.txt: Presenta un listado completo de los archivos .mfcc, los cuales
conforman el cuerpo del entrenamiento. En estos archivos .mfcc se encuentra toda la
informacin obtenida por los coeficientes MFCC.
Direc_etiqueta: Es el directorio en donde se encuentran los archivos de etiqueta (archivos
.lab) los cuales conforman el cuerpo del entrenamiento. Los archivos .lab son los que
contienen las etiquetas de las grabaciones de voz. Estas estn guardadas en el directorio
lab/.
Etiqueta: Indica la etiqueta que se va a utilizar durante el entrenamiento de los modelos. (si,
no, sil, apagar, prender y cancelar o la palabra a utilizar.)

76
A.1.5. Diccionario y Gramtica.

Se deben crear los archivos diccionario.txt y gramatica.txt los cuales contienen el
diccionario y la gramtica del reconocedor respectivamente. Los dos archivos son creados
en un editor de texto. A continuacin se podr observar como ejemplo, la gramtica para
un reconocedor de palabras aisladas como el utilizado en este trabajo de grado con las
palabras (si, no, prender, apagar, encender y cancelar):

$PALABRA = si | no | prender | apagar | cancelar;
( { SIL_INICIAL } [ $PALABRA ] { SIL_FINAL } )

La variable PALABRA puede ser reemplazada por si, no, prender, apagar y
cancelar.
Las llaves {} alrededor de SIL_INICIAL y SIL_FINAL, denotan cero o mas
repeticiones (un segmento de silencio largo, o ningn silencio antes o despus de la
palabra que luego es permitida).
Los parntesis angulares [] alrededor de $PALABRA denotan cero o una ocurrencia
(si no hay ninguna palabra pronunciada, es posible que reconozca solamente
silencio), tambin denotan tems opcionales.
Las barras verticales | denotan alternativas.

A continuacin en la Figura 36. se presenta el contenido del archivo diccionario:


Figura 36. Contenido del Diccionario Utilizado en la Aplicacin de Palabras Aisladas.
77

Con el siguiente comando de lnea se obtiene la red de la gramtica de reconocimiento:

Hparse A D T 1 gramatica.txt red.slf

Aqu se obtiene un archivo .slf (Standard lattice format), el cual contiene la red de la tarea.
Este archivo se utilizara ms adelante.

A.1.6. Reconocimiento.

El correcto modo de llamar a uso la herramienta hvite se podr observar en el siguiente
comando de lnea:

Hvite A D T 1 S lista_prueba.txt H hmmsdef.mmf i rec.mlf w
red.slf diccionario.txt lista_hmm.txt

Entrada.mfcc es el dato de entrada a reconocer. Se debe realizar una nueva
parametrizacin de los datos de prueba
Lista_hmm.txt: es el listado de los nombres de los modelos que se utilizaron en el proceso
(si, no, prender, apagar, cancelar y sil). No hay que olvidar dejar un espacio en blanco al
final del archivo.
Diccionario.txt es el diccionario del reconocedor.
Red.slf es el archivo que contiene la red.
Rec.mlf es el archivo de reconocimiento de salida. La salida del reconocedor se guarda
automticamente en un archivo .mlf llamado master label file o archivo de etiqueta
maestro, el cual contendr las transcripciones de la entrada.
Hmmsdef.mmf: contiene la definicin de los HMMs. Este archivo se obtiene simplemente
al copiar cada definicin de los HMMs despus de la otra dentro de un slo archivo, sin
repetir la informacin de la cabecera. En la Figura 37. se puede observar el contenido de
este archivo y su arquitectura:

78

Figura 37. Contenido del archivo Hmmdefs.mmf.

A.1.7. Tasa de Error

Las tasas de reconocimiento se obtuvieron con la herramienta de anlisis Hresults de HTK.
Hresults se ejecuta de la siguiente forma:

Hresults A D T 1 e ??? sil I ref.mlf lista_etiquetas.txt rec.mlf >
resultado.txt

Resultado.txt contiene las estadsticas de salida.
Rec.mlf contiene las transcripciones de los datos de prueba, como salida del reconocedor.
Lista_etiquetas.txt: es el listado de las etiquetas existentes en los archivos de transcripcin
(si, no, prender, apagar, cancelar y sil).
Ref.mlf contiene las transcripciones de referencia de los datos de prueba (escritos
manualmente).
79

El archivo ref.mlf sigue la siguiente estructura que se muestra en la Figura 38.


Figura 38. Ejemplo de un Archivo de Etiqueta Maestro.

-e ??? sil: es la opcin que indica que las etiquetas de sil sern ignoradas cuando se
computan las estadsticas, debido a que solamente se tendrn en cuenta las tasas de
reconocimiento de las palabras a reconocer.

A.2. Desarrollo de la Aplicacin de Dgitos conectados en HTK.

A.2.1. La Gramtica

Se debe definir el archivo de gramtica. Este archivo debe ser creado por el usuario de
acuerdo a la gramtica, que vaya a utilizar. El contenido del archivo de gramtica, utilizado
en este proyecto se puede observar a continuacin en la figura Figura 39.


Figura 39. Gramtica Utilizada en la Aplicacin de Dgitos Conectados.
80

Luego se debe crear la red gramatical siguiendo el siguiente comando de lnea:

Hparse gramatica.txt red

El archivo gramatica.txt, es el archivo que contiene la gramtica definida por el usuario.
Red es el archivo de salida de la herramienta, el cual va a contener la red de la gramtica de
las palabras.

A.2.2. El Diccionario

El archivo diccionario.txt debe ser creado por el usuario. Debe contener el listado de todas
las palabras pertenecientes al vocabulario del reconocedor, adems de sus pronunciaciones.
A continuacin se presenta el contenido del archivo del diccionario que se puede observar
en la Figura 40.


Figura 40. Contenido del Diccionario Utilizado en la Aplicacin de Dgitos Conectados.

A.2.3. Etiquetas de las Palabras.

La insercin de las etiquetas de las palabras se puede llevar a cabo con la herramienta
Hslab. Esta crea unos archivos con extensin .lab, los cuales son unos simples archivos de
81
texto, que contienen dos series de nmeros y enseguida el nombre de la etiqueta; los
nmeros indican el tiempo de inicio y el tiempo final de la etiqueta en nano-segundos.
Toda la rotulacin la realiza el usuario.

Hslab C configuracion1.txt archivo_de_voz.wav

El archivo configuracion1.txt, es el archivo que contiene la configuracin dada para que
HTK pueda leer archivos de audio con extensin .wav.
archivo_de_voz.wav, es el nombre del archivo de la seal de voz que va a ser etiquetado.

A.2.4. Creacin de los Archivos de Transcripcin.

Es necesario crear un listado de las palabras que conforman la base de datos de prueba para
poder extraer el listado de los fonemas. A continuacin se presenta el ejemplo del
contenido del archivo de palabras que se muestra en la Figura 41.



Figura 41. Ejemplo de un Archivo MLF con Transcripciones Asociadas.

82
Para obtener el nivel de fonemas se debe ejecutar el siguiente cdigo de lnea:

HLEd -l '*' -d diccionario.txt -i fonemas0.mlf mkfonemas0.led palabras.mlf

Diccionario.txt es el archivo que contiene el diccionario creado por el usuario.
Fonemas0.mlf es el archivo de salida de esta herramienta. A continuacin se presenta el
archivo de salida al utilizar Hled, el cual se puede observar en la Figura 42.


Figura 42. Transcripciones de Nivel fontico.

Palabras.mlf es un archivo introducido por el usuario el cual debe contener un listado de las
palabras existentes en cada archivo de voz, guindose por un formato especial de los
archivos mlf.
Mkfonemas0.led es un archivo de texto que contiene una serie de comandos. Este archivo
contiene los siguientes comandos:

EX
IS sil sil
DE sp

El comando de expansin EX, reemplaza cada palabra contenida en el archivo MLF, el cual
contiene el listado de las palabras utilizadas por su correspondiente pronunciacin descrita
en el diccionario. El comando IS coloca el modelo de silencio al inicio y al final de cada
83
expresin. Debido a que la cadena de nmeros, se reconocer despus de un silencio de
inicio y un silencio final. Finalmente el comando DE borra todas las etiquetas de silencio
corto sp, las cuales no se necesitan en estos archivos de transcripcin por el momento.

A.2.5. Codificacin de los Datos.

La codificacin se llevo a cabo con la herramienta Hcopy, la cual debe ser configurada
correctamente para convertir la entrada en vectores MFCC.

HCopy -T 1 -C configuracion1.txt S archivo_ruta.scp

Configuracion1.txt es el mismo archivo que se utiliz al invocar la herramienta Hslab.
Archivo_ruta.scp es un archivo de texto el cual contiene el nombre de los archivos de voz, e
inmediatamente despus de un espacio el nombre del archivo destino .mfc.

A.2.6. Creacin de los Modelos de los Monofonemas.

El usuario debe crear un archivo que contenga la definicin de la arquitectura de los
modelos (proto). A continuacin en la Figura 43. se puede observar el contenido del
archivo prototipo utilizado en este proyecto:

84

Figura 43. Topologa de los HMMs Utilizados.

Luego se inicializan con la siguiente herramienta.

HCompV C configuracion2.txt f 0.01 -m -S entrenamiento.scp -M hmm0 proto

Donde configuracion2.txt es un archivo fijo, diferente a configuracion1.txt que contiene la
configuracin necesaria para obtener los coeficientes MFCC, la ventana de hamming, etc.
Este archivo se puede observar en la Figura 44.

85

Figura 44. Contenido de Archivo configuracion2.txt.

Entrenamiento.scp debe contener un listado de todos los archivos .mfc, puede introducirlo
el usuario o se pueden leer todos los archivos con la extensin .scp, y listarlos en este
archivo automticamente.
Hmm0 es el directorio de salida en donde se creara el archivo de salida de la herramienta.
Proto es el nombre del archivo prototipo de los modelos.
Despus de la ejecucin de esta herramienta, hcompv tambin tiene como salida un archivo
llamado Vfloors, el cual se utilizar en los pasos subsecuentes.

Luego se debe crear un archivo de etiqueta maestro con extensin .mmf. El cual es un
archivo de texto que tiene que ser creado por el usuario, debe contener una copia del
archivo que se encuentra en el directorio HMM0 (archivo del modelo prototipo ya
inicializado), para cada modelo de fonema. En vez de tener el apuntador ~h proto, este,
se debe cambiar por ~h xxx, donde xxx es el nombre del modelo a utilizar. El apuntador
se debe copiar con toda la informacin del modelo dentro del archivo. Se deben utilizar
todos los modelos existentes. En la Figura 45. se presenta la forma en como se deben
encadenar los modelos de los fonemas:

86

Figura 45. Creacin del Archivo de Descripcin de los HMMs con extensin MMF.

Antes de invocar esta herramienta se debe crear un nuevo archivo llamado macros, el cual
debe contener las llamadas opciones globales y las varianzas que se van a utilizar como
piso para estimar los modelos, esta informacin se encuentra en el archivo vFloors. Las
opciones globales, simplemente son los parmetros de los HMMs y el tamao de los
vectores. Al combinar la siguiente lnea con el contenido del archivo vFloors, se podr
crear el archivo macros:

~o <MFCC_0_D_A> <VecSize> 39

De igual forma a como se hizo en la aplicacin anterior, entonces de manera general
Cabecera + Vfloors = Macros, como se puede observar a continuacin en la Figura 46.


Figura 46. Contenido del Archivo Macros.

Luego se ejecuta la herramienta Hrest para entrenar los modelos, como se muestra a
continuacin:

87
HERest -C configuracion2.txt -I fonemas0.mlf -t 250.0 150.0 1000.0 -S
entrenamiento.scp -H hmm0/macros -H hmm0/hmmdefs -M hmm1 monofonemas0

Configuracion2.txt, Fonemas0.mlf, Entrenamiento.scp son los mismos archivos utilizados
anteriormente.
HMM0/macros y HMM0/hmmdefs son los archivos creados anteriormente.
HMM1 es el directorio de salida, en el cual se grabaran los archivos macros y hmmdefs
entrenados.
Monofonemas0 es un archivo que debe contener el listado total de los monofonemas que
hacen parte de las palabras utilizadas.

Otros 2 pasos de entrenamiento utilizando la herramienta herest se deben implementar.
Cambiando solamente los directorios de lectura y de salida. Como se ve a continuacin.

HERest -C configuracion2.txt -I fonemas0.mlf -t 250.0 150.0 1000.0 -S
entrenamiento.scp -H hmm1/macros -H hmm1/hmmdefs -M hmm2 monofonemas0

HERest -C configuracion2.txt -I fonemas0.mlf -t 250.0 150.0 1000.0 -S
entrenamiento.scp -H hmm2/macros -H hmm2/hmmdefs -M hmm3 monofonemas0

A.2.7. Arreglando los Modelos de Silencio.

El usuario debe utilizar un editor de texto para copiar el estado central del modelo de
silencio, para crear un nuevo modelo sp, y guardar el resultado en el directorio HMM4,
donde estarn los modelos anteriores y el nuevo modelo sp.

Ahora se debe implementar el siguiente comando de lnea para crear el modelo sp.

HHEd H hmm4/macros -H hmm4/hmmdefs -M hmm5 sil.hed monofonemas1

88
Sil.hed es un archivo fijo que debe contener una serie de comandos. El conjunto de
comandos utilizados se presenta a continuacin:

AT 2 4 0.2 {sil.transP}
AT 4 2 0.2 {sil.transP}
AT 1 3 0.3 {sp.transP}
TI silst {sil.state[3],sp.state[2]}

Donde el comando AT aade transiciones a las matrices de transiciones propuestas. De
acuerdo con la siguiente sintaxis de funcionamiento del comando AT:

AT i j Prob {mod.transP}


Donde i y j son estados del modelo mod. El comando AT aade una transicin de salto
del estado i al estado j, con el valor de la magnitud de probabilidad prob, para las
transiciones en la matriz de probabilidad del modelo mod. Las transiciones que
permanecieron fuera del estado i son recalculadas para que:



El comando final TI crea un estado atado llamado silst. Este coma ndo se ejecuta de
acuerdo a la sintaxis que se presenta a continuacin:

TI macro {mod1.state[i],mod2.state[j],]

Este comando ata y asigna los estados i y j de los modelos mod1 y mod2, al nombre
especificado macro.
89

Monofonemas1 es un archivo con igual contenido al archivo monofonemas0 pero con el
nuevo modelo sp.
HMM5 es el directorio de salida y deber contener los archivos macros y hmmdefs.

Ahora se debe crear el nuevo archivo de transcripcin de las etiquetas, utilizando
nuevamente la herramienta Hslab para adjuntar la etiqueta de sp en todos los archivos:

Hslab C configuracion1.txt archivo_de_audio.wav

Luego se deben entrenar dos veces ms los modelos de la siguiente manera:

HERest -C configuracion2.txt -I fonemas1.mlf -t 250.0 150.0 1000.0 -S
entrenamiento.scp -H hmm5/macros -H hmm5/hmmdefs -M hmm6 monofonemas1

HERest -C configuracion2.txt -I fonemas1.mlf -t 250.0 150.0 1000.0 -S
entrenamiento.scp -H hmm6/macros -H hmm6/hmmdefs -M hmm7 monofonemas1

A.2.8. Realineamiento de los Datos de Entrenamiento.

Este proceso se realiz con la herramienta Hvite, la cual ejecuta el alineamiento utilizando
el algoritmo de Viterbi. El comando de lnea utilizado fue el siguiente:

HVite -l '*' -o SWT -b silencio -C configuracion2.txt -a -H hmm7/macros -H
hmm7/hmmdefs -i alineados.mlf -m -t 250.0 -y lab -I palabras.mlf -S entrenamiento.scp
diccionario.txt monofonemas1

Los comandos antes del smbolo C son para evitar el modelo de silencio en el
alineamiento de los datos, debido a que el silencio no es relevante en este proceso.
Alineados.mlf es la salida de la herramienta

90
Otros dos pasos de entrenamiento se deben realizar de la siguiente manera:

HERest -C configuracion2.txt -I fonemas1.mlf -t 250.0 150.0 1000.0 -S
entrenamiento.scp -H hmm7/macros -H hmm7/hmmdefs -M hmm8 monofonemas1.txt

HERest -C configuracion2.txt -I fonemas1.mlf -t 250.0 150.0 1000.0 -S
entrenamiento.scp -H hmm8/macros -H hmm8/hmmdefs -M hmm9 monofonemas1.txt

A.2.9. Creacin de los Trifonemas desde los Monofone mas.

Este proceso se realiz con la herramienta editora Hled como se muestra a continuacin:

HLEd -n trifonemas1 -l '*' -i wintri.mlf mktri.led alineados.mlf

Las salidas del sistema son los archivos wintri.mlf y trifonemas1, los cuales contienen los
trifonemas existentes en las palabras y el listado de estos respectivamente.
El archivo mktri.led es un archivo el cual contiene una serie de comandos que se muestran a
continuacion.

WB sp
TC

Los dos comandos WB definen los modelos sp y sil como Word boundary simbols. Estos
bloquearan la adicin del contexto en el comando TI (explicado anteriormente), donde
convierte todos los fonemas (excepto los modelos sp) a trifonemas.

Luego se debe realizar la clonacin de los modelos

HHEd -H hmm9/macros -H hmm9/hmmdefs -M hmm10 mktri.hed monofonemas1

Hmm10 es el directorio de salida.
91
Tambin se crear un archivo llamado trifonemas1. Que se utilizar ms adelante.
Mktri.hed es un archivo creado por el usuario que contiene los siguientes comandos:

CL triphones1
TI T_u {(*-u+*,u+*,*-u).transP}
TI T_n {(*-n+*,n+*,*-n).transP}
TI T_o {(*-o+*,o+*,*-o).transP}
TI T_d {(*-d+*,d+*,*-d).transP}
Etc.

El comando clon CL, toma como argumento el nombre de el archivo que contiene el listado
de los trifonemas y difonemas, generados anteriormente. Para cada modelo de la forma a-
b+c en esta lista, el comando busca el monofonema b y hace una copia de el.

Cada comando TI toma como argumento el nombre de la macro y adems el listado de los
componentes de los HMMs. Utiliza una notacin la cual intenta imitar la estructura
jerrquica del conjunto de los parmetros de los HMMs, en la cual la transicin de la matriz
Transp. puede ser considerada como un sub-componente de cada HMM. La lista que se
encuentra dentro de los parntesis esta diseada para coincidir con el conjunto de
trifonemas, difonemas derechos y difonemas izquierdos para cada fonema.

Las transcripciones de los trifonemas no existen, deben ser creadas por el usuario al
manipular manualmente los archivos .lab, para poder crear las transcripciones de los
trifonemas. Esto se realiza con cualquier editor de texto.

Luego de esto los modelos se deben entrenar de nuevo 2 veces:

HERest -C configuracion2.txt -I wintri.mlf -t 250.0 150.0 1000.0 -s stats -S
entrenamiento.scp -H hmm10/macros -H hmm10/hmmdefs -M hmm11 trifonemas1

92
HERest -C configuracion2.txt -I wintri.mlf -t 250.0 150.0 1000.0 -s stats -S
entrenamiento.scp -H hmm11/macros -H hmm11/hmmdefs -M hmm12 trifonemas1

El archivo stats es un archivo de salida de la herramienta el cual contiene una serie de
estadsticas del sistema.

A.2.10. Creando Estados Atados de los Trifonemas.

Para atar los estados de los trifonemas se utiliz la herramienta editora Hhed ejecutando el
siguiente comando de lnea:

HHEd -H hmm12/macros -H hmm12/hmmdefs -M hmm13 arbol.hed trifonemas1 > log

Log es un archivo de salida el cual contiene informacin de la verosimitlitud de los
modelos. Este archivo se utilizar ms adelante.
Arbol.hed es un archivo creado por el usuario con un listado de comandos.
A continuacin se presenta el conjunto de comandos utilizado:

RO 100.0 stats
TR 0
QS "L_u" { u-* }
QS "R_u" { *+u }
QS "L_n" { n-* }
QS "R_n" { *+n }
QS "L_o" { o-* }
QS "R_o" { *+o }
.

TR 2

TB 350.0 "u_s2" {(u, *-u, *-u+*, u+*).state[2]}
93
TB 350.0 "n_s2" {(n, *-n, *-n+*, n+*).state[2]}
TB 350.0 "o_s2" {(o, *-o, *-o+*, o+*).state[2]}
.
TB 350.0 "u_s4" {(u, *-u, *-u+*, u+*).state[4]}
TB 350.0 "n_s4" {(n, *-n, *-n+*, n+*).state[4]}
TB 350.0 "o_s4" {(o, *-o, *-o+*, o+*).state[4]}
.

TR 1

AU "lista_total"
CO "lista_atados"
ST "rbol"

El comando RO es utilizado para colocar el umbral a 100.0 y cargar el archivo de
estadsticas generado al final del numeral anterior. El umbral determina la ocupancia
mnima de cualquier grupo y evita un slo estado de salida, formando solamente un grupo
de ocurrencias porque es acsticamente diferente a todos los otros estados.

El comando TR coloca el nivel de trazado a cero para la preparacin de la carga de las
preguntas.

Cada comando QS carga una sola pregunta y cada pregunta es definida por un conjunto de
contextos. Por ejemplo, el primer comando QS define la pregunta llamada L_u la cual es
verdadera si el contexto de izquierda tiene alguna ocurrencia con otro fonema.

El segundo comando TR coloca el nivel intermedio de reportes de progreso, reportando que
cada uno de los siguientes comandos TB puede ser monitoreado. Cada uno de esos
comandos TB agrupa un conjunto especifico de estados. Por ejemplo, el primer comando
TB se aplica al primer estado emisor de todos los modelos contexto dependientes del
fonema u. Cada comando TB trabaja de la forma siguiente. Primero, cada conjunto de los
94
estados definidos por el argumento final es combinado para formar un slo estado. Cada
interrogante en el conjunto de preguntas cargadas por el comando QS, es usada para dividir
la combinacin en dos conjuntos. En conclusin, los estados en cualquier grupo i estn
atados para formar un slo estado compartido con el nombre macro xxx_i donde xxx es el
nombre dado por el segundo argumento de los comandos TB.

El comando AU toma como argumento un nuevo listado de trifonemas expandidos para
incluir a todos los que se necesitan para el reconocimiento.

Los comandos CO son utilizados para compactar el conjunto de modelos al encontrar los
modelos idnticos y atarlos conjuntamente, produciendo un nuevo listado de los modelos
llamado lista_atados.

Se entrenan de nuevo 2 veces los modelos:

HERest -C configuracion2.txt -I wintri.mlf -t 250.0 150.0 1000.0 -s stats -S
entrenamiento.scp -H hmm13/macros -H hmm13/hmmdefs -M hmm14 lista_atados

HERest -C configuracion2.txt -I wintri.mlf -t 250.0 150.0 1000.0 -s stats -S
entrenamiento.scp -H hmm14/macros -H hmm14/hmmdefs -M hmm15 lista_atados

A.2.11 Reconocimiento.

Para el reconocimiento de las seales se deben extraer los parmetros MFCC de los
archivos de pruebas. Esto se realizo con el siguiente comando de linea:

HCopy -T 1 -C configuracion1.txt -S archivo_ruta2.scp

Archivo_ruta2.scp contiene el listado de los archivos de voz .wav de prueba e
inmediatamente despus el nombre del archivo destino con extensin .mfc, los cuales van a
contener la informacin de la parametrizacin.
95

Se utiliz la herramienta Hvite para generar el resultado de reconocimiento de las seales
de prueba:

HVite -H hmm15/macros -H hmm15/hmmdefs -S test.scp -l '*' -i recout.mlf -w red -p 0.0 -s
5.0 diccionario.txt lista_atados

El archivo test.scp contiene el listado de los archivos de prueba con extensin mfc
obtenidos anteriormente.
El archivo recout.mlf es el archivo de salida de la herramienta, el cual deber contener las
palabras reconocidas.
El archivo red es el que contiene la red de la gramtica.

Las estadsticas se obtuvieron con la herramienta Hresults. El formato bsico de HTK se
obtuvo con el siguiente comando de lnea:

HResults -I testref.mlf lista_atados recout.mlf > resultado.txt

Donde el archivo testref.mlf contiene el listado de las palabra que van a ser reconocidas y
que se compararan con la salida del reconocedor para obtener las tasas de reconocimiento.

El formato NIST, las transcripciones alineadas en tiempo y las matrices de confusin se
generaron con el siguiente comando de lnea:

HResults h p t -I testref.mlf lista_atados recout.mlf > resultado.txt







96




ANEXO B. RECONOCIMIENTO DE SEALES RUIDOSAS


B.1 TASAS DE RECONOCIMIENTO OBTENIDAS

Antes de entrar en la evaluacin de la tasa de reconocimiento de los sistemas propuestos, es
necesario definir las clases de errores que pueden presentar estos reconocedores.

La tarea de la evaluacin o medida del rendimiento de un sistema de reconocimiento de
palabras aisladas, es realmente sencilla: se puede presentar reconocimiento correcto,
reconocimiento incorrecto el cual se llama error por sustitucin, tambin puede suceder la
situacin en la que el sistema no reconoce palabra alguna ante una seal de entrada, lo cual
se llama error por omisin y finalmente el reconocedor puede proporcionar una palabra
cuando no se introdujo ninguna en ese espacio de tiempo lo cual se define error por
insercin..

En los sistemas de palabras conectadas, en los que su entrada consiste en secuencias de
palabras sin pausas apreciables entre ellas, la interpretacin de su salida es ms complicada.
Los errores cometidos por estos reconocedores tambin se asignan, generalmente a las tres
categoras mencionadas anteriormente. Tambin pueden ocurrir errores que no encajen en
ninguna de estas categoras, pero la mayora de los esquemas de evaluacin utilizados
hacen la hiptesis de que todos los errores caen en una de las tres categoras anteriores,
despreciando otros tipos de errores.

Tambin se realizaron pruebas con seales reales o ambientes ruidosos, para analizar la
robustez de los sistemas frente al ruido. Debido a esto, a las bases de datos de prueba para
las dos aplicaciones se les sum ruido blanco con diferentes SNRs. Los SNRs sumados
97
fueron: 5, 15, 20, 25, 30, 35 y 40 db, utilizando el programa Matlab con la herramienta de
adicin de ruido blanco llamada Awgn.

A continuacin se presentar el anlisis realizado de las tasas de reconocimiento para cada
una de las aplicaciones realizadas.

B.1.1 Aplicacin de Palabras Aisladas.

El rendimiento del sistema reconocedor de palabras aisladas frente a seales ruidosas puede
ser observado en la Tabla 4:

Errores por
sustitucin.
Errores por
insercin.
Errores por
omisin.
SNR
Decibeles
Tasa de Error de
Reconocimiento.
(%)
Tasa de
Reconocimiento.
(%) # % # % # %
15 100.00 0.00 0 0.00 0 0.00 100 100.00
20 99.00 1.00 0 0.00 0 0.00 99 99.00
25 98.00 2.00 2 2.00 0 0.00 96 96.00
30 72.00 28.00 9 9.00 0 0.00 63 63.00
35 42.00 58.00 14 14.00 0 0.00 28 28.00
40 3.00 97.00 3 3.00 0 0.00 0 0.00
Tabla 4. Comportamiento del Reconocedor de Palabras aisladas Frente al Ruido.

Con la informacin de la tabla se puede obtener la grfica de las tasas de reconocimiento vs
los SNRs de las seales, la cual se puede observar en la Figura 47.
98

Figura 47. Grfica de las Tasas de Reconocimiento vs. SNR de la Aplicacin de Palabras Aisladas.

Para poder observar el porcentaje de aparicin de los errores encontrados en el
reconocimiento de las bases de datos con los SNRs propuestos se presenta la grfica de
Tasa de los tipos de Errores vs. Ruido, la cual se puede observar en la Figura 48.

0
10
20
30
40
50
60
70
80
90
100
T
a
s
a

d
e

E
r
r
o
r

(
%
)
15 db 20 db 25 db 30 db 35 db 40 db
SNR
Tasa de los Tipos de Errores vs. SNR
Errores por Insercin
Errores por Omisin
Errores por Sustitucin

Figura 48. Tasa de los Tipos de Errores vs. SNR Aplicacin Palabras Aisladas.

La informacin de las matrices de confusin generadas por HTK se pueden resumir en la
Tabla 5:

99
N. Reconocimientos
Bases de Datos SNR db
N de Err por Omisin en las
Bases de Datos.
N de Err por Insercin en
las Bases de Datos.
Palabras
15 20 25 30 35 40 15 20 25 30 35 40 15 20 25 30 35 40
SI 0 0 0 3 8 20 20 20 20 17 12 0 0 0 0 0 0 0
NO 0 0 0 0 7 20 20 20 20 20 13 0 0 0 0 0 0 0
PRENDER 0 0 0 0 4 17 20 20 18 11 2 0 0 0 0 0 0 0
APAGAR 0 1 2 16 20 20 20 19 18 4 0 0 0 0 0 0 0 0
CANCELAR 0 0 0 9 19 20 20 20 20 11 1 0 0 0 0 0 0 0
Tabla 5. Nmero de Palabras Correctamente Reconocidas, Errores por Insercin y por Omisin de las Bases
de Datos con SNRs en la Aplicacin de Palabras Aisladas..

B.1.2 Aplicacin de Dgitos Conectados.

A continuacin en la tabla se presentar el resultado obtenido en las bases de datos de
prueba con los diferentes SNRs. En la Tabla 6, Rec significa reconocimiento:

Errores por
sustitucin.
Errores por
insercin.
Errores por
omisin.
SNR
Decibeles
Tasa de
Error de
Rec. de
Oraciones.
Tasa de Rec.
de
Oraciones.
Tasa
de
Error
de
Rec.
Tasa
de
Rec.
# % # % # %
15 100.00 0.00 93.48 11.59 115 83.33 7 5.07 7 5.07
20 100.00 0.00 92.75 15.94 104 75.36 12 8.70 12 8.70
25 100.00 0.00 89.13 18.84 101 73.19 11 7.97 11 7.97
30 100.00 0.00 89.86 22.46 90 65.22 17 12.32 17 12.32
35 100.00 0.00 88.41 24.64 86 62.32 18 13.04 18 13.04
40 100.00 0.00 86.96 25.36 86 62.32 17 12.32 17 12.32
Tabla 6. Comportamiento del Reconocedor de Dgitos Conectados Frente al Ruido.

Con la informacin de la tabla se obtuvo la grfica de la tasa de reconocimiento frente a la
relacion seal a ruido, la cual se puede observar en la Figura 49.

100

Figura 49. Grfica de las Tasas de Reconocimiento vs. SNR de la Aplicacin Dgitos Conectados.

A continuacin en la Figura 50. se puede observar el comportamiento de la tasa de los
errores frente a la SNR:

0
20
40
60
80
100
120
Nmero de
Errores
15
dB
20
dB
25
dB
30
dB
35
dB
40
dB
SNR
Tipo de Errores vs. SNR
Nmero de Errores por
Sustitucin
Nmero de Errores por
Insercin
Nmero de Errores por
Omisin

Figura 50. Tipo De Errores vs. SNR Aplicacin Dgitos Conectados.

B.1.3 Reconocimiento a Nivel de Fonemas

El reconocimiento a nivel de fonemas permite observar cuales fueron los modelos que
presentaron dificultad en su reconocimiento. El reconocimiento a nivel de palabras,
101
demostr que las palabras que presentaron problemas para su reconocimiento fueron: UNO
y OCHO.

El reconocimiento a nivel de fonemas, present una tasa mayor que la de reconocimiento
de palabras, debido a la mayor cantidad de datos. El nmero total de fonemas es de 617
fonemas.

El rendimiento del sistema reconocedor a nivel de fonemas se puede resumir en la Tabla 7:

Fonemas
N de Veces que fue Rec.
Correctamente/N total del
fonema.
Nmero de Errores
por Omisin.
Nmero de Errores
por Insercin.
u 10/18 7 1
n 31/34 1 1
o 84/91 0 1
d 15/15 0 2
s 98/98 0 0
t 37/37 0 0
r 34/34 0 0
e 100/100 0 5
kk 23/23 0 0
w 27/27 0 5
a 11/11 0 0
i 12/12 0 0
N 12/12 0 0
j 31/31 0 0
c 10/12 2 0
b 16/16 0 5
Tabla 7. Fonemas Reconocidos Correctamente, Errores por Insercin y Omisin,
102

Al realizar el anlisis del rendimiento del reconocedor frente a seales ruidosas, se
encontraron los resultados que se pueden observar en la grfica de la tasa de
reconocimiento vs. SNR, que se puede observar en la Figura 51.


Figura 51. Grfica de las Tasas de Reconocimiento de fonemas vs. SNR de la Aplicacin de Dgitos
Conectados.

Tambin se obtuvo la grfica del comportamiento de la tasa de los tipos de errores frente a
la SNR de las bases de datos de prueba que se puede observar en la Figura 52.

0
10
20
30
40
50
60
70
80
90
Tasa de Error
(%)
15
db
20
db
25
db
30
db
35
db
40
db
SNR
Tasa de los Tipos de Errores vs. SNR
Tasa de Errores por
Sustitucin
Tasa de Errores por
Omisin
Tasa de Erorres por
Insercin

Figura 52. Grfica de la Tasa de los Tipos De Errores vs. SNR Aplicacin Dgitos Conectados a Nivel de
Fonemas.
103


B.2. Conclusiones de los Sistemas Reconocedores

A continuacin se mencionarn las conclusiones en forma individual de los sistemas
reconocedores:

B.2.1. Palabras Aisladas

Con las seales de voz libres de ruido, se obtuvo un resultado de la totalidad de las
palabras reconocidas correctamente.
Debido a que el sistema no es robusto, el reconocedor genera tasas de
reconocimiento muy bajas ante seales ruidosas, con SNR menores a 35 db.
Algunos modelos presentaron mayor grado de robustez en presencia de ruido, con
respecto a otros, como fue el caso del modelo de la palabra apagar. Esto se debe
posiblemente a caractersticas propias de la voz del locutor.

B.2.2. Dgitos Conectados

Se demostr que el reconocimiento de habla conectada a nivel de fonemas,
difonemas y trifonemas (fonemas dependientes del contexto) genera una tasa de
reconocimiento bastante alta ante entradas libres de ruido, obtenindose un
resultado de 92.75% de reconocimiento.
Se evalu el rendimiento de los reconocedores frente a seales ruidosas, obteniendo
resultados poco satisfactorios. Estas pruebas demostraron la deficiencia del
reconocedor frente ambientes ruidosos.
El reconocimiento a nivel de fonemas present una tasa de reconocimiento mayor
con respecto a la tasa de reconocimiento de palabras, debido a la gran cantidad de
fonemas existentes en las seales de voz, los cuales sirvieron como datos de
entrenamiento de los modelos.
104
Algunos modelos de los fonemas presentaron mayor robustez ante seales ruidosas,
como es el caso del modelo de los fonemas t, r, s y e, debido a esto la palabra que
fue reconocida mayor nmero de veces fue la palabra TRES.






























105




ANEXO C. LIBRETO DE GRABACION DE LAS BASES DE DATOS


C.1. GRABACIONES BASE DE DATOS DE ENTRENAMIENTO Y PRUEBA DE LA
APLICACIN DE PALABRAS AISLADAS

En esta aplicacin se grabaron la palabras PRENDER, APAGAR, CANCELAR, SI Y NO.
Por cada archivo, se grab una palabra. Se sigui la secuencia indicada anteriormente hasta
el archivo nmero 200, es decir 60 repeticiones por palabra, para la base de datos de
entrenamiento. Para la base de datos de prueba, se repiti el proceso hasta el archivo
nmero 300, es decir 20 repeticiones por palabra.


C.2. GRABACIONES BASE DE DATOS DE ENTRENAMIENTO APLICACIN DE
DIGITOS CONECTADOS

1. NUEVE UNO OCHO TRES CERO CERO
2. SEIS CERO TRES DOS DOS CINCO
3. SIETE SEIS SEIS UNO NUEVE TRES
4. CERO CERO CUATRO SEIS CERO DOS
5. CINCO DOS UNO OCHO DOS DOS
6. SEIS CERO TRES CERO UNO CINCO
7. DOS CERO CERO TRES SEIS TRES
8. CERO DOS SEIS SIETE OCHO SIETE
9. OCHO SIETE CUATRO CINCO TRES OCHO
10. TRES CERO SIETE UNO SEIS SEIS
11. CERO OCHO TRES CERO SIETE TRES
12. UNO OCHO CUATRO DOS UNO TRES
13. DOS NUEVE NUEVE CERO DOS TRES
14. OCHO UNO CUATRO DOS CUATRO CINCO
106
15. DOS CERO SEIS CUATRO CINCO UNO
16. CERO NUEVE SEIS CINCO CUATRO NUEVE
17. CINCO CERO DOS UNO DOS CUATRO
18. SEIS DOS CERO TRES TRES CUATRO
19. TRES NUEVE TRES CINCO DOS CUATRO
20. OCHO SIETE CUATRO NUEVE UNO DOS
21. SEIS DOS OCHO TRES NUEVE CERO
22. DOS SIETE DOS DOS TRES CUATRO
23. DOS UNO UNO UNO CERO SEIS
24. SIETE SIETE NUEVE CERO SEIS CERO
25. SIETE TRES OCHO SEIS NUEVE DOS
26. SIETE UNO UNO CERO UNO SIETE
27. NUEVE SIETE UNO SIETE NUEVE CINCO
28. TRES DOS CERO OCHO CINCO NUEVE
29. CERO NUEVE OCHO SIETE NUEVE TRES
30. SIETE SIETE CUATRO CUATRO DOS OCHO
31. SEIS NUEVE CERO CINCO CUATRO SIETE
32. UNO NUEVE CERO DOS UNO CERO
33. SEIS CINCO SIETE TRES UNO SEIS
34. SEIS DOS SEIS DOS CERO CUATRO
35. CINCO DOS DOS SIETE SEIS SIETE
36. OCHO SIETE DOS UNO CUATRO TRES
37. TRES CUATRO SEIS TRES SEIS SEIS
38. OCHO CERO UNO DOS SEIS CUATRO
39. UNO CERO NUEVE SIETE UNO TRES
40. UNO OCHO CERO CERO CINCO DOS
41. CERO CERO SIETE NUEVE CERO NUEVE
42. CINCO CERO SIETE DOS NUEVE CERO
43. CERO OCHO CUATRO SEIS SIETE NUEVE
44. DOS TRES DOS UNO OCHO CUATRO
45. SEIS OCHO UNO UNO CERO SEIS
46. NUEVE SEIS UNO NUEVE SIETE CUATRO
47. CINCO CERO UNO SIETE DOS OCHO
48. DOS CUATRO SIETE TRES CERO OCHO
49. DOS DOS CUATRO SEIS CUATRO CERO
50. CINCO DOS CINCO CERO SIETE DOS
51. NUEVE CINCO OCHO CINCO CUATRO CINCO
52. DOS UNO SEIS DOS TRES CINCO
107
53. CUATRO NUEVE DOS SEIS NUEVE SIETE
54. TRES SEIS CINCO NUEVE SEIS NUEVE
55. CERO CERO SEIS UNO CERO TRES
56. UNO TRES TRES OCHO TRES CUATRO
57. CINCO NUEVE CERO CUATRO DOS SEIS
58. OCHO OCHO NUEVE NUEVE CINCO CERO
59. CERO DOS DOS SIETE SEIS DOS
60. OCHO OCHO OCHO CINCO SEIS CERO
61. OCHO CERO TRES NUEVE UNO TRES
62. SIETE TRES OCHO SIETE TRES UNO
63. DOS TRES CERO CUATRO CINCO SEIS
64. SEIS CUATRO SEIS CINCO SIETE SEIS
65. CUATRO CINCO OCHO CINCO CINCO OCHO
66. SIETE CINCO CINCO TRES SEIS SIETE
67. CERO OCHO SEIS TRES SIETE SIETE
68. CERO CUATRO OCHO OCHO DOS SIETE
69. NUEVE NUEVE CERO SIETE UNO SEIS
70. CUATRO UNO OCHO UNO OCHO OCHO
71. CERO SIETE UNO SIETE CUATRO CERO
72. TRES CERO OCHO UNO UNO UNO
73. CUATRO OCHO UNO SEIS CINCO TRES
74. SEIS UNO SEIS CUATRO CUATRO NUEVE
75. UNO SEIS OCHO TRES SEIS CUATRO
76. CINCO CINCO OCHO UNO CINCO UNO
77. OCHO SIETE SEIS DOS DOS TRES
78. SEIS OCHO OCHO NUEVE UNO UNO
79. DOS CINCO TRES SIETE CERO NUEVE
80. SEIS SEIS UNO SIETE DOS TRES
81. CINCO SEIS SIETE UNO CINCO CINCO
82. SIETE TRES UNO CERO SIETE TRES
83. NUEVE CINCO SEIS DOS SIETE TRES
84. NUEVE SEIS SEIS CERO SIETE OCHO
85. TRES NUEVE SEIS TRES OCHO SIETE
86. DOS CINCO TRES CINCO CUATRO NUEVE
87. CINCO NUEVE NUEVE UNO CERO OCHO
88. SEIS UNO TRES OCHO UNO CINCO
89. SIETE CUATRO CINCO OCHO CERO OCHO
90. DOS CERO TRES CINCO OCHO CINCO
108
91. CUATRO CERO CINCO DOS TRES SEIS
92. UNO NUEVE NUEVE CINCO CINCO CUATRO
93. UNO OCHO SIETE SIETE SEIS UNO
94. DOS CUATRO CINCO CERO NUEVE NUEVE
95. CERO SEIS TRES SIETE NUEVE CINCO
96. SIETE NUEVE CUATRO CUATRO CUATRO CERO
97. TRES UNO CERO TRES CINCO CERO
98. CINCO TRES TRES CERO SIETE CINCO
99. NUEVE UNO CUATRO DOS SEIS CINCO
100. CINCO NUEVE NUEVE DOS UNO SIETE
101. UNO DOS DOS SIETE NUEVE SEIS
102. SIETE SEIS CUATRO SIETE SEIS DOS
103. TRES NUEVE TRES TRES CUATRO CERO
104. SEIS DOS CUATRO SIETE SIETE CERO
105. UNO SIETE NUEVE NUEVE DOS UNO
106. CERO DOS DOS NUEVE TRES CERO
107. NUEVE CINCO CINCO NUEVE SEIS SEIS
108. SIETE OCHO NUEVE UNO OCHO CERO
109. SEIS UNO CUATRO DOS DOS OCHO
110. SEIS CERO TRES SEIS CUATRO CINCO
111. NUEVE NUEVE CERO CUATRO SIETE OCHO
112. OCHO SEIS SIETE SEIS TRES OCHO
113. SIETE CUATRO NUEVE SEIS SIETE TRES
114. NUEVE CERO NUEVE NUEVE CERO UNO
115. SIETE TRES CUATRO CERO UNO TRES
116. SIETE SIETE NUEVE CINCO SEIS DOS
117. OCHO SEIS DOS CUATRO SEIS CUATRO

C.3. GRABACIONES BASE DE DATOS DE PRUEBA APLICACIN DE DIGITOS
CONECTADOS

118. SIETE NUEVE CERO OCHO SIETE SEIS
119. SIETE SIETE OCHO CUATRO DOS SIETE
120. SEIS UNO CINCO TRES CUATRO CINCO
121. CUATRO CINCO TRES TRES NUEVE SEIS
122. DOS DOS SIETE DOS SEIS SEIS
123. TRES CERO UNO NUEVE UNO SIETE
109
124. TRES UNO NUEVE NUEVE OCHO NUEVE
125. OCHO SEIS SEIS SEIS SEIS SEIS
126. CERO SIETE DOS DOS NUEVE CERO
127. CINCO OCHO DOS DOS SIETE SEIS
128. NUEVE CERO CERO CUATRO CINCO UNO
129. SEIS TRES DOS CUATRO CERO TRES
130. UNO SIETE SIETE TRES CERO UNO
131. NUEVE NUEVE NUEVE NUEVE CERO CERO
132. UNO NUEVE CINCO UNO OCHO DOS
133. CINCO CINCO SIETE SEIS OCHO SEIS
134. SEIS TRES DOS UNO OCHO DOS
135. UNO CINCO OCHO SEIS SEIS CERO
136. CINCO UNO SIETE CUATRO UNO UNO
137. TRES NUEVE CUATRO CUATRO CUATRO CINCO
138. DOS TRES CUATRO OCHO UNO CINCO
139. OCHO UNO CUATRO NUEVE UNO DOS
140. SIETE NUEVE UNO OCHO TRES DOS



















110




ANEXO D. RECURSOS DE MEMORIA UTILIZADOS POR LA HERRAMIENTA
HVITE


D.1. ORGANIZACIN DE LA MEMORIA UTILIZADA POR HVITE

Estado de la Memoria Antes de la Inicializacin.


Figura 53. Estado de la Memoria Antes de la Inicializacin.


Estado de la Memoria Despus del Reconocimiento.

111

Figura 54. Estado de la Memoria Despus del Reconocimiento

Estado Final de la Memoria


Figura 55. Estado Final de la Memoria

Cada lnea describe el estatus de todas las memorias asignadas y presenta el nmero de
bloques adjudicados, el tamao del bloque actual (numero de elementos en el bloque por el
112
numero de bytes en cada elemento), el numero total de bytes que usa la herramienta Hvite y
el numero total de bytes actuales colocados al asignador. El final de cada lnea presenta el
nombre del asignador y su tipo: Stack[S], Mheap[M] or C-heap[M].

También podría gustarte