Desarrollo de un segmentador fonético automático para habla expresiva basado en modelos ocultos de Markov Juan Carmona Mariscal 2. SÍNTESIS DE VOZ Y SEGMENTACIÓN AUTOMÁTICA DE UNIDADES Continuando con el panorama general en el que se enmarca nuestro proyecto, en este capítulo hablaremos brevemente de la síntesis de voz, particularizaremos en la síntesis por concatenación de unidades, que es la que hace uso de la segmentación automática, y terminaremos hablando de la segmentación automática de unidades y comentando un experimento anteriormente realizado en este sentido. 2.1 La síntesis de voz Como comenta Gerardo Martínez en [Martínez 1998] muchos sistemas de laboratorio y dispositivos comerciales realizan la conversión automática de un texto a voz sintetizada. El progreso en este área ha sido posible debido a los avances en la teoría lingüística, en el modelo de caracterización acústica-fonética de los sonidos, en el modelado matemático, en la programación estructurada y en el diseño hardware de los ordenadores. Los pasos seguidos en todo proceso de síntesis son: primero, un conjunto de módulos analiza el texto de entrada para determinar la 2. Síntesis de voz y segmentación automática de unidades 20 Desarrollo de un segmentador fonético automático para habla expresiva basado en modelos ocultos de Markov Juan Carmona Mariscal estructura de la sentencia y la composición fonética de cada palabra y un segundo conjunto de módulos transforma esta representación lingüística abstracta en voz. Los cuatro tipos principales en los que se pueden clasificar los sistemas de síntesis de voz son: Sintetizadores articulatorios. En éstos se realiza una analogía entre parámetros relativos a los órganos articulatorios y sus movimientos con parámetros circuitales. Pueden proporcionar una calidad altísima, pero es muy difícil obtener y controlar parámetros para un sintetizador de este tipo. Sintetizadores por formantes. Son una serie de filtros que modelan el tracto vocal, excitados por fuentes que simulan las cuerdas vocales. Gozan de gran difusión. Sintetizadores derivados de las técnicas de predicción lineal (LPC). Son sintetizadores de análisis-síntesis, en los que los parámetros que controlan la función de transferencia del filtro que simula el tracto vocal son parámetros LPC. Sintetizadores por concatenación de forma de onda. Concatenan unidades pregrabadas para generar nuevas frases, con lo que intentan aumentar la calidad de la señal generada minimizando el ruido de codificación. La complejidad es alta, pero la calidad obtenida es muy buena. 2. Síntesis de voz y segmentación automática de unidades 21 Desarrollo de un segmentador fonético automático para habla expresiva basado en modelos ocultos de Markov Juan Carmona Mariscal Éste último tipo de sintetizador es el que está más íntimamente ligado a nuestro proyecto, por lo que dedicaremos el siguiente epígrafe a su descripción. 2.2 La síntesis por concatenación de unidades Esta estrategia para sintetizar voz consiste en emplear trozos de voz natural pregrabadas como bloques básicos que se concatenan para reconstruir una expresión arbitraria [Martínez 1998]. El tipo de unidad a concatenar es un parámetro crítico para conseguir una buena calidad de la voz sintetizada: hay que llegar a un compromiso entre la calidad intersegmental posible (a mayor longitud de los segmentos, menos puntos de concatenación y por lo tanto mayor calidad) y la cantidad de memoria necesaria para almacenar las unidades pregrabadas. Los trozos grabados no pueden ser palabras por dos motivos fundamentales. En primer lugar, la pronunciación de una frase es muy diferente a la de una secuencia de palabras recitadas aisladamente, ya que en una frase las palabras tienen una duración más corta que cuando están aisladas y el ritmo, entonación y acentuación, que dependen de factores semánticos y sintácticos, son totalmente antinaturales cuando se concatenan palabras grabadas aisladamente. Un segundo problema son las innumerables palabras existentes en un idioma, si tenemos en cuenta por ejemplo los nombres propios, así como la formación de palabras mediante sufijos, 2. Síntesis de voz y segmentación automática de unidades prefijos y 22 Desarrollo de un segmentador fonético automático para habla expresiva basado en modelos ocultos de Markov Juan Carmona Mariscal conjugaciones. La sílaba es una unidad interesante lingüísticamente, pero hay un gran número de ellas. Otra unidad posible es el fonema, pero el resultado de concatenar fonemas no es satisfactorio debido a efectos coarticulatorios entre fonemas adyacentes que producen cambios de las manifestaciones acústicas de un fonema dependiendo del contexto [Martínez 1998]. Los efectos coarticulatorios tienden a minimizarse en el centro acústico de un fonema, lo cual llevó a Peterson a proponer el difonema, el trozo de voz que va desde la mitad de un fonema a la mitad del siguiente fonema, como la unidad más satisfactoria para la concatenación. En castellano, donde se pueden considerar unos 30 alófonos, el número máximo de difonemas sería de 302 = 900, pero no todos se utilizan. Además puede ser necesario introducir alófonos diferentes para hacer la distinción entre las vocales acentuadas y átonas o la inclusión de trifonemas, que son una extensión a agrupaciones de tres fonemas cuando los efectos de coarticulación son tan grandes que no es posible la segmentación en difonemas. Se puede reducir la longitud de la memoria necesitada para el almacenamiento de las unidades: a) evitando las unidades difonema formadas por consonante + consonante que no se puedan dar en el lenguaje y b) tratando algunos alófonos en determinados contextos como una unidad de tipo fonema, como por ejemplo los fricativos sordos. Otra elección crítica es la de la extracción de las unidades y la selección del punto de corte. Los difonemas deben ser grabados por un locutor que sea capaz de controlar y mantener constante la calidad de la voz de 2. Síntesis de voz y segmentación automática de unidades 23 Desarrollo de un segmentador fonético automático para habla expresiva basado en modelos ocultos de Markov Juan Carmona Mariscal forma que no haya cambios repentinos en el espectro de la fuente en medio de las sílabas. La unidad (difonema, trifonema o fonema) debe de ser extraída de algún contexto puesto que no son unidades que puedan ser grabadas aisladamente. Los contextos posibles son: en frase natural: se graban frases diferentes que contienen al menos una unidad. en frase portadora: se graba una frase con una estructura fija donde se cambia solamente una palabra o un par de palabras que contienen la unidad a segmentar. en palabra aislada en logatomos: palabras cortas que incluyen la unidad requerida y no tienen significado semántico. Una vez obtenida la grabación se necesita marcar cada uno de los fonemas (o difonemas) con sus fronteras (inicio y fin), marcaje que resulta tremendamente laborioso para realizar de manera manual y que puede dar lugar a errores, por lo que se hace necesario el uso de algún sistema de segmentación automática como el que desarrollamos en nuestro proyecto. 2.3 La segmentación automática de unidades La segmentación consiste en delimitar mediante etiquetas la posición de los fonemas dentro de las frases. Si dicho proceso de segmentación es realizado manualmente por el usuario éste debe escuchar una a una las locuciones, y colocar las etiquetas que aíslan cada uno de los fonemas 2. Síntesis de voz y segmentación automática de unidades 24 Desarrollo de un segmentador fonético automático para habla expresiva basado en modelos ocultos de Markov Juan Carmona Mariscal dentro de las mismas; este procesado manual requiere una gran cantidad de tiempo y además, en algunos casos, lleva asociado también errores. Estos errores pueden venir derivados del cansancio que este trabajo implica, o en otros casos, de que al ser realizada la segmentación por varias personas con el objetivo de reducir el volumen de trabajo, se producen errores de criterio en la segmentación (distinto criterio a la hora de segmentar algunos fonemas) que llevan a una falta de uniformidad en la base de datos. Como se comenta en [González 2000] algunos de dichos errores pueden ser corregidos mediante el etiquetado automático, ya que por un lado no es necesaria la edición manual para generar el etiquetado (los desarrolladores se pueden centrar así en otros aspectos), y por otro lado, al ser realizado todo el marcado por un mismo programa, el criterio de segmentación de unidades siempre será el mismo. Se puede pensar que es posible que se produzcan también errores de marcado, que en algunos casos podrán ser mayores que con la segmentación manual, hecho que puede quedar compensado por la considerable reducción en el tiempo de procesado. En [González 2000] se describen una serie de experimentos que se llevaron a cabo en el seno del Grupo de Tecnologías del Habla para realizar la segmentación de las frases componentes de una base de datos (NatVox) de una manera automática. Se empleó un reconocedor de palabras aisladas (a diferencia del nuestro, que es a nivel de fonemas). Se emplearon para el entrenamiento y la evaluación locuciones que contenían un total de 16062 alófonos, y para la evaluación de la segmentación automática se consideraron como 2. Síntesis de voz y segmentación automática de unidades 25 Desarrollo de un segmentador fonético automático para habla expresiva basado en modelos ocultos de Markov Juan Carmona Mariscal erróneas aquellas etiquetas en las cuales la posición de la marca difería en más de 20 milisegundos con respecto de la existente en el *.par que había sido marcado manualmente (hay que tener en cuenta, que la resolución del sistema, como ocurre con el nuestro, viene marcada por el desplazamiento de tramas que se emplee, no pudiendo nunca ser mayor que dicho desplazamiento, que tanto en su caso como en el nuestro, es de 10 milisegundos). Con este umbral de 20 milisegundos se obtuvo una tasa de acierto del 89% (tasa de error del 11%) y un error medio cometido por marca del 9%. A lo largo de los capítulos 4 a 7 se describirá nuestro sistema y las bases de datos con las que trabajamos, y en el capítulo 8 describiremos los experimentos realizados y las tasas de error que obtenemos con nuestro sistema, considerando los mismos umbrales que acabamos de comentar. 2. Síntesis de voz y segmentación automática de unidades 26