• No se han encontrado resultados

Aplicaciones en reconocimiento de voz utilizando HTK

N/A
N/A
Protected

Academic year: 2017

Share "Aplicaciones en reconocimiento de voz utilizando HTK"

Copied!
124
0
0

Texto completo

(1)

APLICACIONES EN RECONOCIMIENTO DE VOZ UTILIZANDO HTK

T.G. 0446

AUTOR: IVÁN HORACIO VILLAMIL ESPINOSA.

SANTA FE DE BOGOTA DC. PONTIFICIA UNIVERSIDAD JAVERIANA

FACULTAD DE INGENIERIA DEPARTAMENTO DE ELECTRONICA

(2)

APLICACIONES EN RECONOCIMIENTO DE VOZ UTILIZANDO HTK

T.G. 0446

AUTOR: IVÁN HORACIO VILLAMIL ESPINOSA.

DIRECTOR: PEDRO RAÚL VIZCAYA GUARÍN. PHD. DIRECTOR MAESTRÍA EN INGENIERÍA ELECTRÓNICA.

SANTA FE DE BOGOTA DC. PONTIFICIA UNIVERSIDAD JAVERIANA

FACULTAD DE INGENIERIA DEPARTAMENTO DE ELECTRONICA

(3)

ADVERTENCIA

ARTÍCULO 23 DE LA RESOLUCIÓN No. 13 DE JUNIO DE 1946

(4)

TABLA DE CONTENIDO

INTRODUCCIÓN... 1

1. MARCO TEÓRICO... 5

1.1 RECONOCIMIENTO DE PALABRAS AISLADAS ... 5

1.2 RECONOCIMIENTO DE VOZ CONECTADA... 6

1.3 PARAMETRIZACION DE LAS SEÑALES 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 DÍGITOS CONECTADOS. ... 17

3. DESARROLLOS... 21

3.1 APLICACIÓN DE PALABRAS AISLADAS. ... 22

3.1.1 Grabación de la Señal de Voz. ... 22

3.1.2 Etiquetas de las Señales de Voz... 23

3.1.3 Análisis Acústico... 24

3.1.4 Definición de los HMMs. ... 25

3.1.5 Entrenamiento de los HMMs... 26

3.1.5.1 Inicialización... 27

(5)

3.1.6 Diccionario y Gramática... 29

3.1.6.1 La Red. ... 30

3.1.7 Reconocimiento. ... 30

3.1.8 Evaluación del Reconocedor ... 31

3.1.8.1 Archivos de Etiqueta Maestros. ... 31

3.1.8.2 Tasa de Reconocimiento ... 32

3.2 APLICACIÓN DE DÍGITOS CONECTADOS. ... 32

3.2.1 Definición de la Tarea del Reconocedor. Gramática y Diccionario... 33

3.2.2 Grabación de las Señales de Voz. ... 35

3.2.3 Etiquetas de las Señales de Voz... 35

3.2.4 Codificación de los Datos... 37

3.2.5 Creación 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 Construcción de los Trifonemas desde los Monofonemas. ... 42

3.2.9 Creación de los Estados Atados de los Trifonemas... 43

3.2.10 Reconocimiento de los Datos de Prueba... 45

3.3 INTERFAZ GRÁFICA DE HTK... 46

4. ANÁLISIS DE RESULTADOS ... 48

4.1 HERRAMIENTA DE ANÁLISIS... 49

4.2 EVALUACIÓN DEL PROCESO DE ENTRENAMIENTO DE LOS HMMS. ... 57

4.2.1 Tiempo Empleado en la Inserción de las Etiquetas de las Palabras ... 57

4.2.2 Herramienta Utilizada... 58

4.2.3 Recursos en Tiempo y Memoria de la Ejecución de las Herramientas Utilizadas ... 59

4.3 EVALUACIÓN DEL PROCESO DE RECONOCIMIENTO... 60

4.4 EVALUACIÓN DE LA COMPLEJIDAD EN LA EJECUCIÓN DE LAS HERRAMIENTAS 61 5. CONCLUSIONES ... 64

5.1 POSIBLES MEJORAS... 66

(6)

6. BIBLIOGRAFÍA... 69

6.1 REFERENCIAS DE INTERNET... 69

6.2 REFERENCIAS BIBLIOGRÁFICAS... 69

ANEXO A. DESARROLLO DE LAS APLICACIONES... 71

A.1. DESARROLLO DE LA APLICACIÓN DE PALABRAS AISLADAS EN HTK. ... 71

A.1.1. Creación de un Cuerpo de Entrenamiento. ... 71

A.1.2. Análisis Acústico... 72

A.1.3. Definición de los HMMs. ... 73

A.1.4, Entrenamiento de los HMMs. ... 73

A.1.4.1. Inicialización... 74

A.1.4.2. Entrenamiento. ... 75

A.1.5. Diccionario y Gramática... 76

A.1.6. Reconocimiento. ... 77

A.1.7. Tasa de Error... 78

A.2. DESARROLLO DE LA APLICACIÓN DE DÍGITOS CONECTADOS EN HTK. ... 79

A.2.1. La Gramática... 79

A.2.2. El Diccionario... 80

A.2.3. Etiquetas de las Palabras... 80

A.2.4. Creación de los Archivos de Transcripción. ... 81

A.2.5. Codificación de los Datos. ... 83

A.2.6. Creación 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. Creación 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 SEÑALES RUIDOSAS ... 96

B.1 TASAS DE RECONOCIMIENTO OBTENIDAS ... 96

(7)

B.1.2 Aplicación de Dígitos 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. Dígitos 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 APLICACIÓN DE PALABRAS AISLADAS ... 105

C.2. GRABACIONES BASE DE DATOS DE ENTRENAMIENTO APLICACIÓN DE DIGITOS CONECTADOS ... 105

C.3. GRABACIONES BASE DE DATOS DE PRUEBA APLICACIÓN DE DIGITOS CONECTADOS ... 108

ANEXO D. RECURSOS DE MEMORIA UTILIZADOS POR LA HERRAMIENTA HVITE ... 110

(8)

LISTA DE FIGURAS

Figura 1. Reconocimiento de palabras aisladas... 5

Figura 2. Generación de los Modelos de Markov de Izquierda a Derecha. ... 9

Figura 3. Representación 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 Gráfica al invocar la herramienta Hslab... 23

Figura 9. Topología básica de los HMMs. ... 25

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

Figura 11. Diagrama de flujo: Inicialización de los parámetros de los HMM. ... 28

Figura 12. Diagrama en flujo: Re-estimación de los parámetros 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 Aplicación de Dígitos Conectados... 34

Figura 15. Etiquetas de las Señales de Voz con Hslab... 36

Figura 16. Topología de los HMMs de Izquierda a Derecha de 3 Estados Emisores. ... 38

Figura 17. Inserción de las Etiquetas, Análisis Acústico, Inicialización de los HMMs y Entrenamiento de los Monofonemas. ... 39

Figura 18. Topología de los Modelos de Silencio Corto Sp... 40

Figura 19. Entrenamiento, alineamiento de los datos con el modelo sp y creación de los trifonemas. ... 41

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

Figura 21. Pantalla de Inicio del Programa. ... 46

(9)

Figura 23. Resultado de la Aplicación de Palabras Aisladas en Formato HTK... 50

Figura 24. Resultado de la Aplicación de Dígitos Conectados en Formato HTK... 50

Figura 25. Resultado a Nivel de Fonemas Aplicación Dígitos Conectados en Formato HTK ... 51

Figura 26. Resultado de la Aplicación de Palabras Aisladas en Formato NIST. ... 51

Figura 27. Resultado Aplicación Dígitos Conectados en Formato NIST. ... 52

Figura 28. Resultado a Nivel de Fonemas Aplicación Dígitos Conectados en Formato NIST... 52

Figura 29. Matriz de Confusión de la Aplicación de Palabras Aisladas... 53

Figura 30. Matriz de Confusión del Resultado de la Aplicación de Dígitos Conectados. . 53

Figura 31. Matriz de Confusión de Reconocimiento de fonemas de la Aplicación de Dígitos Conectados. ... 53

Figura 32. Representación de las Transcripciones Alineadas de la aplicación de Dígitos Conectados... 55

Figura 33. Contenido del Archivo de Configuración. ... 71

Figura 34. Contenido del Archivo listamfcc.txt. ... 72

Figura 35. Ejemplo de un Archivo de descripción de HMM. ... 73

Figura 36. Contenido del Diccionario Utilizado en la Aplicación de Palabras Aisladas... 76

Figura 37. Contenido del archivo Hmmdefs.mmf... 78

Figura 38. Ejemplo de un Archivo de Etiqueta Maestro. ... 79

Figura 39. Gramática Utilizada en la Aplicación de Dígitos Conectados... 79

Figura 40. Contenido del Diccionario Utilizado en la Aplicación de Dígitos Conectados. ... 80

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

Figura 42. Transcripciones de Nivel fonético. ... 82

Figura 43. Topología de los HMMs Utilizados... 84

Figura 44. Contenido de Archivo configuracion2.txt... 85

Figura 45. Creación del Archivo de Descripción de los HMMs con extensión MMF... 86

Figura 46. Contenido del Archivo Macros... 86

(10)

Figura 48. Tasa de los Tipos de Errores vs. SNR Aplicación Palabras Aisladas... 98

Figura 49. Gráfica de las Tasas de Reconocimiento vs. SNR de la Aplicación Dígitos Conectados... 100

Figura 50. Tipo De Errores vs. SNR Aplicación Dígitos Conectados. ... 100

Figura 51. Gráfica de las Tasas de Reconocimiento de fonemas vs. SNR de la Aplicación de Dígitos Conectados. ... 102

Figura 52. Gráfica de la Tasa de los Tipos De Errores vs. SNR Aplicación Dígitos Conectados a Nivel de Fonemas... 102

Figura 53. Estado de la Memoria Antes de la Inicialización... 110

Figura 54. Estado de la Memoria Después del Reconocimiento ... 111

(11)

LISTA DE TABLAS

Tabla 1. Grupos de herramientas de HTK Utilizadas en las Aplicaciones... 21

Tabla 2. Calculo de los resultados Obtenidos en Formato Básico 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. Número de Palabras Correctamente Reconocidas, Errores por Inserción y por Omisión de las Bases de Datos con SNRs en la Aplicación de Palabras Aisladas... 99

Tabla 6. Comportamiento del Reconocedor de Dígitos Conectados Frente al Ruido. ... 99

(12)

INTRODUCCIÓN

Durante las últimas décadas se ha estudiado la posibilidad de desarrollar interfaces hombre-máquina controlados por la voz para sustituir en ciertas aplicaciones a las interfaces tradicionales basadas en teclados, paneles o dispositivos similares. El Reconocimiento Automático de Voz (ASR) es un campo de investigación de creciente relevancia que día a día gana más adeptos. Los reconocedores actuales manejan cada vez vocabularios más grandes, logran menores tasas de error en reconocimiento y menores tiempos de procesamiento gracias al uso de algoritmos más eficientes, a la aparición de equipos más potentes y económicos, y al aumento de complejidad de estos sistemas, al emplearse modelados más sofisticados y refinados. No obstante, a pesar de los grandes avances realizados, se está todavía muy lejos de un sistema de reconocimiento automático de voz universal que funcione bien en cualquier aplicación a la que sea destinado.

A través de los años se han desarrollado diferentes tipos de programas para reconocimiento de voz que utilizan múltiples herramientas matemáticas 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.

(13)

modelos con los vectores de características generados para la palabra a reconocer. Al utilizar modelos ocultos de Markov se hace necesario construirlos, esta construcción tiene como contrapartida una fase de entrenamiento 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 versión 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, módulos y librerías escritas en lenguaje C. Estos fueron concebidos inicialmente para ser utilizados en ASR3, pero también se han utilizado en otras numerosas aplicaciones tales como síntesis del habla, reconocimiento de secuencias de DNA, reconocimiento de caracteres [Toselli04], etc. HTK es uno de los programas más completos y utilizados no sólo en el Reino Unido, también en Europa y Norte América; ha sido adoptado para varios tipos de idiomas como el danés [Frans04], alemán [Oba03], español, etc., debido a que se puede entrenar y adaptar con cualquier vocabulario y acento.

El programa HTK permite utilizar diferentes metodologías de entrenamiento de los HMMs. Debido a esto en el proyecto se propuso la posibilidad de utilizar la herramienta HTK en el proceso de construcción de dos aplicaciones de reconocimiento automático de voz, las cuales son: reconocimiento de palabras aisladas [Morales04] y reconocimiento de dígitos conectados. El objetivo principal de la construcción de los reconocedores, es explotar el uso de las herramientas utilizadas en el proceso. Con esto se busca brindar una metodología de desarrollo, documentándola 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 lingüísticas las palabras de un vocabulario específico, reconociendo una palabra ante una señal de entrada. Este tipo de reconocedores tiene muchas aplicaciones,

1

Software HTK. 2

http://htk.eng.cam.ac.uk.

(14)

por ejemplo se pueden utilizar en la ejecución de comandos dictados a una máquina 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 básicos para prender y apagar una máquina, con opción 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 números del cero al nueve, pronunciados de manera continua. Esta aplicación se llama dígitos conectados y es una aproximación 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 básica del habla. Por lo tanto esta clase de reconocedores requieren más trabajo en su construcción con respecto a los reconocedores de palabras aisladas. Una aplicación de este tipo de reconocedores es la del marcado automático del teléfono por medio de la voz.

Los sistemas reconocedores propuestos tienen la característica de ser dependientes del locutor, es decir sólo se reconoce la voz de una persona en particular. En un sistema dependiente del locutor es más probable que el porcentaje de reconocimiento sea mayor. Las muestras que va a tener el reconocedor sólo pertenecerán a un locutor, lo cual hace más fácil la tarea de reconocer el vocabulario. Además, otra especificación 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.

(15)

información suministrada por el usuario se limite al vocabulario del reconocedor, con características típicas de cada aplicación.

(16)

1. MARCO TEÓRICO

Este proyecto abarca dos aplicaciones de reconocimiento de voz, aislado y concatenado. La teoría de cada forma de reconocimiento de voz mencionada anteriormente se explica a continuación.

1.1 RECONOCIMIENTO DE PALABRAS AISLADAS4

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 más 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].

(17)

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 información de las características acústicas 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 envían órdenes a una máquina a través de comandos consistentes en una palabra de un pequeño vocabulario.

1.2 RECONOCIMIENTO DE VOZ CONECTADA6

En aplicaciones de reconocimiento de voz continua con pequeños vocabularios, a veces se utiliza el denominado reconocimiento de voz conectada. El término “voz conectada” se refiere a la estrategia de reconocimiento más que a la voz en sí misma. En general, la voz se pronuncia de una forma continua.

En esta técnica, la oración se decodifica conectando modelos y comparando la declaración completa con esos modelos concatenados. El sistema normalmente no intenta modelar efectos alofónicos presentes en las fronteras de las palabras, ni efectos de coarticulación intra- e inter- palabras. Hay una hipótesis implícita que es que aunque no se pueden localizar fronteras inequívocas entre palabras, las palabras están razonablemente bien articuladas.

1.3 PARAMETRIZACION DE LAS SEÑALES DE VOZ

El objetivo de la caracterización paramétrica de las señales de voz es transformar la voz de entrada en un conjunto de vectores que contengan toda la información discriminatoria presente en la señal.

(18)

Los Coeficientes Cepstrum en la Escala Mel (MFCCs - Mel-Frequency Cepstral Coefficients) han mostrado, en reconocimiento de voz, un rendimiento superior a otras técnicas de parametrización, como la técnica LPC. Para el cálculo MFCC se utiliza normalmente un determinado número de filtros triangulares paso-banda con un gran solape. Estos filtros están equiespaciados en la escala Mel de frecuencias. La salida de cada filtro se puede considerar que representa la energía de la señal dentro de la banda de paso de dicho filtro. Para calcular los parámetros MFCC se aplica una transformada discreta de coseno a las salidas de log-energía de estos filtros.

(

)

=      = N j j i j N i m N c 1 5 . 0 cos 2 π (1.1)

donde N es el número de filtros del banco de filtros y mj son las amplitudes del banco de filtros logarítmico.

Si una determinada señal de voz se parametriza en T vectores de observación, representados por O = {o1, o2, . . . , oT }, entonces se puede calcular la verosimilitud de generar esta señal 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 observación ot sea generada por su estado asociado st, y la probabilidad de la secuencia de estados calculada a partir de las probabilidades de transición.

1.4 RECONOCIMIENTO DE VOZ BASADO EN HMMS.7

Los modelos ocultos de Markov (HMM) son modelos estadísticos que pueden representar procesos aleatorios paramétricos. Estos son el enfoque estocástico más popular y con mayor éxito en el ámbito del reconocimiento de voz.

(19)

Un modelo oculto de Markov está compuesto de dos elementos básicos: un proceso de Markov y un conjunto de distribuciones de probabilidad de salida. Los estados del proceso de Markov están “ocultos” pero son observables de una manera indirecta a partir de la secuencia de vectores con información espectral extraídos de la señal de voz de entrada.

Los HMM en reconocimiento de voz se utilizan teniendo en cuenta dos hipótesis:

1. La voz se puede dividir en segmentos, estados, en los que la señal de voz se puede considerar estacionaria. Es decir, en la ventana de análisis la señal mantiene la estructura de principio a fin. Se asume que las transiciones entre segmentos contiguos son instantáneas.

2. La probabilidad de observación de que un vector de características se genere depende sólo del estado actual y no de símbolos anteriores. Esta es una suposición de Markov de primer orden, denominada hipótesis de independencia.

Ninguna de estas hipótesis es cierta para la señal de voz. Sin embargo, hasta el momento, los HMM estándar son los que se utilizan en la mayoría de los reconocedores de voz actuales.

1.4.1 Especificaciones de los HMMs

(20)
[image:20.612.127.484.72.275.2]

Figura 2. Generación 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 transición a otro estado (o al mismo estado si este dispone de una transición a si mismo) conforme a las probabilidades asociadas a los arcos de transición. Asociado a cada estado también existe una función de densidad de probabilidad que define la probabilidad de emitir un vector de observación 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

c

N

o

b

1

,

;

µ

(1.2)

(21)

Figura 3. Representación 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 observación son Gaussianas multivariables continuas.

2. La topología del modelo considera un estado de entrada y otro de salida no emisores.

Los estados no-emisores en la topología de HMM propuesta en HTK se utilizan para facilitar la conexión 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:

(22)

• Problema de estimación. Dada una secuencia de observaciones y un modelo, se busca como elegir una secuencia de estados que sea óptima en algún sentido.

• Problema de entrenamiento. Dada una secuencia de observaciones de

entrenamiento, se busca como obtener los parámetros 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 estimación de los parámetros del modelo λ, dada la secuencia de observación O = {o1, o2, . . . , oT } como datos de entrenamiento, tal que se maximice P(O|λ).

Típicamente, el método utilizado para lograr esto es la estimación Máxima Verosimilitud (ML - Maximum Likelihood). Para el caso de datos incompletos (tales como la secuencia oculta de estados) la estimación ML se puede calcular utilizando el algoritmo Esperanza-Maximización (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 aproximación iterativa para el cálculo de máxima verosimilitud que se utiliza para encontrar en cada paso una estimación del conjunto de parámetros λ, 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 maximización de la anterior verosimilitud se puede realizar maximizando una función auxiliar dada por:

Q(λ,λ^ )=∆

S s

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

(23)

La anterior función auxiliar se puede expandir y descomponer en funciones auxiliares separadas que se pueden maximizar de forma independiente, para obtener estimaciones para las probabilidades de transición entre estados, los pesos de las mezclas y los parámetros de las Gaussianas para el HMM propuesto. En concreto, para la estimación de pesos y parámetros 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. También se pueden obtener ecuaciones para la estimación de las probabilidades de transición de estado.

1.4.4 El problema de reconocimiento

En la práctica, 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.

(24)

(

)

{

P

i

O

}

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:

(

O

i

) (

P

O

i

)

P

|

ω

=

|

λ

(1.9)

X

max

arg

=

( )

= − T t t x x x x

x

b

o

a

t t

b

t

o

2

1

.

1

(

)

1 1

π

(1.10)

El cálculo 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 parámetro δ i(t) como la verosimilitud máxima 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 recursión:

δi(t) =

j

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

Las condiciones iniciales en este caso son:

(25)

δi(1) = a1ibi(o1) 2 ≤ i ≤ N – 1 (1.13)

El paso de terminación, la máxima 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.

(26)

2. ESPECIFICACIONES

El objetivo del trabajo de grado es utilizar correctamente las herramientas que provee HTK para reconocimiento automático de voz. Se buscó entender el procedimiento de utilización de las herramientas y además la metodología para el proceso de construcción de sistemas reconocedores utilizando HTK, todo con el fin de documentar los procesos realizados. Para esto se propuso desarrollar dos aplicaciones de reconocimiento automático de voz, las cuales son: reconocimiento de palabras aisladas y reconocimiento de dígitos 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.

(27)
[image:27.612.129.482.493.693.2]

Figura 4. Diagrama en Bloques Fase de entrenamiento.

En la fase de reconocimiento se evalúa el rendimiento del reconocedor frente a una señal desconocida. Tiene como entradas la red gramatical obtenida de la gramática 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 análisis acústico de las señales 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 análisis, el cual las compara con las palabras que fueron insertadas, obteniendo las estadísticas del sistema reconocedor. En la Figura 5. se puede obsevar el proceso descrito:

(28)

2.2 DÍGITOS CONECTADOS.

La aplicación de dígitos conectados es más compleja y por lo tanto la aplicación consta de más elementos que en la aplicación de palabras aisladas. En la primera fase de entrenamiento de esta aplicación, se realiza el análisis acústico de las señales de voz de la misma forma en que se utiliza en la aplicación anterior. El entrenamiento se realiza a nivel de fonemas del español Colombiano. Luego se inserta el modelo de silencio corto sp, el cual modela cualquier pausa introducida por el locutor entre palabras y después 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, después 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.

(29)
[image:29.612.128.481.69.273.2]

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

Después de haber explicado los componentes del proceso de creación de de los reconocedores, se explicaran las características 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 aplicación. El locutor escogido fue una persona adulta y de género 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 grabación. 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 aplicación de palabras aisladas tuvo como mínimo 79 repeticiones de cada palabra. En el caso de la aplicación de dígitos conectados se buscó que existiera un mínimo de 59 repeticiones por cada palabra.

(30)

conectados el número de estados de los modelos fue de cinco con tres estados emisores y dos no emisores, y el número 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 teórico de este documento.

Como función de observación se utilizaron las densidades Gausianas multivariables continuas.

Tamaño del vocabulario: Para la aplicación de palabras aisladas, el tamaño del vocabulario fue de 5 palabras y para la aplicación de números conectados el tamaño del vocabulario fue de 10 palabras (cada número del cero al nueve).

o Palabras aisladas: El sistema es capaz de reconocer una de las palabras, SI,

NO, PRENDER, APAGAR, y CANCELAR.

o Dígitos Conectados: El sistema reconoce una secuencia de seis números.

La interfaz del programa HTK, fue desarrollada en un computador bajo la plataforma Windows. Para su ejecución se necesita como mínimo un procesador de 400 MHz y 128 M de RAM.

(31)
(32)

3. DESARROLLOS

En este trabajo de grado, se desarrollaron dos sistemas de reconocimiento de voz: un reconocedor de palabras aisladas y un reconocedor de dígitos conectados, gracias a que el programa HTK permite utilizar diferentes metodologías de entrenamiento de los HMMs. Además se generó una interfaz gráfica del programa HTK para las dos aplicaciones propuestas. Para la construcción de los sistemas, se utilizaron las herramientas de preparación de datos, entrenamiento, reconocimiento y análisis de HTK. La construcción de los reconocedores permitió evaluar el proceso de utilización 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 automático 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 línea. 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

(33)

Una meta que buscó este trabajo de grado, fue la de facilitar la utilización 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 teóricamente los pasos necesarios en la construcción de los reconocedores y en el Anexo A de este documento, se pueden observar los comandos de línea utilizados en cada uno de los pasos propuestos en este capitulo junto con su correspondiente explicación.

A continuación se expondrá el proceso desarrollado en cada aplicación.

3.1 APLICACIÓN DE PALABRAS AISLADAS.

Los principales pasos para la construcción de ésta aplicación son:

• Creación de una base de datos para entrenamiento.

• Análisis acústico.

• Definición de los modelos.

• Entrenamiento de los modelos.

• Definición de la tarea.

• Reconocimiento de una señal de entrada desconocida, Base de datos de Prueba.

• Evaluación del sistema Reconocedor.

3.1.1 Grabación de la Señal de Voz.

(34)

las mismas condiciones y cada palabra se repitió un número de 20 veces. En general para la base de datos de entrenamiento se grabaron 299 señales de voz, y para la base de datos de prueba se obtuvieron 100 grabaciones en total.

Las señales de voz pertenecen a un sólo locutor masculino, debido a que la voz masculina presenta mejor comportamiento en el reconocimiento automático de voz.

3.1.2 Etiquetas de las Señales de Voz.

[image:34.612.146.465.417.641.2]

Cada señal de voz fue etiquetada, esto se realizó al asociar un texto (etiqueta) describiendo su contenido. Para etiquetar las señales, se utilizó la herramienta HSLab de HTK. Para la invocación de esta herramienta, fue necesario utilizar un archivo de configuración, para poder leer los archivos de voz en formato .wav. Al utilizar la herramienta HSLab, una interfaz gráfica 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:

(35)

Para cada señal 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 pequeño espacio entre ellas.

3.1.3 Análisis Acústico

Las herramientas de reconocimiento de voz de HTK, no pueden procesar las formas de onda de voz directamente sobre la señal, primero se deben parametrizar. Estas tienen que ser representadas en una forma más compacta y eficiente. Este paso es llamado “Análisis Acústico”. A continuación se presenta una explicación de lo realizado en este numeral, paso por paso:

• La señal fue segmentada en paquetes sucesivos, cuya longitud es de 30ms sobrelapandose 20ms sobre cualquier otra, logrando un 66.66% de sobrelapamiento.

• Cada paquete fue multiplicado por la función de Hamming, utilizando ventanas de una misma duración.

• Se extrajo un paquete de vectores de coeficientes acústicos, dando una representación compacta de las propiedades espectrales del paquete. En este proyecto se utilizó el análisis MFCC o análisis 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 energía total, 13 “coeficientes delta” y 13 “coeficientes de aceleración”. Todos los coeficientes en conjunto forman un vector de 39 coeficientes extraídos de cada señal de voz.

• El banco de filtros utilizado fue de 26 canales.

• Las señales tuvieron un pre-énfasis de primer orden con un coeficiente de 0.97.

(36)

Cabe resaltar que HTK permite utilizar otras clases de configuraciones. Se pueden utilizar funciones Gaussianas continuas o discretas, el porcentaje de sobrelapamiento esta a disposición del desarrollador y además se puede implementar otra clase de parametrizacion de la señal como lo es LPC.

La conversión desde la forma de onda original hacia una serie de vectores de coeficientes acústicos, se realizó con la herramienta HCopy de HTK.

3.1.4 Definición de los HMMs.

Se deben modelar eventos acústicos con los modelos ocultos de Markov [Rabiner66] para las palabras y el silencio (si, no, apagar, prender, cancelar y sil). Para cada una, se diseño un HMM. El primer paso para diseñarla es el de escoger una topología a priori para cada HMM:

- Numero de estados.

- Forma de las funciones de observación (Asociadas para cada estado). - Disposición de las transiciones entre estados.

No existe actualmente una regla fija para definir la topología [Deller93]. En esta aplicación, se escogió la misma topología para cada uno de los HMMs, que se encuentra en la Figura 9.

Figura 9. Topología básica de los HMMs.9

(37)

El modelo consiste realmente de 4 estados “activos”, {S2, S3, S4, S5}: El primer y el ultimo estado (aquí S1 y S6), son estados “no emisores” (sin función de observación), usados por HTK para algunas facilidades de implementación. Las funciones de observación bi son distribuciones Gaussianas con matrices diagonales. Las transiciones de probabilidades son nombradas aij. 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.

(38)

3.1.5.1 Inicialización

Antes de empezar el proceso de entrenamiento, los parámetros de los HMMs deben estar apropiadamente inicializados con los datos de entrenamiento para permitir una convergencia rápida y precisa de los algoritmos de entrenamiento. HTK ofrece 2 herramientas diferentes de inicialización: Hinit y HCompV.

• Hinit, inicializa los HMMs por alineación en tiempo de los datos de entrenamiento con el algoritmo de Viterbi [Forney73].

• Hcompv, ejecuta una inicialización “absoluta” del modelo. Para cada estado de los HMMs la herramienta muestra la media y los vectores de varianza, estos son computados globalmente sobre todo el cuerpo de entrenamiento.

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

Por otro lado también se invocó Hcompv, que además 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 pequeña y que por consecuencia causara un error numérico en los cálculos, según lo recomendado en el manual de HTK.

(39)

Figura 11. Diagrama de flujo: Inicialización de los parámetros 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-estimación por Baum-Welch [Baum66], la cual es utilizada para ejecutar una re-estimación e iteración de los valores óptimos para los parámetros de los HMM (probabilidades de transición, media y vectores de varianza para cada función de observación

El uso de esta herramienta se repitió continuamente en el transcurso del entrenamiento de cada HMM. En cada ocasión, la iteración de HRest, muestra sobre la pantalla la verosimilitud, indicando la convergencia, y además el cambio de la medida de ésta. En el preciso momento en el que ésta medida no disminuyo en valor absoluto, desde una iteración 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 información acerca del proceso de inicialización de los HMMs referirse al manual de HTK

(40)
[image:40.612.207.402.89.301.2]

Figura 12. Diagrama en flujo: Re-estimación de los parámetros 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 parámetros tendrá como consecuencia el resultado de los HMMs entrenados.

3.1.6 Diccionario y Gramática.

Antes de usar los modelos de palabras, se tiene que definir una arquitectura básica para el reconocedor (la tarea de gramática). Primero se definió la más simple: Un silencio inicial (sil), seguida de una sola palabra, y luego un silencio final (sil).

(41)

3.1.6.1 La Red.

[image:41.612.123.492.259.474.2]

La tarea de gramática se compiló con la herramienta HParse para obtener la red de tarea. La red de la gramática, es la red que indica como se reconocerán las palabras, es decir, si se reconocerán después de un silencio inicial y un silencio final, etc. En el caso de palabras aisladas esta red es más sencilla que la red de la aplicación de números 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 duración del silencio. Cada modelo del vocabulario del reconocedor, se reconoce una sola vez.

3.1.7 Reconocimiento.

(42)

- Primero se transformó una señal de voz de entrada (.wav), a una serie de “vectores acústicos”, con la herramienta HCopy, de la misma forma como se realizó con los datos de entrenamiento.

- La entrada de observación 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 señales de entrada, es decir las palabras reconocidas por el sistema. En este proyecto, de una señal 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 aparición en los archivos de audio varia mucho en cada uno.

3.1.8 Evaluación del Reconocedor

La evaluación 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 deberán estar etiquetadas y convertidas a la parametrización 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.

(43)

- La segunda deberá contener las transcripciones del reconocedor de todo el cuerpo de prueba, estas son, las transcripciones hipotéticas producidas por el reconocedor.

3.1.8.2 Tasa de Reconocimiento

La medida del rendimiento del reconocedor resultará de la comparación entre las transcripciones de referencia y las hipótesis de reconocimiento de cada dato. Estos son comparados al ejecutar la herramienta de evaluación HResults.

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

- Estadísticas 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 oración, además 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 gramática sólo permite “oraciones” con una sola palabra (aparte de los silencios). Esta es por consiguiente, una tarea de reconocimiento de palabras aisladas.

3.2 APLICACIÓN DE DÍGITOS CONECTADOS.

(44)

nivel de fonemas y trifonemas utilizando un modelo de silencio corto entre palabras. Toda la información de los comandos de línea y arquitectura de los archivos utilizados para la construcción de este reconocedor se pueden observar en el Anexo A de este documento.

El proyecto siguió los siguientes pasos para la finalización del reconocedor en esta aplicación:

• Definición de la tarea del reconocedor. Gramática y Diccionario.

• Creación de las bases de datos de entrenamiento y de pruebas.

• Etiquetas de las señales de voz.

• Análisis acústico.

• Definición de los modelos.

• Entrenamiento de los modelos monofonemas.

• Inserción del modelo de silencio corto.

• Entrenamiento de los monofonemas con el silencio corto.

• Construcción de los modelos de los trifonemas.

• Entrenamiento de los trifonemas.

• Reconocimiento a una señal desconocida.

• Evaluación del reconocedor.

3.2.1 Definición de la Tarea del Reconocedor. Gramática y Diccionario.

(45)

La gramática 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 Aplicación de Dígitos Conectados.

Cabe resaltar que la anterior representación de la gramática es introducida por el usuario a su conveniencia, manipulando el archivo que contiene la gramática. El reconocedor de HTK requiere una red de palabras, la cual tiene que ser definida empleando una notación de nivel bajo llamada Standard Lattice Format SLF en la que cada palabra y cada transición que exista de palabra a palabra es listada de forma explícita. Esta red de palabras fue creada automáticamente desde la gramática del reconocedor, usando la herramienta Hparse de la misma forma en que se utilizó en la aplicación anterior.

Después de haber definido la gramática del reconocedor, se tiene que crear el diccionario del sistema. El primer paso para la construcción del diccionario, es hacer un listado de las palabras requeridas. En esta aplicación, el contenido del diccionario varía con respecto a la aplicación de palabras aisladas, debido a que el reconocimiento de palabras en esta aplicación, se realizó a nivel de fonemas. El formato general del diccionario es:

UNO [símbolo de salida] p1 p2 p3 …. sp

(46)

símbolo que el reconocedor mostrará cuando reconozca la palabra UNO. En el caso en que se omitan los paréntesis, la palabra misma será la salida del sistema. Si no se incluye nada dentro de los paréntesis, 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 pronunciación de las palabras. Este modelo se explicará con más detenimiento en los siguientes capítulos. Hay que resaltar que el diccionario debe seguir el orden alfabético del código ASCII. En el Anexo A de este documento se puede observar el contenido del diccionario utilizado en el sistema reconocedor.

3.2.2 Grabación de las Señales de Voz.

Las bases de datos se grabaron bajo las mismas características que las señales de voz de la aplicación de palabras aisladas. En la base de datos de entrenamiento se grabaron 117 archivos que contenían secuencias de seis números cada uno, estas secuencias fueron creadas por la herramienta Hsgen de HTK, al tomar la gramática del reconocedor y generar un listado aleatorio de las palabras utilizadas en la aplicación, esta lista se puede observar en el Anexo C. Cada palabra se grabo un número mínimo de 59 repeticiones cada una.

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

3.2.3 Etiquetas de las Señales de Voz.

(47)
[image:47.612.129.485.236.451.2]

Para entrenar un conjunto de HMMs, todos los archivos de datos de entrenamiento deben tener una transcripción 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, además se necesitaría una base de datos del español Colombiano para poder realizar este procedimiento.

Figura 15. Etiquetas de las Señales de Voz con Hslab.

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

(48)

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 pronunciación descrita en el diccionario y además coloca el modelo de silencio al inicio y al final de cada expresión, debido a que la cadena de números se reconocerá después 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 Codificación de los Datos.

La fase final de la preparación 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 aplicación de palabras aisladas, utilizando la misma configuración.

3.2.5 Creación 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 aplicación, debido a que el programa no permitía el uso de la letra k como un fonema. Cada fonema junto con sil forman los HMMs del sistema.

(49)

Figura 16. Topología 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 número de veces que se han entrenado o manipulado los modelos.

La inicialización de los modelos se llevó a cabo con la herramienta Hcompv, de igual forma a como se realizó en la aplicación 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 además de esto, tienen un propósito similar.

Después de la inicialización, se entrenaron los modelos del directorio HMM0 al HMM1. El entrenamiento se realizó con la herramienta Herest, la cual ejecuta una reestimación embebida. Esto significa que se actualizarán simultáneamente todos los modelos del sistema, usando todas las muestras de entrenamiento. Para ello, se ignora toda la información de segmentado en las etiquetas, puesto que sólo interesa conocer el mensaje que contiene la frase. En cada ocasión que se invocó Herest, esta herramienta ejecutó una sola reestimación. Cada nuevo conjunto de HMMs fue guardado en un nuevo directorio.

(50)

A continuación en la Figura 17. se presenta el diagrama en bloques del proceso realizado:

Figura 17. Inserción de las Etiquetas, Análisis Acústico, Inicialización 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 más robusto al permitir estados individuales para absorber los ruidos impulsivos en los datos de entrenamiento. Esto se realizó al añadir transiciones extras de los estados 2 a 4 y 4 a 2 en el modelo de silencio y dejar el estado central igual.

(51)

Figura 18. Topología 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 añadir 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 añaden transiciones a las matrices de transiciones propuestas y además crean un estado atado. Los parámetros del estado atado son guardados en un archivo con cada uno de los modelos, en general los parámetros del estado original son reemplazados por el nombre del macro, los macros serán descritos más adelante. Es importante recalcar que esta herramienta es el mecanismo que utiliza HTK para compartir los parámetros.

(52)

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 creación 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 transcripción 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 parámetros 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:

(53)

3.2.8 Construcción 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 transcripción de los trifonemas es referido a palabras internas. Cabe notar que algunos difonemas se generaron debido a que los límites de las palabras algunas veces incluyen dos fonemas o los difonemas no se pueden atar con los modelos de sp.

La creación 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 transición de los modelos sp y sil, dado que ninguno de los modelos es dependiente del contexto y no contienen ninguna matriz que atar.

(54)

Una vez que los modelos dependientes del contexto11 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 estadísticas de ocupación de los estados. En combinación 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 reestimación se realizó nuevamente dos veces, y el conjunto de los modelos resultantes fue grabado en el directorio HMM12.

3.2.9 Creación 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 transición de los fonemas. El ultimo paso en el proceso de construcción de los modelos, es el de atar los estados con el conjunto de los trifonemas para compartir datos y de esa manera poder hacer estimaciones de parámetros robustos.

En la construcción de los trifonemas desde los monofonemas, los comandos fueron utilizados explícitamente para atar conjuntamente todos los miembros del conjunto de las matrices de transición. Sin embargo, la elección de cual estado hay que atar requiere más cuidado dado que el rendimiento del reconocedor depende crucialmente de que capture de forma acertada las estadísticas de distribución 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-conducido12 y utiliza una medida similar entre estados. El segundo utiliza árboles de decisión y se basa en hacer interrogantes acerca de los contextos de izquierda y derecha de cada trifonema.

(55)

Los árboles de decisión 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á ningún 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 transición; entonces estos modelos serán idénticos.

Después que Hhed ha sido implementado, el efecto de atar los modelos puede ser estudiado. Como consecuencia de la invocación de la herramienta se creó un archivo en el cual se pudo encontrar un resumen de las estadísticas; este archivo entregó el número total de estados físicos que permanecieron y el número de los modelos resultantes luego de compactarlos.

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

(56)

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 confusión. Este fue un problema crítico encontrado en la aplicación de dígitos conectados. El programa al ejecutar la herramienta Hvite, encontró un error denominado error 8231, el cual se generó debido a que no podía encontrar un modelo en la lista de los modelos propuestos. Este error se arreglo al forzar la expansión de la red de palabras internas requeridas por medio del archivo de configuración.

(57)

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 más 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 gramática del reconocedor.

• Resultados de reconocimiento a nivel de fonemas.

• Matrices de confusión de los fonemas y palabras.

3.3 INTERFAZ GRÁFICA DE HTK

Uno de los objetivos del proyecto fue desarrollar una interfaz amigable del programa HTK. Esta fase se desarrolló en código de Visual Basic, permitiendo la ejecución de los comandos utilizados en la construcción de los reconocedores mencionados anteriormente.

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

(58)
[image:58.612.172.441.194.403.2]

El proceso de la implementación de la interfaz, guía al usuario en los diferentes pasos necesarios para la construcción de reconocedores de palabras aisladas y palabras conectadas. En la segunda pantalla se pueden observar los botones para cada aplicación propuesta (Habla Conectada y Palabras Aisladas), los cuales se pueden observar en la Figura 22.

Figura 22. Segunda Pantalla de la Interfaz.

(59)

4. ANÁLISIS DE RESULTADOS

Los resultados obtenidos se dividieron en tres grupos, los cuales son: presentación de la interfaz desarrollada, evaluación de los sistemas de aplicación de palabras aisladas y dígitos conectados y por ultimo la evaluación de la construcción de los sistemas de reconocimiento de voz utilizando HTK. En este último se realizará más énfasis, debido a su importancia en los objetivos del proyecto.

Con respecto a la evaluación de los sistemas reconocedores desarrollados, se realizaron pruebas con señales “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 adición de ruido blanco llamada Awgn. La información sobre el rendimiento de los reconocedores y los resultados obtenidos se pueden observar en el Anexo B de este documento.

En relación 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 mínimo.

• La información introducida por parte del usuario es única y exclusivamente la correspondiente al vocabulario, inserción de las etiquetas y gramática del reconocedor.

• Se implementó la metodología utilizada en el proyecto, para la construcción de sistemas reconocedores utilizando la interfaz desarrollada.

(60)

• La interfaz no sólo entrena los modelos ocultos de Markov, también efectúa el reconocimiento de los mismos.

Toda la información acerca de la utilización del programa se podrá encontrar en el manual del usuario de la interfaz de Reconocimiento de Voz Utilizando HTK.

Finalmente, el proceso de evaluación de la construcción de los sistemas de reconocimiento de voz desarrollados utilizando HTK, fueron evaluados teniendo en cuenta los siguientes tópicos:

• Herramienta de Análisis: En este tópico se estudia la herramienta de análisis Hresults, la cual generó las estadísticas de reconocimiento, error, matriz de confusión y las transcripciones alineadas de las aplicaciones propuestas.

• Evaluación del proceso de entrenamiento de los modelos ocultos de Markov HMM, con respecto al tiempo utilizado en el desarrollo de sus pasos.

• Evaluación del proceso de reconocimiento: Se evaluó el tiempo y recursos utilizados por el sistema para lograr al resultado final de las dos aplicaciones.

• Evaluación de la complejidad en la ejecución de las herramientas.

4.1 HERRAMIENTA DE ANÁLISIS

Figure

Figura 2.  Generación de los Modelos de Markov de Izquierda a Derecha.8
Figura 4.  Diagrama en Bloques Fase de entrenamiento.
Figura 7.  Diagrama en Bloques de la Etapa de Reconocimiento.
Figura 8.  Interfaz Gráfica al invocar la herramienta Hslab.
+7

Referencias

Documento similar

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

entorno algoritmo.

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

Por lo tanto, en base a su perfil de eficacia y seguridad, ofatumumab debe considerarse una alternativa de tratamiento para pacientes con EMRR o EMSP con enfermedad activa

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

Presenta una evaluación de diferentes técnicas de procesamiento de la señal de voz para la obtención de vectores característicos en aplicaciones de reconocimiento de hablantes,