Full text
PROYECTO FIN DE CARRERA INGENIERÍA DE TELECOMUNICACIÓN MARZO 2012 AUTOR: DIEGO MOLINA MIRAVALLES DIRECTOR: DR. EDUARDO LLEIDA SOLANO DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA Y COMUNICACIONES ÁREA DE TEORÍA DE LA SEÑAL Y COMUNICACIONES SIMULACIÓN DE VOCES A TRAVÉS DE UN CONVERSOR TEXTO-VOZ BASADO EN MODELOS OCULTOS DE MARKOV
i Agradecimientos A Eduardo, por su dedicaci´on y paciencia. Tambi´en a Antonio y Kike, por echarme una mano. A mis amigos/as, por estar siempre ah´ı. A Laura, por estar d´ıa tras d´ıa apoy´andome. A mis padres, por sus consejos y ´animos.
iii SIMULACI´ ON DE VOCES A TRAV´ ES DE UN CONVERSOR TEXTO-VOZ BASADO EN MODELOS OCULTOS DE MARKOV RESUMEN Una parte importante de los sistemas de inteligencia ambiental la constituye el interfaz hombre-m´aquina, y dentro de ´este la s´ıntesis de voz. La s´ıntesis de voz consiste en la producci´on artificial de voz humana. Los principales retos de los conversores texto-voz son la producci´on de una voz artificial inteligible y natural, la completa automatizaci´on del proceso y que el texto necesario para la s´ıntesis no provenga de una modificaci´on del lenguaje original. A lo largo de este proyecto se ha puesto en marcha un sistema completo de conversi´on texto-voz de ´ultima generaci´on basado en la s´ıntesis de voz por modelos ocultos de Markov. Para llevarlo a cabo se han empleado algoritmos de adaptaci´on de modelos ac´usticos, concretamente Maximum A Posteriori y Maximum Likelihood Linear Regression. Estos algoritmos permiten obtener una voz sintetizada a partir de pocas muestras de voz y no fon´eticamente balanceadas del locutor deseado, pues utilizan como base otros registros que s´ı est´an fon´eticamente balanceados entrenados previamente para la s´ıntesis. Para realizar este proceso de conversi´on texto-voz se ha elaborado una base de datos, tanto de un locutor gen´erico como del locutor a adaptar, y su representaci´on escrita. Se ha realizado un proceso de entrenamiento, consistente en la elaboraci´on de los modelos ac´usticos empleados en la s´ıntesis, aplicando distintos algoritmos para el c´alculo de los modelos. Finalmente se han aplicado los algoritmos adaptativos descritos anteriormente. Una vez obtenidos los modelos ac´usticos se ha procedido a generar voz artificial siguiendo el modelo digital de producci´on del habla, excitaci´on m´as filtro. El resultado del proceso es una voz artificial que busca asemejarse a la voz original, semejanza que se ha evaluado mediante programaci´on din´amica. Por ´ultimo, se ha elaborado una aplicaci´on web que, sirvi´endose del sistema de s´ıntesis elaborado, servir´a para crear un banco de voces de los usuarios que la empleen.
´ Indice general 1 Introducci´on y alcance del proyecto. 1 1.1 Planteamiento del problema y motivaci´on. . . . . . . . . . . . . . . 1 1.2 S´ıntesis de voz. Antecedentes. . . . . . . . . . . . . . . . . . . . . . 2 1.3 Objetivos................................. 4 1.4 Estructura de la memoria. . . . . . . . . . . . . . . . . . . . . . . . 5 2 S´ıntesis mediante modelos ocultos de Markov. 7 2.1 Datos necesarios para el entrenamiento. . . . . . . . . . . . . . . . . 9 2.1.1 Frecuencia fundamental. . . . . . . . . . . . . . . . . . . . . 9 2.1.2 Informaci´on espectral. . . . . . . . . . . . . . . . . . . . . . 10 2.2 Modelos de las caracter´ısticas de la voz empleados en s´ıntesis. . . . 12 2.2.1 Modelo para el pitch. . . . . . . . . . . . . . . . . . . . . . . 12 2.2.2 Modelo para el espectro. . . . . . . . . . . . . . . . . . . . . 15 2.2.3 Modelo para la duraci´on. . . . . . . . . . . . . . . . . . . . . 16 2.3 Entrenamiento de los modelos. . . . . . . . . . . . . . . . . . . . . . 17 2.3.1 Modelos iniciales. . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3.2 Mejora de los modelos iniciales mediante el algoritmo de Viterbi. ............................. 17 2.3.3 Refinamiento de los modelos aplicando el algoritmo de Baum-Welch. .......................... 20 2.3.4 T´ecnicas de clustering empleando ´arboles de decisi´on. . . . . 22 2.4 T´ecnicas de adaptaci´on. . . . . . . . . . . . . . . . . . . . . . . . . 24 2.4.1 Maximum Likelihood Linear Regression. . . . . . . . . . . . 24 v
vi ´ INDICE GENERAL 2.4.2 Maximum A Posteriori. . . . . . . . . . . . . . . . . . . . . . 26 2.5 Generaci´ondevoz. ........................... 27 2.5.1 Obtenci´on de los par´ametros ac´usticos a partir de los HMM. 27 2.5.2 Obtenci´on de voz a partir de los par´ametros ac´usticos. . . . 31 3 Entrenamiento de los modelos ocultos de Markov. 35 3.1 Datosiniciales. ............................. 35 3.2 Preparaci´on de los datos. . . . . . . . . . . . . . . . . . . . . . . . . 37 3.2.1 Se˜nales de audio . . . . . . . . . . . . . . . . . . . . . . . . 37 3.2.2 Ficheros de texto . . . . . . . . . . . . . . . . . . . . . . . . 38 3.3 Entrenamiento de los HMMs con HTS para la voz base. . . . . . . . 39 3.3.1 Obtenci´on de los modelos iniciales. . . . . . . . . . . . . . . 39 3.3.2 Modelos contextuales. . . . . . . . . . . . . . . . . . . . . . 41 3.3.3 Re-estimaci´on de los modelos. . . . . . . . . . . . . . . . . . 42 3.3.4 C´alculo de la varianza global . . . . . . . . . . . . . . . . . . 44 3.4 Entrenamiento de los HMMs con HTS para la voz adaptada. . . . . 44 3.4.1 ´ Arboles de clases de regresi´on. . . . . . . . . . . . . . . . . . 44 3.4.2 Entrenamiento adaptativo: MLLR + MAP. . . . . . . . . . . 46 3.5 Conversi´on de los modelos a formato hts engine. . . . . . . . . . . . 46 4 Generaci´on de voz. 49 4.1 Generaci´on de voz con HTS. . . . . . . . . . . . . . . . . . . . . . . 49 4.1.1 Procesado del texto a sintetizar. . . . . . . . . . . . . . . . . 50 4.1.2 Selecci´on de modelos. . . . . . . . . . . . . . . . . . . . . . . 51 4.2 SistemavivoSinte............................. 53 4.2.1 Inicializaci´on del sistema. . . . . . . . . . . . . . . . . . . . 53 4.2.2 Procesado del texto a sintetizar. . . . . . . . . . . . . . . . . 54 4.2.3 Generaci´on de voz. . . . . . . . . . . . . . . . . . . . . . . . 55 5 Resultados y aplicaciones. 59 5.1 Resultados. ............................... 59 5.2 Aplicaciones. .............................. 63
´ INDICE GENERAL vii 6 Conclusiones y l´ıneas futuras. 65 Bibliograf´ıa 67 A Modelos ocultos de Markov. 71 A.1 Cadena de Markov de primer orden. . . . . . . . . . . . . . . . . . . 71 A.2 Modelos ocultos de Markov (HMM). . . . . . . . . . . . . . . . . . 73 B Formato de las etiquetas. 75 C Algoritmos de adaptaci´on. 79 C.1 Maximum Likelihood Linear Regression. . . . . . . . . . . . . . . . 79 C.2 Maximum A Posteriori. . . . . . . . . . . . . . . . . . . . . . . . . . 82
21.2. S´ıntesis de voz. Antecedentes. •Ayuda a la docencia. •Lectura de documentos. Desde el Grupo de Tecnolog´ıas de las Comunicaciones (GTC) de la Universidad de Zaragoza se han venido desarrollando sistemas de s´ıntesis basados en la concatenaci´on de difonemas. Este proyecto nace movido por la necesidad de establecer las bases de un sistema de s´ıntesis por modelos ocultos de Markov para la lengua castellana. La principal ventaja que ofrece este tipo s´ıntesis frente a los sistemas de concatenaci´on de difonemas es, que la cantidad de locuciones necesarias para obtener buenos resultados es mucho menor sin que esto influya considerablemente en la calidad de la voz generada artificialmente. 1.2 S´ıntesis de voz. Antecedentes. El mecanismo de producci´on de la voz en los seres humanos consiste en la emisi´on de un flujo de aire desde los pulmones con la intensidad adecuada para hacer vibrar las cuerdas vocales. Las partes del cuerpo humano implicadas en este proceso son: pulmones, tracto vocal y cuerdas vocales. Los sonidos producidos por la voz humana pueden ser clasificados como sonoros o sordos. Los sonidos sonoros son producidos mediante la vibraci´on de las cuerdas vocales, mientras que los sordos provienen de las contracciones de alguna secci´on del tracto vocal. A nivel de an´alisis de se˜nal, los sonidos sonoros presentan una marcada periodicidad, mientras que los sonidos sordos son de naturaleza aperi´odica. La s´ıntesis del habla consiste en generar una voz a partir de una representaci´on escrita; el t´ermino empleado en ingl´es resulta muy esclarecedor: Text-To-Speech (de texto a voz). Existen diversos tipos de s´ıntesis, entre los que destacan: •S´ıntesis concatenativa por selecci´on de unidades: se parte de una base de datos que se segmenta en frases, palabras, s´ılabas y fonemas. Para producir la voz se concatenan estos segmentos pregrabados. Se obtiene una voz muy
Cap´ıtulo 1. Introducci´on y alcance del proyecto. 3 natural pero para ello es necesaria una base de datos de voz y texto muy amplia, lo que en algunos casos la hace inviable. Es la t´ecnica empleada por el GTC. •S´ıntesis por formantes: la voz se genera a partir de un tren de pulsos introducido en un banco de filtros. Cada uno de los filtros modela una de las resonancias del tracto vocal. Se consigue una voz muy inteligible pero tambi´en demasiado rob´otica. •S´ıntesis articulatoria: se obtiene la voz a partir de par´ametros relacionados con la forma del tracto vocal y las distintas articulaciones bucales. No se han alcanzado niveles elevados de calidad todav´ıa. •S´ıntesis mediante modelos ocultos de Markov (HMMs:Hidden Markov Models): objeto de estudio en este proyecto. Analiza las propiedades estad´ısticas de las se˜nales de audio y genera unos modelos a partir de los cuales, mediante un sistema de excitaci´on m´as filtro, se obtiene la voz artificial. Ha sido m´as empleado para reconocimiento que para s´ıntesis. Las principales caracter´ısticas de los sistemas basados en HMMs son: - Requieren menos cantidad de memoria para funcionar. - Proporcionan una voz m´as artificial que la s´ıntesis concatenativa, pero m´as inteligible. - Permiten cambiar caracter´ısticas de la voz o el estilo de locuci´on. - Resultan muy ´utiles y sencillas para la adaptaci´on de voces a partir de muy pocas frases. El proceso de s´ıntesis mediante modelos ocultos de Markov consta de tres etapas bien diferenciadas, que se muestran en la Figura 1.1. Figura 1.1. Etapas del proceso de s´ıntesis mediante HMMs.
41.3. Objetivos. En los pr´oximos cap´ıtulos se expondr´an en detalle cada una de estas partes, pero para tener una visi´on general, a continuaci´on se expone una breve explicaci´on de cada una de ellas: •Obtenci´on de las se˜nales de audio: se graba al locutor a adaptar diciendo unas frases adecuadamente elegidas. •An´alisis de la base de datos: partiendo de los ficheros de audio y sus correspondientes transcripciones de texto, se obtienen los par´ametros espectrales y la frecuencia fundamental. •Entrenamiento de los HMMs: con los datos obtenidos en la etapa anterior se generan unos modelos iniciales que paso a paso se ir´an mejorando mediante algoritmos recursivos hasta obtener los modelos finales. •Generaci´on de voz artificial: en base a un texto introducido por el usuario, se genera una voz artificial siguiendo el modelo digital de producci´on del habla, excitaci´on m´as filtro. 1.3 Objetivos. El principal objetivo de este proyecto es establecer las bases de un sistema de s´ıntesis mediante HMMs para la lengua castellana. La s´ıntesis se realizar´a mediante m´etodos de adaptaci´on, que permiten generar una voz artificial bastante semejante a la original a partir de muy pocas muestras de audio del locutor a adaptar. Por otro lado, se plantea tambi´en un an´alisis de similitud de voces y el desarrollo de una aplicaci´on web para la adquisici´on de un banco de voces. El an´alisis de similitud entre las voces originales y las voces artificiales generadas se realiza mediante un alineamiento temporal a trav´es de un algoritmo de programaci´on din´amica. La aplicaci´on web desarrollada permitir´a obtener una amplia base de datos de locutores y modelos que ayuden a la mejora del m´etodo de s´ıntesis empleado. Esta aplicaci´on contar´a con un interfaz en el que, mediante un nombre de identificaci´on y una contrase˜na, se permitir´a al usuario generar su propia voz artificial.
Cap´ıtulo 1. Introducci´on y alcance del proyecto. 5 Por ´ultimo, esta memoria pretende servir de gu´ıa de uso del s´ıstema de s´ıntesis propuesto y facilitar futuros trabajos e investigaciones del GTC. 1.4 Estructura de la memoria. Tras este breve cap´ıtulo de introducci´on el resto de la memoria se estructura de la siguiente forma: •En el Cap´ıtulo 2 se desarrolla una exposici´on te´orica sobre las s´ıntesis mediante HMMs. Comienza con una explicaci´on sobre los datos necesarios para la s´ıntesis, centr´andose despu´es en los tipos de modelos y los par´ametros de salida de ´estos. A continuaci´on, se explican los conceptos te´oricos que est´an detr´as de todo el proceso de entrenamiento de los modelos, desde la creaci´on de los modelos iniciales a la adaptaci´on a locutor. Se finaliza el cap´ıtulo con los fundamentos te´oricos de la generaci´on de voz artificial. •En los cap´ıtulos 3 y 4 se explican en detalle todos los pasos que envuelven el proceso de s´ıntesis. El Cap´ıtulo 3 se centra en el proceso de entrenamiento de los modelos con el programa HTS. Se explican los distintos pasos, las funciones empleadas, los ficheros necesarios a la entrada y los producidos a la salida. En el Cap´ıtulo 4 se expone el sistema de generaci´on de voz vivoSinte y la herramienta en la que ´este se basa, hts engine. Se explican los distintos pasos seguidos para la generaci´on y los procedimientos empleados por el sistema vivoSinte. •En el Cap´ıtulo 5 se presenta el estudio de la distorsi´on existente entre se˜nales originales y sintetizadas. Por otro lado se expone la aplicaci´on Web desarrollada. •En el Cap´ıtulo 6 se analizan los resultados, se exponen las conclusiones del proyecto y se proponen l´ıneas futuras de trabajo.
Cap´ıtulo 2 S´ıntesis mediante modelos ocultos de Markov. Los modelos ocultos de Markov (HMMs:Hidden Markov Models [19][3]) son procesos doblemente estoc´asticos, formados por una secuencia de estados, que no es observable y de ah´ı la denominaci´on de ocultos, y por la salida de cada uno de ellos. Los HMMs pueden ser discretos o continuos, los valores de salida de cada estado de los modelos discretos pertenecen a un conjunto finito de posibles valores, mientras que en los modelos continuos el dominio es infinito. En el Ap´endice A se lleva a cabo una explicaci´on detallada de la estad´ıstica de los HMMs. Para la s´ıntesis de voz se emplean modelos continuos, puesto que las caracter´ısticas de las se˜nales de voz toman valores continuos. Estas caracter´ısticas tendr´an una funci´on densidad de probabilidad tambi´en continua, normalmente Gaussiana. El proceso de s´ıntesis consta de dos partes fundamentales. La Figura 2.1 muestra un peque˜no esquema de este proceso. La primera parte consiste en la obtenci´on de los HMMs para las tres caracter´ısticas principales que definen una se˜nal de voz: la frecuencia fundamental, el espectro y la duraci´on. Como el objetivo es generar una voz artificial lo m´as parecida posible a la original, con un n´umero limitado de frases del locutor, el proceso de entrenamiento se divide en dos partes. Por un lado, se generan unos 7
8 modelos preliminares a partir del procesado de unas se˜nales de voz base y sus correspondientes transcripciones en texto. Este proceso consta de cuatro fases fundamentales: •Elaboraci´on de unos modelos iniciales. •Mejora de los modelos iniciales mediante el algoritmo de Viterbi. •Refinamiento de los modelos aplicando el algoritmo de Baum-Welch. •T´ecnicas de agrupamiento o clustering empleando ´arboles de decisi´on. Una vez obtenidos estos modelos preliminares, se les aplicar´a una fase de adaptaci´on en la que se generar´an unos modelos finales adaptados al locutor que nos ocupe. Tras obtener los modelos adaptados, la segunda parte consiste en la generaci´on de una voz artificial a partir de estos modelos y un texto introducido por el usuario. El objetivo final es obtener una voz artificial lo m´as parecida posible a la voz original. La generaci´on de la voz se realiza mediante el modelo digital de producci´on del habla, excitaci´on m´as filtro. Figura 2.1. Esquema del proceso de s´ıntesis mediante HMMs.
Cap´ıtulo 2. S´ıntesis mediante modelos ocultos de Markov. 9 2.1 Datos necesarios para el entrenamiento. El proceso de entrenamiento necesita de una base de datos bien elaborada, compuesta por un conjunto de se˜nales de voz y sus correspondientes representaciones escritas en el idioma en el que se desee entrenar, tanto para la voz base como para la voz a adaptar. Mediante un an´alisis exhaustivo de esta base de datos, el entrenamiento da como resultado los modelos que son necesarios para la s´ıntesis. Para poder realizar el entrenamiento es necesario un procesado previo de las representaciones escritas, que consiste en el segmentado y etiquetado de estas oraciones. Una vez realizado ´este, tendremos una base de datos de etiquetas que nos dar´an informaci´on sobre la sucesi´on, posici´on dentro de la frase, duraci´on y la entonaci´on con que se pronuncia cada fonema en la grabaci´on. Por ´ultimo, las se˜nales de voz tambi´en se someten un preprocesado en el que se extrae cierta informaci´on relacionada con la frecuencia fundamental (en ingl´es pitch), el espectro y la duraci´on. 2.1.1 Frecuencia fundamental. La frecuencia fundamental o pitch, estrictamente hablando, est´a relacionada con la percepci´on del tono. En el dominio temporal, se asocia el pitch con el periodo de la se˜nal de voz, mientras que en el dominio de la frecuencia, el pitch es la separaci´on frecuencial entre dos formantes consecutivos en sonidos con cierta sonoridad, y por tanto, periodicidad. Se denominan formantes a los picos que aparecen en el espectro sonoro de las vocales, independientemente del tono. La frecuencia fundamental de la voz del ser humano oscila entre 70 y 400 Hz, siendo m´as baja para los hombres (voz m´as grave), que para las mujeres (voz m´as aguda). Por tanto, se trata de un par´ametro caracter´ıstico de cada locutor, que permite diferenciar y reconocer su voz, y est´a vinculado con la frecuencia fundamental de vibraci´on de las cuerdas vocales. Aqu´ı se debe distinguir entre sonidos sonoros, que poseen cierta periodicidad y cuyo pitch tomar´a valores dentro del rango 70-400 Hz, y los sonidos sordos que son aperi´odicos, lo que imposibilita
10 2.1. Datos necesarios para el entrenamiento. determinar su pitch. Por tanto, el pitch constituye un importante par´ametro para la s´ıntesis de voz, y como tal, debe ser considerado y entrenado por alg´un tipo de HMM. Para realizar dicho entrenamiento, en primer lugar deber´a ser extra´ıdo de las se˜nales de voz de la base de datos. Para obtener el pitch a partir de la se˜nal de voz se recurre a un m´etodo de correlaci´on cruzada normalizada [17][15]. La funci´on de autocorrelaci´on aplicada en este m´etodo es la siguiente: rx(m) = 1 L L−1 X m=0 x(n)x(n−m) (2.1) El periodo de pitch (τ) es la longitud, en n´umero de muestras, que separa el m´aximo de correlaci´on (m=0) y el segundo m´aximo. Una vez obtenido el periodo, el pitch se obtiene facilmente calculando el inverso, fo= 1/τ. 2.1.2 Informaci´on espectral. Toda la informaci´on espectral se obtiene mediante una parametrizaci´on de las se˜nales de voz. Existen diversos m´etodos para realizar esta parametrizaci´on. El empleado en este proyecto es el conocido como Coeficientes Cepstrum en la escala de Mel, MFCCs (del ingl´es, Mel-frequency cepstral coefficients). Con esta parametrizaci´on se consigue un espectro cuya resoluci´on frecuencial es similar a la del o´ıdo humano, que posee alta resoluci´on a frecuencias altas. Esta caracter´ıstica hace que el m´etodo de los MFCCs sea utilizado tanto en s´ıntesis como en reconocimiento de voz. El cepstrum de la se˜nal tiene informaci´on sobre la variaci´on del espectro, y se calcula a partir de la se˜nal de voz, trama a trama, siendo una trama un segmento de la se˜nal original de una longitud determinada. En cada trama se aplica el an´alisis mel-cepstral, obteniendo sus coeficientes mel-cepstrales [4]. El modelo espectral,
Cap´ıtulo 2. S´ıntesis mediante modelos ocultos de Markov. 11 H(ejω), se representa mediante Mcoeficientes mel-cepstrales: H(z) = exp M X m=0 ec(m)ez−m(2.2) donde ez−1=z−1−α 1−αz−1,|α|<1 (2.3) es una transformaci´on bilineal que aproxima el plano Zen escala de Mel en funci´on del plano Zen escala lineal. La fase caracter´ıstica para est´a transformaci´on viene dada por la expresi´on: eω=arctan (1 −α2)sen(ω) (1 + α2)cos(ω)−2α(2.4) donde el par´ametro αsirve para ajustar la aproximaci´on entre las dos escalas, en funci´on de la frecuencia de muestreo. Por ejemplo, para una frecuencia de muestreo de 10 KHz, con α= 0.35 se consigue una buena aproximaci´on a la escala de Mel. Para obtener una estimaci´on no sesgada se utiliza el siguiente criterio, minimizando respecto a {ec(m)}M m=0. E=1 2πZπ −π {exp R(ω)−R(ω)−1}dω (2.5) donde R(ω) = logIN(ω)−log|H(ejω)|2(2.6) eINrepresenta el periodograma modificado [10], que permite estimar espectralmente el proceso x(n), el cual es considerado estacionario dentro de cada trama. El par´ametro Nrepresenta el n´umero de muestras de la trama. Para conseguir una buena estimaci´on espectral se necesita un n´umero de muestras suficientemente elevado, ya que INes asint´oticamente insesgado. Para facilitar la minimizaci´on de 2.2 se aplica una transformaci´on sobre 2.5 de
18 2.3. Entrenamiento de los modelos. Figura 2.6. Segmentaci´on en partes iguales de un fonema. este prop´osito se emplean algoritmos iterativos sobre los par´ametros asociados a cada fonema, teniendo en cuenta el modelo inicial generado con anterioridad. El objetivo es mejorar el modelo inicial, λo, y determinar la secuencia de estados S= (s1, s2, ..., sT) que mejor se adec´ua a la secuencia de tramas del fonema caso de estudio, O= (o1, o2, ..., oT). Esta relaci´on entre estados y tramas se puede visualizar en la Figura 2.7. Una vez ajustada esta relaci´on, se vuelven a calcular las medias y matrices de covarianza de los observables de salida de cada estado. Para realizar todo este proceso se emplea de forma recursiva el algoritmo de Viterbi [2][25]. Figura 2.7. Relaci´on entre estados y tramas. El algoritmo de Viterbi fue propuesto en 1967 como un m´etodo de decodificaci´on de c´odigos convolucionales, se trata de una soluci´on recursiva al problema de estimar la secuencia finita de estados en tiempo discreto de un
Cap´ıtulo 2. S´ıntesis mediante modelos ocultos de Markov. 19 proceso de Markov. Recordamos que un proceso de Markov es aquel en el que la probabilidad de estar en el estado xk+1 en el tiempo k+1, depende s´olo del estado xken el tiempo k: P(xk+1|x0, x1, ..., xk) = P(xk+1|xk) (2.18) Aplicando el algoritmo de Viterbi se busca la secuencia de estados para la cual P(S|O, λ) es m´axima, que es equivalente a maximizar P(S, O|λ), puesto que P(S|O, λ) = P(O|λ)P(S, O|λ) (2.19) Las probabilidades de transici´on entre estados, en nuestro caso, son entre estados consecutivos y restringen la secuencia de estados obtenida. El algoritmo de Viterbi segmenta cada secuencia de entrenamiento Ousando un procedimiento de alineaci´on de estados que resulta de maximizar φN(T) = m´ax iφi(T)aiN (2.20) para 1 <i<Ndonde φj(t) = [m´ax iφi(t−1)aij]bj(ot) (2.21) con condiciones iniciales dadas por φ1(1) = 1 (2.22) φj(1) = a1jbj(o1) (2.23) para 1 <j<N.
20 2.3. Entrenamiento de los modelos. 2.3.3 Refinamiento de los modelos aplicando el algoritmo de Baum-Welch. Al aplicar el algoritmo de Viterbi, se obtiene un modelo que se aproxima mejor estad´ısticamente, a la voz original, que el modelo inicial. Sin embargo, el algoritmo de Viterbi emplea ´unicamente una secuencia de estados para realizar las estimaciones, mientras que el algoritmo de Baum-Welch [7][13][19] considera todos los posibles alineamientos entre estados y observaciones, no solamente la mejor de estas posibilidades, como es el caso del algoritmo de Viterbi. En vez de asignar cada vector de observables a un estado espec´ıfico, cada observaci´on es asignada a cada estado proporcionalmente a la probabilidad de permanecer en ´el. A continuaci´on se detalla el algoritmo. Lj(t) denota la probabilidad de estar en el estado jen el tiempo t. Las medias y covarianzas se calculan como sigue bµj=PT t=1 Lj(t)ot PT t=1 Lj(t)(2.24) b Σj=PT t=1 Lj(t)(ot−µj)(ot−µj)0 PT t=1 Lj(t)(2.25) donde los sumatorios en los denominadores se emplean para normalizar. Por supuesto para aplicar las ecuaciones 2.24 y 2.25 se debe calcular anteriormente la probabilidad Lj(t), lo cual se logra eficientemente empleando el algoritmo ”forward-backward”que se detalla a continuaci´on. La probabilidad forward αj(t) (probabilidad de observar los primeros tvectores y estar en el estado jen el tiempo t) para el modelo Mcon Nestados se define como αj(t) = P(o1, o2, ..., ot, x(t) = j|M) (2.26) Esta probabilidad puede ser calculada eficientemente mediante αj(t) = "N−1 X i=2 αi(t−1)aij#bj(ot) (2.27)
Cap´ıtulo 2. S´ıntesis mediante modelos ocultos de Markov. 21 con condiciones iniciales α1(1) = 1 (2.28) αj(1) = a1jbj(o1) (2.29) para 1 <j<N, siendo la condici´on final αN(T) = N−1 X i=2 αi(T)αiN (2.30) La probabilidad backward βj(t) se define como βj(t) = P(ot+1, ot+2, ..., oT|x(t) = j, M) (2.31) y se calcula como sigue βj(t) = N−1 X j=2 aijbj(ot+1)βj(t+ 1) (2.32) con condici´on inicial βi(T) = aiN (2.33) para 1 <i<N, siendo la condici´on final β1(1) = N−1 X j=2 a1jbj(o1)βj(1) (2.34) por definici´on P(O|M) = αN(T) (2.35) αj(t)βj(t) = P(O, x(t) = j|M) (2.36) Por ´ultimo, para calcular la probabilidad Lj(t) Lj(t) = P(x(t) = j|O, M) (2.37) =P(O, x(t) = j|M) P(O|M)(2.38)
22 2.3. Entrenamiento de los modelos. =1 Pαj(t)βj(t) (2.39) donde P = P(O|M). 2.3.4 T´ecnicas de clustering empleando ´arboles de decisi´on. El siguiente paso en el entrenamiento consiste en emplear los mismos algoritmos (Viterbi y Baum-Welch) pero considerando los fonemas con informaci´on contextual. En este tipo de fonemas, se conoce la posici´on que ocupa el fonema dentro de la frase y cu´ales son los fonemas que le acompa˜nan; adem´as puede incluir informaci´on de la entonaci´on a la hora de pronunciarlo. Por tanto, son de gran utilidad a la hora de optimizar los modelos en el proceso de entrenamiento. La cantidad de informaci´on que contienen los fonemas contextuales hace que el tama˜no de la base de datos sea insuficiente para hacer un uso eficiente de sus caracter´ısticas. Para resolver este problema se realiza una agrupaci´on entre los estados de los distintos modelos. De esta manera los datos que se utilizan en la estimaci´on de los par´ametros de alg´un modelo, son empleados para realizar esta misma estimaci´on en un modelo diferente. Este proceso de agrupamiento se conoce como ”clustering” y se lleva a cabo con los ´arboles de decisi´on construidos mediante la t´ecnica MDL (Minimum Description Length [16]) que permite determinar el ´arbol ´optimo. La elaboraci´on de estos ´arboles consiste en la formulaci´on de m´ultiples preguntas referidas al contexto. En cada nodo se formula la pregunta y de ese nodo saldr´an dos ramas, en funci´on de que la respuesta sea afirmativa o negativa, que conducir´an a otro nodo y otra pregunta. As´ı se crear´an los ´arboles para cada uno de los modelos. Por ejemplo, si nos fijamos en la Figura 2.8, la pregunta ”R- fricativa?” se realiza en todos los primeros estados de los modelos, en unos modelos la respuesta ser´a afirmativa y en otros negativa, produciendose la agrupaci´on y separaci´on de ´estos. Las preguntas se seleccionan mediante el criterio MDL, que permite escoger la pregunta ´optima entre todas las posibles. En este criterio se define un modelo
Cap´ıtulo 2. S´ıntesis mediante modelos ocultos de Markov. 23 Figura 2.8. Ejemplo de ´arbol de decisi´on. como el conjunto de nodos finales en un ´arbol de decisi´on, como se muestra en la Figura 2.9. Para cada nodo se calcula un par´ametro conocido como DL (Description Length) y el modelo con la menor DL ser´a seleccionado como el modelo ´optimo. Una de las caracter´ısticas del m´etodo MDL es, que una vez se ha llegado a un ´optimo de DL se puede parar el procedimiento, es decir, s´olo se seguir´an realizando divisiones en nodos mientras el par´ametro DL siga mejorando. Figura 2.9. Modelo (conjunto de nodos) en un ´arbol de decisi´on. Al final del proceso se tiene un conjunto de ligaduras de nodos o estados, consiguiendo asi reducir el n´umero de par´ametros a estimar. Por otro lado, como los factores asociados al contexto afectan de forma independiente a los par´ametros espectrales, pitch y duraci´on, se genera un ´arbol de decisi´on para cada uno de los modelos. Una vez generados estos ´arboles, se vuelven
24 2.4. T´ecnicas de adaptaci´on. a realizar reestimaciones sobre los modelos empleando los algoritmos expuestos anteriormente (Viterbi y Baum-Welch) que permitan refinar y mejorar los modelos. 2.4 T´ecnicas de adaptaci´on. La adaptaci´on es una t´ecnica empleada para generar modelos ac´usticos de un locutor del que se dispone poco material para poder realizar el entrenamiento. Para ello, se emplea un modelo generalista, creado a partir de una voz base, y sobre sus modelos se actualizan los par´ametros para adaptar al nuevo locutor. De esta manera, se consigue un modelo final monolocutor, utilizando poco material en forma de se˜nales de audio y texto. Existen varias t´ecnicas para llevar a cabo la adaptaci´on, entre ellas destacan el algoritmo MAP (del ingl´es, Maximum A Posteriori) y el algoritmo MLLR (Maximum Likelihood Linear Regression). A continuaci´on se describen brevemente ambos m´etodos. El Ap´endice C contiene una exposici´on m´as detallada de los procesos mat´ematicos que est´an detr´as de estos algoritmos. 2.4.1 Maximum Likelihood Linear Regression. El algoritmo MLLR [12][18] toma los datos para la adaptaci´on del nuevo locutor y realiza una actualizaci´on de medias y covarianzas de los modelos del locutor independiente (voz base) hasta maximizar la probabilidad de la adaptaci´on. El resto de par´ametros no se actualizan hasta que se ha conseguido el objetivo anterior. Para llevar esto a cabo, se realiza una transformaci´on lineal: bµjc =Wcµjc (2.40) b Σjc =HΣjc HT(2.41) donde µjc es el vector de medias de la c-´esima Gaussiana en el estado j-´esimo, Wces la matriz de transformaci´on lineal de medias, Σjc la matriz de covarianzas
Cap´ıtulo 2. S´ıntesis mediante modelos ocultos de Markov. 25 de la c-´esima Gaussiana en el estado j-´esimo yHla matriz de transformaci´on de covarianzas. El algoritmo MLLR se puede emplear de dos formas distintas. La primera de ellas, es la llamada MLLR global, en la que se adaptan las medias y varianzas en todos los estados de forma global. La segunda forma consiste en dividir las Gaussianas de cada estado en clases de regresi´on1y adaptar cada una de estas clases por separado. Si se disponen de pocos datos para llevar a cabo la adaptaci´on se emplea el m´etodo global, mientras que si se aumenta la cantidad de datos la segunda forma de utilizar el algoritmo es la que se aplica. Para obtener las clases de regresi´on es necesario generar un ´arbol de clases de regresi´on (del ingl´es, regression class tree)[5]. Un ´arbol de clases de regresi´on est´a formado por una jerarqu´ıa de clases de regresi´on y un grupo de clases base2, que tambi´en pueden ser clases de regresi´on. Las componentes se agrupan en funci´on de su cercan´ıa en el espacio ac´ustico, sin tener en cuenta a que fonema pertenecen. La Figura 2.10 muestra un ejemplo de un ´arbol de clases de regresi´on. En el ´arbol los nodos terminales se correponden con las clases principales, cada Gaussiana del modelo pertenecer´a a una de ellas. Figura 2.10. Ejemplo de ´arbol de clases de regresi´on. Las flechas y l´ıneas discontinuas indican que no se tienen suficientes datos como para generar una matriz de transformaci´on, mientras que las flechas y l´ıneas continuas se corresponden con nodos terminales que s´ı poseen suficiente 1Clase de regresi´on: agrupaci´on de par´ametros de un modelo. 2Clase base: m´ınima agrupaci´on de par´ametros que pueden ser transformados independientemente.
26 2.4. T´ecnicas de adaptaci´on. informaci´on para llevar a cabo la transformaci´on. En el ejemplo de la Figura 2.10, se generar´ıan transformaciones (Wn) para los nodos 2,3 y 4. Para los casos sin suficientes datos, las clases estar´an asociadas a la matriz de transformaci´on del nodo superior. As´ı pues esta transformaci´on de cada clase principal de regresi´on se lleva a cabo de la siguiente manera: W2→ {C5} W3→ {C6, C7} W4→ {C4} (2.42) 2.4.2 Maximum A Posteriori. Este algoritmo de adaptaci´on [6] puede ser visto como una adaptaci´on Bayesiana. Para emplearlo es necesario partir de un modelo inicial, que en el caso que nos ocupa ser´a el del locutor independiente. Combinando este modelo inicial con la nueva informaci´on obtenida del locutor al que se quiere adaptar, mediante un factor de adaptaci´on, se estima el par´ametro adaptado final. Matem´aticamente, el proceso de adaptaci´on se basa en la siguiente f´ormula bµjc =Njc Njc +τµjc +τ Njc +τµjc (2.43) donde µjc es la media del modelo independiente para el estado j-esimo yc-´esima Gaussiana, µjc la media de los datos adaptados, Njc la probabilidad de ocupaci´on de los datos de adaptaci´on y τel peso de la informaci´on a priori (modelo inicial). La principal desventaja de este m´etodo de adaptaci´on es que requiere una cantidad de datos mayor que MLLR, esto es debido a que se realiza la adaptaci´on de cada componente del modelo. Por contra, cuanta m´as informaci´on se posee, el algoritmo MAP resulta m´as efectivo que el MLLR.
Cap´ıtulo 2. S´ıntesis mediante modelos ocultos de Markov. 27 2.5 Generaci´on de voz. Una vez finalizado el entrenamiento y adaptaci´on, la s´ıntesis finaliza con la generaci´on de la voz haciendo uso de los modelos generados previamente. El proceso de producci´on de voz a partir del texto a generar, normalmente introducido por el usuario, y de los modelos obtenidos en el entrenamiento, consta de las siguientes etapas: 1. Normalizaci´on del texto, que consiste en la conversi´on de abreviaturas, fechas, n´umeros, etc., en su correspondiente representaci´on fon´etica. 2. Divisi´on del texto en unidades pros´odicas, marcando la entonaci´on, duraci´on o velocidad de los fonemas. 3. Asignaci´on de los modelos. A partir de la secuencia de fonemas y la representaci´on pros´odica, se escoge el modelo generado en el entrenamiento que mejor se adec´ua a cada fonema en ese contexto. Entendiendo por contexto la situaci´on dentro de la frase, es decir, si el fonema se encuentra al principio o al final de la oraci´on, entre qu´e fonemas se encuentra situado, etc. 4. Generaci´on de la secuencia de modelos asociada al contexto. Para esta tarea se emplean ´arboles de decisi´on, generados tambi´en durante el entrenamiento. 5. Finalmente, el sistema genera la voz asociada a la secuencia de HMMs empleando el modelo digital de producci´on del habla, excitaci´on m´as filtro. 2.5.1 Obtenci´on de los par´ametros ac´usticos a partir de los HMM. Los par´ametros ac´usticos se obtienen mediante la transformac´ıon de la secuencia de HMMs en una secuencia de tramas con informaci´on sobre el pitch y el espectro para cada instante.
Cap´ıtulo 3 Entrenamiento de los modelos ocultos de Markov. HTS (HMM-based Speech Synthesis System [22]) es un sistema de s´ıntesis basado en HMMs que modifica el sistema de reconocimiento HTK (Hidden Markov Model Toolkit). HTK consiste en un conjunto de aplicaciones y librerias que son utilizadas para reconocimiento de voz, con la herramienta HTS se introducen modificaciones que permiten emplearla para desarrollar sistemas de s´ıntesis. HTS no cuenta con una herramienta para analizar texto, para ello se sirve de otras aplicaciones como Festival u Open JTalk. En este proyecto se emplea Festival, que nos permitir´a transformar los ficheros de transcripciones para realizar el entrenamiento de los modelos. A lo largo de este cap´ıtulo se explica el proceso de entrenamiento: el tratamiento y transformaci´on de los archivos de audio y texto, y la obtenci´on de los modelos para los par´ametros espectrales, pitch y duraci´on tanto para la voz base como para la voz adaptada final. Al final del proceso quedar´an una serie de ficheros con los modelos, ´arboles de decisi´on y ventanas que nos permitir´an generar la voz artificial. 3.1 Datos iniciales. Una base de datos completa y equilibrada es muy importante para poder realizar correctamente el proceso de entrenamiento de los HMMs. Dicha base de 35
36 3.1. Datos iniciales. datos consta de archivos de audio y sus correspondientes transcripciones escritas. El entrenamiento adaptativo que se va a realizar en este proyecto requiere de dos bases de datos bien diferenciadas: voz base y voz a adaptar. Por un lado, el conjunto de datos para la voz base. En nuestro caso disponemos de se˜nales sonoras y transcripciones de varios locutores extraidos de la base de datos Albayzin. En total, 84 locutores con 25, 50 y 200 locuciones dependiendo del caso. La base de datos Albayzin nos garantiza un conjunto de locuciones fon´eticamente balanceadas, ya que los contextos que se consideran relevantes en el castellano (contextos que ocurren al menos el 10 % de las apariciones del sonido) est´an presentes al menos 4 veces. Por otro lado, para realizar la adaptaci´on se han elegido 25 frases del conjunto de Albayzin, seleccionadas de uno de los locutores empleados para la voz base. Con estas frases se procede a grabar la voz del locutor con la ayuda de un micr´ofono. El formato de los archivos de audio es .raw, caracterizado por una frecuencia de muestreo de 16kHz, 16 bits por muestra y un solo canal. En cuanto a las transcripciones, ´estas sufren un proceso de transformaci´on para poder ser finalmente empleadas en el entrenamiento. Inicialmente se tienen las frases almacenadas en archivos de texto y ser´an transformadas al formato empleado por Festival (sistema TTS multiling¨ue), utilizado en este proyecto, .utt. En pr´oximas secciones se entrar´a m´as en detalle en esta transformaci´on. Otros elementos importantes en los datos iniciales son los ficheros questions qst.hed yquestions utt qst.hed. El primero contiene un conjunto de posibles preguntas que se emplean para la elaboraci´on de los ´arboles de decisi´on y el segundo se emplea para la elaboraci´on de las etiquetas a partir de los ficheros .utt. Estas preguntas son dependientes del idioma, es decir, no se pueden utilizar los mismos archivos para generar voces en ingl´es que en castellano. A continuaci´on aparece una peque˜na muestra del archivo questions qst.hed. QS ”LL b”{bˆ∗} QS ”LL Nasal”{mˆ∗, nˆ∗, nyˆ∗} QS ”Pos C −Word in C −Phrase(Bw) == 8” {∗ + 8&∗} La estructura de estas preguntas es la siguiente: QS ”name” {condition},
Cap´ıtulo 3. Entrenamiento de los modelos ocultos de Markov. 37 ”name” identifica a la pregunta dentro del fichero y ”condition” representa la condici´on que debe cumplirse para que esa pregunta tenga resultado positivo. Por ejemplo, la primera pregunta ser´a cierta si se cumple la condici´on bˆ∗, es decir, si el fonema previo al anterior es /b/. La segunda tendr´a resultado positivo si estamos ante una frase de tipo ”LL Nasal” y la tercera si la palabra actual ocupa la octava posici´on en la frase empezando a contar desde el final. La sintaxis empleada viene explicada en el Ap´endice B. 3.2 Preparaci´on de los datos. 3.2.1 Se˜nales de audio Para realizar el entrenamiento no se emplean las se˜nales de audio en formato .raw, sino que se realiza una transformaci´on para obtener, por un lado, los coeficientes cepstrum en las frecuencias de Mel (MFCC) y por otro lado, el pitch. Durante el proceso de transformaci´on se generan una serie de archivos, siempre uno por cada oraci´on contenida en la base de datos. La preparaci´on de los datos se realiza tanto para la voz base como para la voz a adaptar. El primer paso para obtener los MFCCs es transformar la se˜nal de audio empleando una ventana deslizante. Se pueden emplear distintos tipos de ventana (Blackman, Hamming o Hanning), siendo la de Hamming la empleada por defecto. De esta transformaci´on se obtienen ficheros con extensi´on .mgc que contienen un total de 25 coeficientes cepstrum para cada trama, con sus correspondientes coeficientes din´amicos. Una vez obtenidos los par´ametros cepstrum, el siguiente paso a dar es obtener el pitch. Para cada se˜nal de voz se produce un fichero con extensi´on .lf0 que contiene los valores de pitch (log(fo)) para cada trama de la se˜nal. Dependiendo del valor que tome log(fo) estaremos ante un sonido sordo o sonoro. El ´ultimo paso de este proceso consiste en agrupar en un mismo fichero los coeficientes cepstrum y los valores de pitch. Para ello, se genera un fichero con extensi´on .cmp que contendr´a el pitch y los coeficientes espectrales, junto a sus
38 3.2. Preparaci´on de los datos. respectivos coeficientes din´amicos, como se muestra en la Figura 3.1. Una vez generados estos ficheros, uno para cada oraci´on, la parte que corresponde a las se˜nales de audio est´a lista para ser entrenada. Figura 3.1. Distribuci´on de un archivo .cmp para una trama. 3.2.2 Ficheros de texto La situaci´on con los ficheros de texto es an´aloga a los archivos de audio, se deben procesar para poder emplearlos en el entrenamiento de los HMMs. Se parte de unos archivos en formato .txt, cada uno de estos ficheros contiene una de las frases de la base de datos, que se corresponden con un fichero de audio. Las oraciones en estos ficheros no incluyen tildes, signos de puntuaci´on, ni may´usculas y el caracter ˜n se sustituye por ∼n. La primera transformaci´on consiste en pasar de formato .txt a.utt. Este formato es el empleado por Festival para representar las oraciones mediante texto. El proceso de transformaci´on consta de diversos pasos. En primer lugar, se divide la oraci´on en unidades m´as sencillas, en este caso palabras. A continuaci´on, se realiza una identificaci´on de los tipos de palabra, separando fechas, n´umeros, a˜nos, etc. Por ´ultimo, se trata la prosodia, pronunciaci´on, entonaci´on y duraci´on de cada unidad. Un ejemplo del comando a emplear para generar un archivo .utt a partir de una frase es el siguiente: Una vez obtenidos los ficheros .utt, el siguiente paso de la preparaci´on de los datos de texto es la elaboraci´on de los archivos de etiquetas .lab. Cada l´ınea de estos ficheros representa un fonema y toda la informaci´on asociada a ´el (m´as detalles sobre el formato en el Ap´endice B). Se generan dos archivos .lab por cada fichero
Cap´ıtulo 3. Entrenamiento de los modelos ocultos de Markov. 39 .txt. El primero de ellos contiene toda la informaci´on relacionada con el contexto del fonema como es la duraci´on, los fonemas que le preceden y suceden o la posici´on dentro de la frase. Estas son las etiquetas denominadas full. El segundo fichero generado contiene s´olo los fonemas y su duraci´on correspondiente, son las etiquetas mono. Por ´ultimo se generan diversos ficheros, estos son: •2 Master Label Files (MLF) que contienen los directorios donde se encuentran las etiquetas mono yfull.. •2 listas que aglutinan todos los fonemas de la base de datos (mono.list) y todos los fonemas en versi´on extendida con informaci´on contextual (full.list). •2 ficheros .scp:train.scp yadapt.scp. Contienen la lista de ficheros con extensi´on .cmp (path absoluto m´as nombre del fichero) que ser´an empleados en el entrenamiento de la voz base y de la adaptada respectivamente. 3.3 Entrenamiento de los HMMs con HTS para la voz base. El proceso de entrenamiento de la voz base sigue diversas etapas como se muestra en la Figura 3.2. A continuaci´on se detalla cada parte de este entrenamiento explicando la labor que realizan cada una de las funciones de HTK/HTS. 3.3.1 Obtenci´on de los modelos iniciales. El primer paso del entrenamiento consiste en la elaboraci´on de los modelos iniciales a partir de los datos preparados previamente. En primer lugar, se calcula la media y varianza global de los par´ametros de voz del locutor independiente. Esta tarea la lleva a cabo la funci´on HCompV, que toma como ficheros de entrada los archivos con extensi´on .cmp y genera un fichero denominado init.mmf que contiene los valores de las varianzas globales. Estos
40 3.3. Entrenamiento de los HMMs con HTS para la voz base. Figura 3.2. Esquema del proceso de entrenamiento de la voz base. valores sirven de punto de partida para iterar sobre ellos durante el entrenamiento de los modelos. El siguiente paso consiste en elaborar los primeros modelos, para ello se hace uso de la funci´on HInit. Las principales etapas (Figura 3.3) en la estimaci´on de estos primeros modelos son: segmentaci´on uniforme y alineamiento de Viterbi. Con la segmentaci´on uniforme cada aparici´on del fonema se segmenta en partes iguales (cinco partes correspondientes con cada estado de los modelos) y se realiza una primera estimaci´on en la que cada estado recibe sus par´ametros estad´ısticos de salida (medias, varianzas y covarianzas). Las varianzas de estos primeros estados tienen como cota m´ınima las calculadas en el paso anterior y que se encuentran en el fichero init.mmf. Figura 3.3. Esquema de la funci´on HInit. Una vez realizada la segmentaci´on uniforme se aplica el algoritmo de Viterbi. El objetivo es mejorar la estimaci´on obtenida en el paso anterior y elaborar la matriz de probabilidades de transici´on entre estados. Se leen las secuencias de vectores
Cap´ıtulo 3. Entrenamiento de los modelos ocultos de Markov. 41 O= (o1, o2, ..., oT) de todas las realizaciones del fonema sobre el que se va a aplicar el algoritmo. Se aplica Viterbi en cada lectura, obteniendo la secuencia de estados m´as probable. Las probabilidades de transici´on se calculan a partir del n´umero de veces que se visita un estado durante el proceso de alineamiento (modelo de estados ”left-to-right”). El proceso termina una vez realizado un n´umero de iteraciones predeterminado o hasta que no se obtiene una mejora significativa tras la anterior iteraci´on. Por ´ultimo, se emplea la funci´on HRest, que aplica el algoritmo de Baum- Welch para reestimar los modelos iniciales de los fonemas aislados (sin informaci´on contextual). El funcionamiento es similar al de HInit, pero en vez de partir del prototipo se parte ya de los modelos iniciales generados anteriormente y en vez del algoritmo de Viterbi se utiliza el de Baum-Welch. Mientras Viterbi realiza una asociaci´on entre observaciones y estados m´as severa, Baum-Welch considera que una observaci´on puede proceder de varios estados diferentes con una probabilidad determinada. Esta diferencia se muestra en la Figura 3.4. Figura 3.4. Relaci´on observaci´on/estado en los algoritmos de Viterbi y Baum- Welch. 3.3.2 Modelos contextuales. En la etapa anterior se han elaborado los modelos para los fonemas aislados, en los siguientes pasos se emplean los fonemas con informaci´on contextual para elaborar los modelos. Este paso es esencial ya que se consigue una mejora sustancial en los modelos, consigui´endose que fonemas que se pronuncian de manera distinta no sean tratados por igual, como suced´ıa en la etapa anterior.
42 3.3. Entrenamiento de los HMMs con HTS para la voz base. El primer paso consiste en aplicar la funci´on HHEd, que permite manipular conjuntos de modelos y realizar nuevas agrupaciones de ´estos. Esta funci´on emplea el fichero full.list (que contiene la informaci´on contextual de todos los fonemas de la base de datos) para asignar los modelos iniciales al fonema. En primera instancia a distintos contextos del mismo fonema se les asignar´a el modelo inicial de dicho fonema. Por ejemplo para los siguientes contextos del fonema ”@”: D−@ + s // k −@ + m // n −@ + k A todos ellos se les asignar´a el modelo del fonema ”@”, con lo cual existe en este punto redundancia de modelos: distintos fonemas contextuales con el mismo modelo. Esta redundancia se reduce mediante un comando de la funci´on HHEd, que agrupa todas las versiones del fonema contextual ”phone” y se referencian mediante el macro T phone. El comando es el siguiente: TI T phone {∗ − phone +∗.transP} El ´ultimo paso para obtener los modelos contextuales es aplicar el algoritmo de Baum-Welch, pero esta vez a trav´es de la funci´on HERest. Aplicando el algoritmo de Baum-Welch de forma iterativa se consigue mejorar los modelos contextuales hasta el punto que fonemas que se pronuncian de manera distinta no sean tratados por igual. La siguiente etapa del entrenamiento consiste en diversas iteraciones del algoritmo de Baum-Welch empleando una t´ecnica de agrupamiento o ”clustering” para mejorar los modelos contextuales. 3.3.3 Re-estimaci´on de los modelos. Como se mencion´o en el Cap´ıtulo 2, para que los modelos contextuales que se han obtenido fuesen realmente buenos har´ıa falta una cantidad de datos y se˜nales de voz mucho mayor de la que tenemos. Para solucionar este problema se introdujo el concepto de ”clustering”. El clustering consiste en establecer ligaduras
Cap´ıtulo 3. Entrenamiento de los modelos ocultos de Markov. 43 entre los modelos que tengan estados parecidos entre s´ı. Por ejemplo, se podr´ıa considerar que los modelos ”N-a+s” y ”f-a+n” comparten los par´ametros de los estados centrales del fonema ’a’. Como ´esta, se pueden encontrar otras formas de ligar modelos. Para realizar estas ligaduras se hace uso de los ´arboles de decisi´on, ´estos se crean mediante la funci´on HHEd. Se generan distintos ´arboles de decisi´on para los par´ametros espectrales, pitch y duraci´on; ya que el contexto no afecta de igual manera a cada uno de ellos y por tanto, los modelos se agrupan de manera independiente. Una vez elaborados los ´arboles de decisi´on se aplican diversas iteraciones del algoritmo de Baum-Welch a trav´es de la funci´on HERest. Durante esta etapa se analiza la frase completa, se ajustan las tramas entre los estados y se reestiman los par´ametros de los HMMs. El uso de estos modelos con ligaduras proporciona mayor riqueza y por tanto mejora el proceso, ya que se tiene mayor informaci´on en cada estimaci´on. Si nos fijamos en el ejemplo anterior, ”N-a+s” y ”f-a+n”, considerando la ligadura en el estado central: al estimar una realizaci´on que contenga la secuencia ”-a+s”, se tendr´an en cuenta todas las realizaciones en las que aparezca tanto ”N- a+s” como ”f-a+n”, lo que resulta, por tanto, en un aumento de los datos a emplear en cada estimaci´on. Como se aprecia en el esquema de la Figura 3.2 el proceso de reestimaci´on comprende tres etapas en las que se ejecutan HHEd yHERest. La primera de esas etapas es la explicada anteriormente, creaci´on de los ´arboles de decisi´on y clustering. La segunda etapa consiste en deshacer las ligaduras de los modelos contextuales con HHEd y aplicar de nuevo el algoritmo de Baum-Welch sobre estos modelos sin ligaduras mediante HERest. Finalmente, se vuelven a realizar ligaduras y se aplica de nuevo el algoritmo de Baum-Welch. En este punto se generan los modelos de duraci´on ya que se considera que los modelos obtenidos para los par´ametros espectrales y el pitch son los suficientemente buenos como para poder obtener los de duraci´on.
50 4.1. Generaci´on de voz con HTS. Figura 4.1. Esquema del proceso de generaci´on de voz. 4.1.1 Procesado del texto a sintetizar. El primer paso es la transformaci´on del texto al formato que emplea HTS, este formato es el mismo que el empleado en el proceso de entrenamiento, en la Figura 4.2 se muestra un esquema simplificado de los pasos a dar. Figura 4.2. Esquema del proceso de transformaci´on del texto a sintetizar. Para llegar a este formato ”etiqueta”, primero hay que realizar una normalizaci´on del texto, convirtiendo las may´usculas en min´usculas y realizando la transcripci´on fon´etica. Esta transcripci´on fon´etica se debe ajustar al formato empleado en HTS para representar los fonemas. Finalmente se generan las etiquetas con informaci´on contextual, es decir, informaci´on sobre los fonemas anteriores y posteriores al fonema objeto de estudio. A continuaci´on se muestra un ejemplo simplificado de la etiqueta para la palabra ”hola” (los detalles sobre el formato se pueden encontrar en el Ap´endice B). xx∧#−o1 + l=a@1 1/A : 0 0 0/B : 1 −1−1... #∧o1−l+a= #@1 2/A : 1 1 1/B : 0 −0−2... o1∧l−a+ # = xx@2 1/A : 1 1 1/B : 0 −0−2... l∧a−# + xx =xx@xx xx/A : 0 0 2/B :xx −xx −xx... Se puede observar f´acilmente la informaci´on contextual que genera este formato de etiqueta. Por ejemplo centr´andonos en la tercera l´ınea, la etiqueta indica que el fonema /l/ va precedido por el fonema /o1/ y le sigue el fonema /a/.
Cap´ıtulo 4. Generaci´on de voz. 51 4.1.2 Selecci´on de modelos. En esta etapa se desea asociar a cada fonema uno de los modelos generados durante el entrenamiento. Esta asociaci´on se realiza a trav´es de los ´arboles de decisi´on, nunca a nivel de modelo sino a nivel de estado. El modelo del fonema se construye estado a estado a partir del ´arbol de decisi´on, asignando los estados que se adapten mejor a cada fonema. El proceso consiste en recorrer el ´arbol hasta llegar a un nodo final que asocie un estado del modelo al fonema contextual. El proceso se repite hasta que se tienen todos los estados que componen el modelo. La clasificaci´on y asignaci´on de modelos la lleva a cabo el programa hts engine. Para poder entender mejor el proceso, a continuaci´on se expone el formato de los ficheros que contienen los modelos. Estos ficheros contienen la informaci´on estad´ıstica de cada modelo, es decir, de los nodos finales de los ´arboles de decisi´on. Los archivos a los que se hace referencia tienen extensi´on .pdf, existiendo uno por cada tipo de par´ametro (espectro, pitch y duraci´on). Los ficheros de modelos est´an compuestos por una cabecera, con informaci´on sobre el n´umero de par´ametros y nodos finales de cada estado, y una parte de datos. Un ejemplo de cabecera para cada .pdf podr´ıa ser: mcp.pdf ⇒75 293 306 264 208 254 lf0.pdf ⇒3 315 279 208 297 233 dur.pdf ⇒5 367 Centr´andonos en la primera cifra de la cabecera, ´esta indica el n´umero de observables de salida que emite cada modelo. Cada estado del modelo del espectro emitir´a 75 valores, que se corresponden con 25 valores de cada uno de sus tres vectores de salida (c, ∆cy ∆2 c). El pitch por su parte emitir´a 3 par´ametros (lf0, ∆lf0y ∆2 lf0) y el modelo de duraci´on 5 valores, uno por estado, que indican el tiempo durante el cual se deben emitir los observables de los otros modelos. El resto de cifras de la cabecera se corresponden con el n´umero de nodos finales que tienen los ´arboles de decisi´on para cada uno de los estados de los modelos (cinco estados espectro y pitch, y un estado el modelo de duraci´on). En la Figura 4.3 se muestra la estructura que sigue la parte de datos de los
52 4.1. Generaci´on de voz con HTS. ficheros mcp.pdf ylf0.pdf para uno de los cinco estados de los modelos. Figura 4.3. Estructura de los ficheros mcp.pdf y lf0.pdf. Para los modelos del espectro cada columna representa la estad´ıstica de salida de cada nodo terminal del ´arbol de decisi´on. El modelo del pitch inicialmente sigue la misma estructura y a˜nade informaci´on sobre la probabilidad de que el sonido sea sonoro o sordo. Figura 4.4. Estructura del fichero dur.pdf. El fichero dur.pdf tiene una estructura distinta a los dos anteriores. Como se muestra en la Figura 4.4 no es necesario indexar a nivel de estado ya que este
Cap´ıtulo 4. Generaci´on de voz. 53 modelo s´olo posee uno. Cada fila representa la duraci´on de cada uno de los cinco estados de los modelos del espectro y el pitch, mientras que las columnas indican el nodo terminal de los ´arboles de decisi´on. 4.2 Sistema vivoSinte. El programa vivoSinte es un sistema de generaci´on de voz desarrollado por el Grupo de Tecnolog´ıas de las Comunicaciones de la Universidad de Zaragoza basado en la s´ıntesis por HMMs. Hace uso de la herramienta hts engine para asignar y clasificar los modelos a los diferentes fonemas. Dispone de herramientas y funciones que transforman el texto a ser sintetizado al formato empleado por hts engine, tarea que se realiza previamente a la asignaci´on de modelos. A lo largo de esta secci´on se va a ir detallando todo este proceso. 4.2.1 Inicializaci´on del sistema. Previamente a la introducci´on del texto a sintetizar por parte del usuario, se realiza la inicializaci´on del sistema. Esta tarea la lleva a cabo el m´odulo initialize vivoSinte. 1. Se dispone de una lista con los nombres de los locutores disponibles (archivo .txt) a partir de la cual se redirecciona al programa a cada uno de ellos. A su vez, cada locutor dispone de otro archivo .txt donde vienen detalladas las rutas en las que se encuentran todos los ficheros obtenidos en el entrenamiento. 2. Se establecen una serie de par´ametros para lleva a cabo la generaci´on de voz, entre ellos destacan: la frecuencia de muestreo, el periodo de trama, la tasa de bit, un par´ametro de postfiltrado, la elocidad de la locuci´on o el volumen. Algunos de estos par´ametros se emplean tambi´en durante el proceso de entrenamiento y por tanto deben coincidir los valores para que la generaci´on de voz sea correcta.
54 4.2. Sistema vivoSinte. 3. Se inicializa hts engine que reserva espacio en memoria para las variables que intervienen en el proceso. Se crea una variable, engine, que contendr´a informaci´on de los modelos (n´umero de observables de salida, estados o ´arboles de decisi´on asociados), los par´ametros anteriormente nombrados y campos inicializados para posteriormente ser modificados durante el proceso de asignaci´on y clasificaci´on. Este proceso se repite para cada locutor, almacenando en memoria sus modelos para tener r´apido acceso a ellos a la hora de sintetizar y no tener que cargarlos cada vez que se desee cambiar de locutor. 4. El usuario introduce el nombre del locutor cuya voz desea utilizar y la frase a sintetizar. Si el locutor introducido ya se encuentra cargado en memoria, se seleccionan sus modelos y se procede a generar la voz artificial. Si por el contrario el locutor no se encuentra cargado, se repite el paso 3 y se actualiza la lista de locutores. En la Figura 4.5 se muestra una captura de pantalla con la adquisici´on del locutor y el texto a sintetizar, en este caso para un locutor no conocido previamente. Figura 4.5. Captura de pantalla de la adquisici´on de locutor y texto a sintetizar. 4.2.2 Procesado del texto a sintetizar. Una vez el usuario ha introducido el texto a sintetizar se debe realizar un procesado previo antes de la asignaci´on de modelos. El m´odulo synthesize text realiza tanto este procesado como la generaci´on de voz. El procesado se realiza en
Cap´ıtulo 4. Generaci´on de voz. 55 tres pasos bien diferenciados: tratamiento de caracteres especiales, normalizaci´on del texto y creaci´on de etiquetas. 1. Se realiza un tratamiento de caracteres especiales, pasando su formato al empleado por HTS. Entre estos caracteres especiales est´an las vocales con di´eresis o la letra ”˜n”. A continuaci´on se muestra un ejemplo del caracter original y el que resulta de la transformaci´on: ˜n ⇒ ∼ n ¨u ⇒: u 2. Se normaliza y clasifica el texto introducido. Esta normalizaci´on consiste en identificar los signos de puntuaci´on (puntos suspensivos, comas, signos de interrogaci´on...), contar las letras, s´ılabas y palabras que componen la frase y finalmente en caso de ser necesario dividir la frase en subfrases. La divisi´on se lleva a cabo cuando la oraci´on contiene un punto o una coma, ya que estos signos de puntuaci´on implican un cambio de entonaci´on y una pausa a la hora de pronunciar la frase. 3. Se crea el fichero de etiquetas en su versi´on extendida con informaci´on contextual, fichero que se ha denominado full.lab. El m´odulo crea HTSlab es el encargado de realizar esta tarea. Partiendo de la normalizaci´on previa, realiza una ´ultima transformaci´on de la oraci´on pasando todos los caracteres a min´usculas. A continuaci´on se procede a la transcripci´on fon´etica de la frase, siempre con el formato de fonemas empleado en HTS. En este punto, se crea una variable denominada discurso que contiene informaci´on sobre el texto a sintetizar. Un ejemplo de esta variable para el texto ”Buenos d´ıas” se muestra en la Figura 4.6. En ella se pueden observar los campos: n´umero de frases, palabras, s´ılabas y la transcripci´on fon´etica. 4.2.3 Generaci´on de voz. El sistema ya dispone de todas las herramientas para asignar los modelos y proceder a la generaci´on de voz. Mediante el m´odulo exec HTS engine se realiza la
56 4.2. Sistema vivoSinte. Figura 4.6. Ejemplo de la variable discurso para la frase ”Buenos d´ıas”. asignaci´on de modelos llamando a hts engine con todos los par´ametros y variables de entrada y salida que ´este necesita. Entre todas estas variables destaca engine, una estructura con una serie de punteros que contienen toda la informaci´on sobre los modelos y los par´ametros empleados en el proceso de s´ıntesis. Los campos que componen esta estructura son: •Global: par´ametros del proceso como la frecuencia de muestreo, periodo de trama, volumen o velocidad de locuci´on. •Audio: configuraci´on del audio en formato .wav. •MS: informaci´on de los ficheros que contienen los modelos: n´umero de estados, ´arboles de decisi´on y ventanas. •Label: contenido del fichero .lab con la frase a sintetizar. •SSS: secuencia de estados. •PSS: modelos asignados. •GSS: par´ametros de la voz generada. Una vez se hace la llamada a hts engine el proceso de generaci´on de voz sigue las siguientes etapas: 1. Obtenci´on de los modelos que mejor se adaptan a las caracter´ısticas de los fonemas contextuales. Estos modelos se escogen haciendo uso de los ´arboles de decisi´on asociados.
Cap´ıtulo 4. Generaci´on de voz. 57 2. Generaci´on de los par´ametros ac´usticos. El criterio empleado es la maximizaci´on de la probabilidad de las observaciones conocida la secuencia de estados [24]. Esto implica que en primer lugar se genera la duraci´on de cada estado y a continuaci´on se obtienen los observables m´as probables atendiendo a las funciones densidad de probabilidad. 3. Generaci´on de la voz artificial. El sistema de producci´on de voz es el basado en filtro m´as excitaci´on. Como se detalla en la Secci´on 2.5.2., como excitaci´on se emplea un tren de impulsos a la frecuencia del pitch para sonidos sonoros y un ruido Gaussiano para los sonidos sordos. El filtro empleado sigue el m´etodo MLSA, cuyos coeficientes espectrales son los cepstrum en la escala de Mel. Este filtro de s´ıntesis simula el tracto vocal del locutor. Este proceso da como resultado un archivo de audio con extensi´on .wav, que contiene la frase generada con la voz deseada. WAV es un formato de audio sin compresi´on, admite archivos mono y est´ereo a diferentes resoluciones y frecuencias de muestreo, y es empleado para la reproducci´on en PC. El archivo de salida en este caso es mono, con frecuencia de muestreo 16kHz y 32 bits.
Cap´ıtulo 5 Resultados y aplicaciones. 5.1 Resultados. Con el objetivo de establecer una relaci´on entre la voz original y la voz sintetizada se recurre a un c´alculo de la distorsi´on. Este c´alculo se realiza mediante una t´ecnica de programaci´on din´amica empleando el algoritmo Dynamic Time Warping (DTW [11][14]) con la distancia de Itakura [1]. La se˜nal de voz se segmenta en tramas de 10 ms cada una. Con esta segmentaci´on, una palabra se compondr´a de docenas de tramas dependiendo de la velocidad de la locuci´on. Una vez segmentadas las se˜nales original y sintetizada surje un problema, las dos se˜nales pueden no tener la misma longitud y por tanto tener distinto n´umero de tramas. Para salvar esta diferencia en el n´umero de tramas se recurre al algoritmo DTW. Este m´etodo es ampliamente utilizado en reconocimiento del habla. El algoritmo realiza la asignaci´on entre tramas de las dos se˜nales mediante un reescalado del eje temporal. Supongamos que tenemos dos se˜nales X y W con seis y ocho tramas respectivamente. Una posible asignaci´on de tramas ser´ıa: P={(0,0),(1,1),(2,2),(3,2),(4,2),(5,3),(6,4),(7,4)} En la Figura 5.1 se muestra gr´aficamente esta asignaci´on. 59
66 oraciones cuyos fonemas y contextos son conocidos de antemano. En los valores de coste m´ınimo obtenidos para ambos casos podemos constatar esta diferencia. Para frases empleadas en la fase de entremamiento los valores obtenidos para los costes m´ınimos son, en media, un 14 % menores que para las no empleadas. Para reducir esta diferencia se deber´ıa aumentar el tama˜no de la base de datos, lo que implicar´ıa un aumento de los contextos y fonemas. Por otro lado, el aumento de la base de datos influir´ıa en la cantidad de memoria empleada en el proceso y en la velocidad de aplicaci´on del algoritmo de adaptaci´on. De cara a futuras investigaciones sobre este sistema de s´ıntesis proponemos la mejora del proceso de generaci´on de voz, centr´andose en par´ametros de la locuci´on como pueden ser la entonaci´on y la prosodia. Mediante la mejora de estos dos par´ametros se podr´ıa obtener una voz sintetizada mucho m´as natural, acerc´andola por tanto a la voz original. Otra posible l´ınea de investigaci´on har´ıa referencia al empleo de este sistema para tratamiento de patolog´ıas del habla. En este proyecto se ha sintetizado la voz del Presidente del Gobierno, Mariano Rajoy. El objetivo era que este sistema fuera capaz de aprender la patolog´ıa de su voz (seseo) y sintetizarla posteriormente. Como resultado, el sistema es capaz de aprenderla y generar la voz sintetizada con la misma patolog´ıa. La posible l´ınea de investigaci´on propuesta servir´ıa para, una vez aprendida la patolog´ıa por el sistema, mediante t´ecnicas de procesado de se˜nal corregir dicho problema de la voz. Por ´ultimo, se propone emplear la aplicaci´on Web desarrollada en este proyecto para crear un banco de voces, con o sin patolog´ıa. Para este ´ultimo caso, este banco de voces podr´ıa ser de utilidad, por ejemplo, en casos de p´erdida de las facultades del habla.
Bibliograf´ıa [1] G Chen. Enhanced Itakura measure incorporating masking properties of human auditory system. Signal Processing, 83(7):1445–1456, July 2003. [2] G. David Forney. The Viterbi Algorithm. pages 302–309, 1972. [3] I. Folgueira. Sintesis de voz mediante Modelos Ocultos de Markov. 2008. [4] T. Fukada, K. Tokuda, Ta. Kobayashi, and S. Imait. An adaptive algorithm for mel-cepstral analysis of speech. Systems Research, pages 137–140, 1992. [5] M.J.F. Gales. The generation and use of regression class trees for MLLR adaptation. Engineering, (August), 1996. [6] J.L. Gauvain and C.H. Lee. Maximum a Posteriori Estimation for Multivariate Gaussian Mixture Observations of Markov Chains. Audio, 2(2), 1994. [7] R. Hsiao, Y.C. Tam, and T. Schultz. Generalized Baum-Welch algorithm for discriminative training on large vocabulary continuous speech recognition system. Language, pages 3769–3772, 2009. [8] X. Huang, A. Acero, and H.W. Hon. Spoken language processing, volume 1. Prentice Hall PTR New Jersey, 2001. [9] S. Imai. Cepstral Analysis Synthesis on the Mel Frequenciy Scale. pages 93–96, 1983. 67
68 Bibliograf´ıa [10] S Imai. Adaptive mel cepstral analysis based on UELS method. In The IEEE Adaptive Systems for Signal Processing Communications and Control Symposium, pages 304–309, 2000. [11] M. Lama, P; Namburu. Speech Recognition with Dynamic Time Warping using MATLAB. cs.uccs.edu, 36(I):41–48, 1988. [12] C.J. Leggetter and P.C. Woodland. Maximum likelihood linear regression for speaker adaptation of continuous density hidden Markov models. pages 171–185, 1995. [13] M. Oudelha and R.N. Ainon. HMM Parameters Estimation Using Hybrid Baum ˆ A Welch Genetic Algorithm. Training, (l):542–545. [14] H. Sakoe and S. Chiba. Dynamic programming algorithm optimization for spoken word recognition. IEEE Transactions on Acoustics, Speech, and Signal Processing, 26(1):43–49, February 1978. [15] S.A. Samad, A. Hussain, and L.K. Fah. Pitch detection of speech signals using the cross-correlation technique. In TENCON 2000. Proceedings, volume 1, pages 283–286. IEEE, 2000. [16] K. Shinoda and T. Watanabe. MDL-based context-dependent subword modeling for speech recognition. [17] D. Talkin. A robust algorithm for pitch tracking (RAPT). Speech coding and synthesis, 495:518, 1995. [18] M. Tamura, T. Masuko, K. Tokuda, and T. Kobayashi. Adaptation of pitch and spectrum for HMM-based speech synthesis using MLLR. In Acoustics, Speech, and Signal Processing, 2001. Proceedings.(ICASSP’01). 2001 IEEE International Conference on, volume 2, pages 805–808. IEEE, 2001. [19] P. Taylor. Text-to-Speech Synthesis. [20] T. Toda and S. Young. Trajectory training considering global variance for HMM-based speech synthesis. In Acoustics, Speech and Signal Processing,
Bibliograf´ıa 69 2009. ICASSP 2009. IEEE International Conference on, pages 4025–4028. IEEE, 2009. [21] K. Tokuda, T. Masuko, N. Miyazaki, and T. Kobayashi. Multi-space probability distribution HMM. IEICE Transactions on Information and Systems E series D, 85(3):455–464, 2002. [22] K. Tokuda, H. Zen, and A.W. Black. An HMM-based speech synthesis system applied to English. In Speech Synthesis, 2002. Proceedings of 2002 IEEE Workshop on, pages 227–230. IEEE, 2002. [23] J. Yamagishi, H. Zen, T. Toda, and K. Tokuda. Speaker-Independent HMM- based Speech Synthesis System ˆa HTS-2007 System for the Blizzard Challenge 2007. System, 2007. [24] T. Yoshimura. Simultaneous modeling of phonetic and prosodic parameters, and characteristic conversion for HMM-Based Text-to-Speech systems. Distribution, (January), 2002. [25] S. Young, M. Gales, X. Liu, and P. Woodland. The HTK Book. Memory, (July 2000), 2006.
Ap´endice A Modelos ocultos de Markov. Los modelos ocultos de Markov (HMMs:Hidden Markov Models) siguen una estad´ıstica Markoviana. Se representan mediante un conjunto de estados que definen su evoluci´on. En las cadenas de primer orden, expuestas en la pr´oxima secci´on, cada estado tiene ´unicamente una salida. En el caso de los HMMs, estos pueden tener varios valores de salida en cada estado, lo que implica la aparici´on de una nueva variable aleatoria. Esto puede verse como un proceso estoc´astico doble: por una lado las transiciones entre estados y por otro la salida de cada estado. Un HMM es una cadena de Markov donde los observables de salida son una variable aleatoria generada de acuerdo a una funci´on probabil´ıstica asociada a cada estado [8]. A.1 Cadena de Markov de primer orden. Se considera una cadena de Markov de primer orden con ’M’ estados posibles. Al ser una cadena de primer orden, cada estado tendr´a una salida y por tanto el conjunto del sistema tendr´a ’M’ posibles salidas. Se puede definir una secuencia de observaci´on, X, que consiste en un conjunto de variables aleatorias procedentes de la evoluci´on de la cadena durante ’n’ instantes de tiempo. X= (x1, x2, ..., xn) (A.1) 71
72 A.1. Cadena de Markov de primer orden. El alfabeto de cada una de las variables aleatorias es: Θ = {o1, o2, ..., oM}y la secuencia de estados asociada se define como S={s1, s2, ..., sn}. Aclarar que en este ´ultimo caso el sub´ındice, ’n’, no se refiere al n´umero del estado sino al instante de tiempo. La probabilidad de tener una observaci´on X es P(X) = P(x1, x2, ..., xn) = P(x1) n Y i=2 P(xi|x1, x2, ..., xi−1) (A.2) desglos´andola, P(X) = P(x1)P(x2|x1)P(x3|x1, x2)...(xn|x1, x2, ..., xn−1) (A.3) Se puede asumir que la probabilidad de estar en un estado depende exclusivamente del estado inmediatamente anterior, esto se puede expresar P(xi|x1, x2, ..., xi−1) = P(xi|xi−1) (A.4) de acuerdo a esta relaci´on podemos reescribir A.3 de la siguiente forma P(X) = P(x1)P(x2|x1)P(x3|x2)...(xn|xn−1) (A.5) como cada estado s´olo puede tener una salida, finalmente P(X) = P(x1)P(x2|x1)P(x3|x2)...(xn|xn−1) = =P(s1)P(s2|s1)P(s3|s2)...(sn|sn−1) = P(S)⇒ ⇒P(X) = P(S) (A.6) Por tanto, de acuerdo a la expresi´on A.6 existe una relaci´on uno a uno entre la secuencia de observaci´on Xy la secuencia de estados de Markov.
Ap´endice A. Modelos ocultos de Markov. 73 A.2 Modelos ocultos de Markov (HMM). En los HMMs cada estado puede tener m´as de una salida posible, en general hablaremos de ’N’ posibles salidas. As´ı pues, consideramos de nuevo una cadena de Markov de ’M’ estados posibles, cada uno de ellos puede tener ’N’ salidas posibles. De nuevo denominamos a la secuencia de observaci´on X= (x1, x2, ..., xn), al alfabeto Θ = {o1, o2, ..., oN}y a la secuencia de estados S={s1, s2, ..., sn}. En estos modelos no existe correspondencia uno a uno entre la secuencia de observaci´on y la secuencia de estados, es decir P(X)6=P(S) P(x1, x2, ..., xn)6=P(s1, s2, ..., sn) (A.7) Por tanto, generalmente no se puede determinar la secuencia de estados para una secuencia de observaci´on dada, es decir, la secuencia de estados no es observable, es oculta. Esta es la raz´on por la que se denominan modelos ocultos de Markov (del ingl´es, Hidden Markov Models). Formalmente, un HMM viene definido por: •A={aij}donde aij =P(st=j|st−1=i) con 1 ≤i≤My1≤j≤M - Matriz de probabilidades de transici´on de estados. •B={bi(okt)}=P(xt=ok|st=i) donde 1 ≤i≤My1≤k≤N - Matriz de densidades de probabilidad para la salida de los estados. •π={6=i}= P(s0=i) donde 1 ≤i≤M - Distribuci´on de probabilidad de los estados iniciales La notaci´on empleada para referirse a un HMM es λ= (A,B,π).
74 A.2. Modelos ocultos de Markov (HMM). En la Figura A.1 se muestra un ejemplo de un diagrama de estados de un HMM, con las probabilidades de transici´on entre estados y los observables de salida de cada estado. Figura A.1. Diagrama de estados de un HMM. Para profundizar m´as en los conceptos matem´aticos que comprenden la resoluci´on de problemas de reconocimiento de voz con HMMs se puede acudir a [25][8].
Ap´endice B Formato de las etiquetas. El prop´osito de este ap´endice es detallar el formato empleado en la elaboraci´on de los ficheros de etiquetas. En concreto de las etiquetas con informaci´on contextual que a lo largo de la memoria se denominan full.lab. Estos archivos tienen gran importancia en el proceso de s´ıntesis, pues contienen toda la informaci´on sobre las frases a entrenar o a sintetizar. Cada l´ınea de un fichero full.lab sigue la siguiente estructura: t0t1 p0∧p1−p2+p3=p4@p5p6 /A :a0a1a2 /B :b0−b1−b2@b3−b4&b5−b6#b7−b8$b9−b10 !b11 −b12 ;b13 −b14 |b15 /C :c0+c1+c2 /D :d0d1 /E :e0+e1@e2+e3&e4+e5#e6+e7 /F :f0f1 /G :g0g1 /H :h0=h1∧h2=h3|h4 /I :i0i1 /J :j0+j1−j2 75
82 C.2. Maximum A Posteriori. se obtiene: wT i= (G(i))−1wT i(C.16) donde wiyzison las filas i-´esimas de WcyZ, respectivamente. Estas ecuaciones pueden resolverse por m´etodos como la descomposici´on LU o la eliminaci´on de Gauss-Jordan y asi calcular Wcfila a fila. Con Wccalculada y empleando C.1 se pueden obtener los nuevos valores de las medias. C.2 Maximum A Posteriori. La t´ecnica de adaptaci´on MAP [6] se emplea para ajustar los par´ametros del modelo del locutor independiente a los datos del locutor a adaptar. En t´erminos matem´aticos, se pretende maximizar la probabilidad a posteriori del modelo θa los datos del locutor al que se quiere adaptar, x: θ=arg m´ax θg(θ|x) = arg m´ax θf(x|θ)g(θ) (C.17) Las f´ormulas empleadas en el proceso de re-estimaci´on de medias, desviaciones est´andar, pesos, probabilidades de transici´on y probabilidades iniciales se exponen a continuaci´on. bµjk =τm jkµm jk +PT t=1 cjktxt τm jk +PT t=1 cjkt (C.18) bσjk =Uγ jk +Sγ jk +τm jk(µm jk −bµjk)(µm jk −bµjk)T αγ jk −p−1 + cjk (C.19) bwjk =γjk −1 + PT t=1 cjkt PK k=1(γjk −1 + PT t=1 cjkt)(C.20) baij =ηij −1 + PT t=1 ξijt PJ j=1(ηij −1 + PT t=1 ξijt)(C.21) b Πi=ηi−1 + γi0 PN n=1(ηij −1 + γi0)(C.22)
Ap´endice C. Algoritmos de adaptaci´on. 83 Los par´ametros µm jk,Uγ jk,γjk yηihacen referencia a los valores a priori de la media, varianza y peso de la k-´esima Gaussiana en el estado j-´esimo de la unidad central y el peso inicial de la i-´esima unidad, respectivamente. Por otro lado, los par´ametros cjkt,Sγ jk yξijt son la probabilidad de la t-´esima trama de la j-´esima Gaussiana en el estado k-´esimo , la varianza media de las tramas de los nuevos datos de adaptaci´on y la probabilidad de transici´on del estado i-´esimo al estado j-´esimo en el instante de tiempo t. Por ´ultimo, el par´ametro τm jk es el peso de la informaci´on a priori en la j-´esima Gaussiana en el estado k-´esimo en la unidad m. Analizando las ecuaciones anteriores, se observa que cuanto menor sea el valor de τ, mayor importancia se otorgar´a a los nuevos datos de adaptaci´on frente a los datos del locutor independiente.