lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1:...

209
Capítulo 1 Introducción Capítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento de los equipos ha llevado a la presencia de los ordenadores prácticamente en todos los ámbitos de nuestro quehacer diario. Dado el alto grado de convivencia que esto implica, no son de extrañar los intentos por parte de la ciencia de elaborar una forma de comunicación más natural con las máquinas, en el sentido de posibilitar una comunicación oral con las mismas y, por lo tanto, hacer que los seres humanos sean menos reticentes a su utilización. Dentro de las ventajas que nos ofrece la comunicación oral con las máquinas frente al empleo de los métodos tradicionales, podríamos citar, entre otras, que además de ser más reconfortante de cara a los usuarios (al tratarse del modo de comunicación más natural y extendido entre los seres humanos), posibilita la realización de otras tareas de forma simultánea a dicha comunicación, facilita el acceso telefónico a un terminal y adicionalmente, de que las salidas vocales tienen un coste muy bajo y permiten acceder a una gran cantidad de información en poco tiempo. Sin embargo, también conviene considerar que la voz puede interferir con otros sistemas de comunicación o con otras señales sonoras, además de ser fácilmente interceptable por 1

Transcript of lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1:...

Page 1: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

Capítulo 1: Introducción.

1.1. Introducción.

El progresivo desarrollo tecnológico, unido al abaratamiento de los equipos ha

llevado a la presencia de los ordenadores prácticamente en todos los ámbitos de nuestro

quehacer diario. Dado el alto grado de convivencia que esto implica, no son de extrañar

los intentos por parte de la ciencia de elaborar una forma de comunicación más natural

con las máquinas, en el sentido de posibilitar una comunicación oral con las mismas y,

por lo tanto, hacer que los seres humanos sean menos reticentes a su utilización.

Dentro de las ventajas que nos ofrece la comunicación oral con las máquinas

frente al empleo de los métodos tradicionales, podríamos citar, entre otras, que además

de ser más reconfortante de cara a los usuarios (al tratarse del modo de comunicación

más natural y extendido entre los seres humanos), posibilita la realización de otras

tareas de forma simultánea a dicha comunicación, facilita el acceso telefónico a un

terminal y adicionalmente, de que las salidas vocales tienen un coste muy bajo y

permiten acceder a una gran cantidad de información en poco tiempo. Sin embargo,

también conviene considerar que la voz puede interferir con otros sistemas de

comunicación o con otras señales sonoras, además de ser fácilmente interceptable por

terceros y no permite dejar constancia de los mensajes con la misma facilidad que

cuando la interacción se realiza a través de una pantalla. A pesar de todo esto no parece

exagerado afirmar que en muchos casos las ventajas superan con creces a los

inconvenientes.

Una comunicación oral bidireccional con las máquinas hace necesaria la

existencia por un lado, de un módulo que sea capaz de recoger y descodificar los

mensajes orales que le lleguen a la máquina, y por otro, de un módulo que sea capaz de

codificar y emitir mensajes que sean comprendidos por los seres humanos. En la

dirección reseñada han ido apareciendo diversas técnicas de reconocimiento

(descodificación) y síntesis (codificación) de voz, que pretenden hacer posible esta

bidireccionalidad, tratando de conseguir un alto grado de calidad y flexibilidad que haga

1

Page 2: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

posible adaptarse a las diferentes aplicaciones que vayan apareciendo progresivamente,

a cambio de un procesamiento no demasiado complejo en las señales, que haga factible

la utilización de estos sistemas a gran escala.

Dentro de la parte relativa a la síntesis de voz, resulta inevitable hablar de los

sistemas de Conversión Texto-Voz, que realizan en primer lugar una traducción

completa de los textos escritos a una representación lingüística del mensaje (no hay que

olvidar que el habla es un fenómeno complejo que incluye aspectos que no pueden

quedar reflejados simplemente mediante una representación textual) -en lo que se

conoce como procesado lingüístico prosódico- y, posteriormente, de esta representación

a una onda acústica – lo que recibe el nombre de procesado acústico-, constituyendo

esta fase el proceso de síntesis en sí.

Conviene destacar el hecho de que al constituir esta última fase la representación

más visible de los resultados, en ocasiones se tiende a confundir los términos Conversor

Texto-Voz y sintetizador de forma de onda, no siendo ni mucho menos esto correcto, ya

que no debemos olvidarnos de la vital importancia de un correcto funcionamiento de los

módulos previos del Conversor de cara a obtener unos resultados satisfactorios en el

sintetizador de forma de onda (que como luego veremos simplemente se limita a tratar

de conseguir una forma de onda con las características determinadas por estas fases

anteriores). Dentro de las características que cabría exigir a un Conversor Texto-Habla

ideal podríamos citar:

- Capacidad de ofrecer una calidad elevada en los enunciados (en lo

que se refiere a naturalidad, inteligibilidad e incluso intencionalidad o

emotividad).

- Flexibilidad de cara a reproducir cualquier mensaje que se pueda

presentar en las comunicaciones ordinarias.

- Procesamiento relativamente simple y rápido de las formas de

onda.

2

Page 3: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

La implantación de los sistemas de síntesis de voz en aplicaciones reales hoy en

día ha sido posible, sobre todo, gracias a los avances que se han producido en la

segunda mitad de este siglo, avances no sólo en los campos de la ingeniería electrónica

o la computación (como cabría pensar en primera instancia), sino también en el campo

de los conocimientos lingüísticos. Es importante reseñar el hecho de que los avances en

las tecnologías del habla exigen, entre otras cosas, alcanzar un nivel de conocimientos

fonéticos sin los cuales no es posible llegar al grado de adecuación que permita el

desarrollo de aplicaciones, y es por este motivo por el que el diseño o evaluación de

sistemas, requiere muchas veces de la colaboración de expertos en temas relacionados

con la lingüística, y no meramente con aspectos técnicos.

Aunque si bien el campo de posibles aplicaciones de la síntesis de voz se

presenta como algo muy extenso, no conviene olvidar que el empleo de estas técnicas se

debe restringir a lugares muy puntuales, con el fin de evitar efectos contrarios al

buscado; es lo que se conoce como la “contaminación sonora” por voces sintéticas.

Dentro de las aplicaciones desarrolladas en la actualidad podríamos citar entre otras:

· Máquinas lectoras para ciegos.

· Ayudas para los disminuidos físicos.

· Enseñanza asistida por ordenador.

· Terminales hablantes...

Para terminar esta introducción, convendría reseñar que la definitiva

implantación de estas aplicaciones está condicionada al soporte de un sintetizador de

forma de onda que sea capaz de entregar una señal acústica de calidad “humana”. En

este sentido el trabajo por parte de los investigadores es continuo, buscando dotar a la

voz sintética de la mayor calidad posible, partiendo siempre de la base de la

inteligibilidad y tratando de hallar aquellas características que contribuyan más

firmemente a una mayor aceptación por parte del ser humano: entonación, expresión de

emociones..., hecho que no hace sino ampliar aún más el espectro de posibles

aplicaciones en los años venideros.

3

Page 4: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

1.2.Descripción general de los Conversores Texto-Voz.

Como ya fue citado en el apartado anterior, una conversión automática de texto a

voz supone una serie de procesos de tipo muy diverso. Por un lado, es necesario realizar

un conjunto de tareas de tipo lingüístico que, partiendo del análisis del texto de entrada,

puedan proporcionar datos útiles para la correcta y natural lectura del texto. Por otro

lado, es necesario generar una señal de voz mediante métodos electrónicos, lo cual

supone el empleo de técnicas de procesado digital de voz.

Un Conversor Texto-Voz general puede ser representado mediante un diagrama

de bloques [Saíz, 00], en el cual se puede apreciar esta dualidad de tareas que es

necesario llevar a cabo. Por un lado, aparecería un bloque de procesado lingüístico y

por otro lado un bloque de síntesis de voz. Dentro del primero se pueden distinguir los

siguientes módulos fundamentales —aunque pueden existir algunos más—:

preprocesador, categorizador, estructurador, conversor grafema-alófono, pausador y

síntesis prosódica

La principal función del bloque de procesado lingüístico, es la de determinar la

secuencia de sonidos que hay que producir para sintetizar correctamente el texto de

entrada. Los resultados generados en este bloque se pasarán al bloque de síntesis, que

procesará los datos y generará los sonidos. En este bloque se llevan a cabo

fundamentalmente dos tareas: obtener la cadena de sonidos (alófonos) correspondientes

al texto de entrada, y obtener información prosódica para su producción.

4

TEXTO

SÍNTESIS

DE VOZ

PROCESADO LINGÜÍSTICO

Conv. grafema-alófono

Pausador Síntesis Prosódica

Preproce-sador

Categori-zador

VOZ

Estructu-rador

Page 5: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

Pasamos a describir brevemente la funcionalidad de cada uno de los módulos

que componen este bloque (información más detallada puede encontrarse en [Saíz, 00]):

- Preprocesador . Un texto puede contener expresiones que no están

constituidas directamente por letras y palabras, y que es necesario interpretar

para que puedan ser tratadas por el resto de los módulos que constituyen el

bloque de procesado lingüístico del Conversor. El preprocesador se encarga

de sustituir estas expresiones por la secuencia de caracteres alfabéticos que

equivaldrían a la lectura que haría una persona.

- Categorizador . La principal tarea de este módulo es la de asignar categorías a

las palabras con el objetivo de que el Conversor haga una lectura “con

sentido” de los textos (añadiendo, por ejemplo, pausas que no venían

marcadas ortográficamente). Las categorías que se asignan no son

exactamente categorías gramaticales, sino un conjunto de códigos que en

muchos casos se corresponden con verdaderas categorías gramaticales, pues

descubrir la estructura sintáctica sigue siendo una labor demasiado compleja

si no se ponen restricciones a la gramática [Jiménez, 99].

- Estructurador . La misión de este módulo es la de realizar un análisis

sintáctico de las frases [Polanco, 00].

- Conversor grafema-alófono . Este módulo es el que se encarga de determinar

cuál es la secuencia de alófonos que corresponde a la secuencia de letras de

una frase. Hay que tener en cuenta que la correspondencia entre letras

(grafemas) y sonidos (alófonos) no es tal que siempre la misma letra

produzca el mismo alófono, sino que la conversión depende de una serie de

reglas

- Pausador . El pausador se encarga de introducir, en el discurso, pausas

adicionales a las que van indicadas mediante signos ortográficos. La

principal razón para introducir pausas es simular el comportamiento real de

5

Page 6: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

un lector humano. La introducción de las pausas debe hacerse de acuerdo

con la estructura sintáctica del mensaje para intentar reforzarla, ayudando así

a la comprensibilidad del mismo.

- Síntesis prosódica. Los principales aspectos de la prosodia que se fijan en

este módulo son, además de las pausas, la duración de los alófonos, la

evolución temporal de la frecuencia fundamental (o contorno de F0) y el

contorno de la energía o amplitud de la señal de voz.

La misión del bloque de síntesis de voz es la de generar sonidos tan similares a

la voz como sea posible, presentando un alto grado de flexibilidad en cuanto a su

capacidad para ser controlado, de modo que se pueda variar la realización de los

sonidos.

La información de entrada a este bloque incluye la secuencia de alófonos que

hay que generar, y los datos de prosodia (típicamente, duración de los alófonos,

contorno de frecuencia fundamental, y contorno de energía o amplitud).

Hay dos enfoques que, en cierto modo, determinan el tipo de sintetizador que se

emplee. El primero de ellos, que podríamos denominar «modelo de sistema», intenta

modelar, con mayor o menor detalle, el mecanismo de producción de la voz. Este

enfoque ha dado origen a dos tipos de sintetizadores: los sintetizadores articulatorios y

los sintetizadores de formantes. El segundo enfoque, que podríamos llamar «modelo de

señal», es el que intenta modelar no el mecanismo de producción, sino la señal de voz;

dentro de este enfoque se encuentran los sintetizadores por concatenación. Los distintos

tipos de sintetizadores serán explicados más adelante.

6

Page 7: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

Capítulo 2: Sistemas de síntesis de voz.

2.1. Introducción.

Si bien existen varias clasificaciones posibles de los sistemas de síntesis de voz,

la más común de todas ellas es aquella que se refiere al tipo de codificación de la señal

de voz y al número de reglas que se necesitan para su reconstrucción posterior. Así

podemos distinguir [Galanes, 95]:

- Sintetizadores articulatorios .

En los sintetizadores articulatorios el objetivo es el de controlar un modelo del

aparato fonador, de manera semejante a como lo hace el cerebro, constituyendo los

parámetros de control (parámetros circuitales) de dicho modelo, la posición de los

distintos órganos articulatorios y las leyes que rigen su movimiento.

Estos sintetizadores presentan la dificultad de la obtención y control de

parámetros para su manejo (dificultad en el análisis de la posición y movimiento de los

órganos articulatorios de una persona que habla normalmente, así como de cara a la

coordinación y derivación de la gran cantidad de parámetros de control, existentes a la

entrada del sintetizador), lo que ha motivado que sean actualmente los menos

desarrollados.

- Sintetizadores por formantes.

Están constituidos por una serie de filtros que modelan las resonancias

(formantes) del tracto vocal, y que están excitados por un sistema de fuentes que

modelan tanto la vibración de las cuerdas vocales como el ruido que se produce en la

fricación. La principal ventaja que ofrecen estos sistemas es que trabajan con

parámetros que mantienen una relación directa con el mecanismo de producción del

habla, y son fácilmente manipulables de cara al control del sintetizador.

7

Page 8: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

Dependiendo del control que se haga de los parámetros, se puede establecer una

subdivisión entre:

- Sistemas de síntesis por regla: los parámetros se calculan con arreglo a

un conjunto de reglas dependientes del contexto (un fonema de una clase

precedido por otro de otra clase presenta un espectro de una forma determinada).

- Sistemas de análisis-síntesis: los parámetros se obtienen por análisis o

parametrización de segmentos de voz natural.

Los sintetizadores por formantes gozan de gran difusión por el atractivo que

presentan para estudios fonéticos.

Figura 2.1. Esquema básico de los sintetizadores por formantes.

8

FILTRO F2

FILTRO F1

SINTETIZADOR POR FORMANTES EN SERIE

FRECPRIMER FORMANTE

FRECSEGUNDOFORMANTE

FRECTERCERFORMANTE

FILTRO F3

FUENTE

F 1

FUENTE

F 2

F0 Y AMPLIT 2º FORMANTE

F3

F0 Y AMPLIT 1º FORMANTE

F0 Y AMPLIT 3º FORMANTE

SINTETIZADOR POR FORMANTES EN PARALELO

+

Page 9: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

- Sintetizadores derivados de las técnicas de predicción lineal (LPC).

Se basan en la posibilidad de modelar el tracto vocal como una serie de cilindros

huecos de diámetro variable. Las propiedades de la onda sonora, después de haber

pasado por todos ellos, pueden predecirse teniendo en cuenta que cada uno de los

cilindros condiciona la forma de la onda sonora al entrar en el siguiente. Este cálculo

complejo se simplifica mediante la utilización de la predicción lineal, y aprovechando la

periodicidad de la onda sonora.

Existen varias clases dependiendo del método concreto de codificación

empleado, siendo los más extendidos hoy día los sintetizadores multipulso (MLPC).

Como características generales cabría citar su baja complejidad y su buena calidad.

- Sintetizadores por concatenación de forma de onda.

En estos sintetizadores se intenta aumentar la calidad de la señal generada por

medio de una minimización del ruido de codificación, para lo que se concatenan

unidades digitalizadas (pregrabadas) y se ajusta su prosodia original a la de la nueva

frase. Podemos distinguir entre:

- Sintetizadores basados en métodos PSOLA (Pitch-Synchronous Overlap-

Add). Este tipo concreto va a ser el que nosotros utilizamos y será explicado más

adelante.

- Sistemas basados en Codificación Armónica.

- Codificadores multibanda.

A cambio de su elevada complejidad, estos son los sistemas que nos ofrecen una

mayor calidad.

Como un caso especial de este tipo de sintetizadores, se encuentran los

sintetizadores por selección. Estos sistemas se basan en la selección de las unidades a

concatenar de cara a la síntesis en función de sus características prosódicas. En este tipo

de sintetizadores, a diferencia de los casos anteriores no se realiza ningún tipo de

9

Page 10: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

codificación ni de modificación prosódica, concatenándose directamente las unidades

pregrabadas.

2.1.1. Comparación De Los Sistemas De Síntesis Más Utilizados

Haciendo un resúmen de todo lo dicho hasta ahora, tenemos que los

sintetizadores por formantes presentan la ventaja de permitir manipular las

características de la fuente de voz. Por el contrario, en los sintetizadores por

concatenación la fuente de voz es única y corresponde a la grabación de los difonemas,

lo que debe realizarse por un locutor capaz de controlar y mantener constante la calidad

de la voz para evitar cambios repentinos en el espectro de la fuente en el medio de las

sílabas.

En cuanto a la calidad de la voz sintética, con el método de concatenación se

consiguen mejores resultados. Además la síntesis por concatenación permite alcanzar un

alto grado de naturalidad.

10

Page 11: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

2.2. La síntesis TD-PSOLA.

La síntesis TD-PSOLA (Time Domain Pitch-Synchronous Overlap-Add) forma

parte de las técnicas de síntesis por concatenación de forma de onda, que como ya se

subrayó en el capítulo anterior tratan de conseguir una mejora en la calidad de la síntesis

a través de la concatenación de unidades digitalizadas pregrabadas, minimizándose así

el ruido de codificación. Adicionalmente al proceso de adquisición y grabado de dichas

unidades, será necesario un procesado previo de las mismas con el fin de obtener la

información prosódica de las mismas que necesita el algoritmo.

Dado que la concatenación directa de unidades no es posible (al tener éstas

normalmente una prosodia distinta de la buscada), el principal problema que se va a

plantear reside en las modificaciones que son necesarias para adaptar la prosodia de las

unidades pregrabadas, a la prosodia del texto (procedente del bloque de procesado

lingüístico del Conversor Texto-Voz) en donde se desean utilizar, sin que se produzcan

pérdidas graves o apreciables de calidad. El algoritmo TD-PSOLA, al igual que el resto

de técnicas PSOLA trata de hacer dicha adaptación a través de modificaciones en la

transformada de Fourier, afectando dichas modificaciones de forma conjunta a la

frecuencia fundamental y a la duración de las unidades.

Hay que destacar que también es posible realizar una modificación de la energía

de las unidades, aunque este aspecto se puede considerar como un toque final de calidad

en los sistemas, debiéndonos centrar fundamentalmente en los dos primeros y dejando

este último para las fases finales de desarrollo. En relación a este aspecto, el tratamiento

más frecuente que se llevará a cabo será el de hacer una normalización de las energías

de las unidades de la base de datos con respecto de un valor determinado, dado que en

principio las unidades vendrán de contextos diferentes, y tendrán energías muy distintas.

El fín perseguido con dicha normalización es el de conseguir que a la hora de

concatenar las unidades, todas ellas posean aproximadamente la misma energía,

traduciéndose este aspecto en enunciados con una intensidad sonora aproximadamente

uniforme, y por lo tanto con una mayor calidad.

11

Page 12: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

El algoritmo TD-PSOLA presenta la ventaja frente al resto de métodos PSOLA

de que, al hacerse todas las modificaciones en el dominio temporal, se elimina la carga

de cálculo debida a la FFT. Teóricamente, nos ofrece la posibilidad de modificar la

frecuencia en un rango de, aproximadamente, unas dos octavas (de la mitad de la

frecuencia original al doble de ésta), aunque en la práctica el intervalo permitido se

acorta bastante si queremos mantener un determinado grado de calidad.

El proceso de síntesis.

Como ya se dijo anteriormente, el punto de partida de la síntesis es una

secuencia de unidades digitalizadas pregrabadas a concatenar, cuyas características

prosódicas tendremos que modificar para adaptarnos a las de una determinada secuencia

objetivo que habrá sido generada previamente a partir de un texto por un módulo

anterior del Conversor Texto-Voz. Este módulo es el encargado de generar la prosodia

de dicho texto de una forma automática, es decir, a partir de un texto de entrada que es

lo que se desea sintetizar se encargará de generar otro fichero de texto que constituirá la

entrada del sintetizador. En este fichero, además de aparecer las unidades procedentes

de la base de datos que serán necesarias para sintetizar el texto, lo hará la prosodia de

dichas unidades en la frase en concreto, esto es, sus características de duración y tono

medio, ya que como se reseñó anteriormente una simple representación textual de los

mensajes no nos sirve para poder modelar el fenómeno del habla.

Las unidades a considerar pueden ser fonemas, difonemas o trifonemas, estando

en todos los casos éstas constituidas por una serie de periodos básicos de señal que

vienen delimitados por las marcas de pitch (marcas colocadas sobre la señal que tratan

de reflejar los momentos de cierre de la glotis). Estas marcas reciben el nombre de

marcas de análisis, y son provenientes del procesado previo que fue citado al comienzo

del apartado.

12

Page 13: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

Figura 2.2. Señal de voz con sus marcas de pitch.

Fig. 2.3 Marcas de pitch y periodos de la señal.

La forma que tiene el algoritmo TD-PSOLA de conseguir las modificación de

las características prosódicas de las unidades almacenadas en la base de datos es

mediante la repetición en el tiempo de los periodos básicos constituyentes de las mismas

con una determinada cadencia, lo que consigue modificar la estructura de armónicos de

las unidades originales sin llegar a perturbar el espectro “fino” de la señal. Estos

periodos básicos se enventanan de una forma síncrona con las marcas de pitch, de tal

forma que la longitud de las ventanas sea siempre mayor que un periodo fundamental,

existiendo un solape entre periodos consecutivos. Habitualmente el enventanado

realizado es de Tukey, con una longitud de ventana que es el doble del periodo

fundamental y centrado en las marcas de pitch, hecho que contribuye a minimizar el

13

1 2 3 4

Page 14: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

efecto de la reverberación producido por la copia de señales a corto plazo y a suavizar

las transiciones espectrales.

El primer paso a seguir, una vez realizado el enventanado de la señal de análisis,

será el cálculo del número de marcas de pitch que tendrá la señal sintetizada:

Donde T0medio es el periodo medio del difonema a generar.

En cuanto a la posición de dichas marcas, hay que tener en cuenta que el tono no

va a ser constante a lo largo de la unidad a generar, no encontrándose por lo tanto las

marcas de pitch equiespaciadas a lo largo de la misma. Partiremos de un valor inicial

para el primer periodo del difonema, T0inicial, debiendo terminar en un valor T0final para el último periodo. Una posibilidad que presenta la ventaja de conseguir una evolución continua de la entonación, es la de suponer que la curva de tono se comporta de forma lineal a lo largo de la unidad. De esta forma se puede determinar la posición de las marcas de síntesis sin más que calcular el escalón de la curva de síntesis. Así:

Fig. 2.4 Posición de las marcas de síntesis.

14

To To+esc To+2esc To+3esc

Page 15: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

El siguiente paso a realizar, consiste en establecer una correlación entre los periodos de la señal de análisis y los periodos de la señal de síntesis, de cara a realizar la copia o la supresión de los periodos de la señal original del eje de análisis al de síntesis. Dado que cada uno de los nuevos periodos a generar, en principio, tendrá una duración diferente a la del periodo original del que provienen, habrá que realizar una serie de transformaciones sobre los mismos que básicamente consistirán en lo siguiente:

- Si el periodo a generar tiene una duración inferior a la del periodo original eliminaremos muestras del mismo.

- Si por el contrario la duración es mayor, completaremos con ceros las muestras del periodo original.

Fig. 2.5 Correlación entre los ejes de análisis y síntesis.

El último paso para la obtención de la señal sintetizada consiste en un filtrado Overlapp-Add entre los periodos consecutivos y enventanados de la señal de síntesis. Al igual que el enventanado de

15

Eje de análisis

1 2 3

Eje de síntesis

1 2 2 3

Page 16: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

análisis, el enventanado en la síntesis también es de Tukey, tiene un tamaño de dos periodos básicos de señal, y está centrado en las marcas de pitch de síntesis. Con este proceso conseguimos una señal simétrica a partir de un espectro modificado de forma arbitraria. Más información sobre el algoritmo TD-PSOLA se puede encontrar en [Galanes, 95].

16

Page 17: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

Capítulo 3: La base de datos.

3.1. Introducción.

Puesto que el método escogido en este trabajo para realizar la síntesis de voz es

el de síntesis por concatenación utilizando el algoritmo TD-PSOLA, la base de datos va

a constituir uno de los aspectos fundamentales de nuestro sistema, dado que es el lugar

en donde se van a almacenar las unidades digitalizadas pregrabadas que, junto con la

información asociada a las mismas, luego deberá emplear el sintetizador.

La elección del tipo de unidades a almacenar, así como la clase de información

asociada a las mismas, dependerá de la aplicación en concreto, existiendo múltiples

posibilidades. Centrándonos en primer lugar en el tipo de unidades que ibamos a

almacenar, en nuestro caso se escogió el difonema (segmento que abarca desde la zona

estable de un fonema hasta la zona estable del siguiente fonema, incluyendo la

transición entre ambos fonemas consecutivos) ya que supuso la mejor alternativa, al

mantenerse de esta forma una buena relación entre el tamaño necesario para el

almacenamiento de la base de datos de unidades, y el bajo ruido por concatenación para

generar las distintas secuencias objetivo. Así:

- Aunque la calidad no resulta tan elevada como en el caso de almacenar

directamente palabras y frases (al ser necesario un mayor número de concatenaciones),

con un número mucho más reducido de unidades es posible dotar al sistema de una

flexibilidad que resultaría impracticable con las anteriores, dado el altísimo coste de

almacenamiento necesario. Hay que tener en cuenta que, si empleásemos palabras en la

base de datos, sería necesario almacenar todas aquellas que pudiesen darse en una

conversación cualquiera (en todos sus posibles contextos y valores prosódicos), lo que

claramente resultaría prohibitivo desde el punto de vista del coste de almacenamiento.

17

Page 18: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

Una solución parcial a este efecto, podría ser grabar bases de datos específicas para las

distintas aplicaciones, pero este hecho eliminaría la componente de flexibilidad de las

mismas, y además no haría posible la reutilización de las bases de datos entre

aplicaciones, lo que aumentaría mucho el trabajo de cara a la elaboración de nuevas

aplicaciones, al ser necesario cada vez repetir todo el proceso de creación de la base de

datos para dichas aplicaciones.

- A pesar de que el coste de almacenamiento es mayor que en el caso de emplear

una base de datos de fonemas, al ser más reducido el número de fonemas existentes,

éstos presentan la desventaja de estar sometidos a fuertes variaciones contextuales, lo

que origina problemas importantes de concatenación. El difonema, además de necesitar

un menor número de concatenaciones que el fonema (con lo que esto conlleva en cuanto

a distorsión) elude el problema de la unión en las zonas finales de los fonemas, que

típicamente se caracterizan por su inestabilidad reduciéndose mucho la calidad de la

síntesis al resultar muy patentes los efectos de coarticulación entre unidades.

Otro aspecto a tener en cuenta que se encuentra relacionado con el tipo de

unidad a emplear, es el hecho de que en la base de datos se permitió la existencia de

varias instancias de una misma unidad. Con esta estrategia, pese a aumentarse la

capacidad necesaria de almacenamiento, se contribuye a una gran mejora en la calidad

final de la síntesis, al dotar al sistema de la posibilidad de escoger aquellas unidades que

mejor se ajusten a la prosodia objetivo, reduciéndose de este modo la distorsión global

generada por el sintetizador al realizar el procesado de señal, y generándose por lo tanto

una voz sintética de mayor calidad (en cuanto a naturalidad e inteligibilidad).

En lo respectivo al tipo de información que almacenar asociada a las unidades,

se podría hacer una clara división de las características que resulta necesario almacenar,

en función de los requisitos de los distintos módulos del conversor Texto-Voz que

hacen uso de la base de datos. Por un lado se encuentran aquellas características

relacionadas con la duración, tono medio y posición de las marcas de tono, que

básicamente son empleadas por el sintetizador, y por otro lado tenemos un conjunto de

características empleadas en el programa de selección de unidades, cuya elección se

hizo teniendo en cuenta aquellas características tanto acústicas como prosódicas que se

18

Page 19: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

consideró que podían contribuir mayormente a disminuir la distorsión procedente de la

concatenación de unidades.

3.2. Adquisición y marcado de la base de datos.

El primer paso de cara a la construcción de la base de datos es la grabación de las frases y párrafos que deben contener los difonemas de la base de datos.

La base de datos de voz femenina.-

En cuanto a la base de datos de voz femenina empleada en la síntesis de dominio restringido, se utilizó el mismo material que fue empleado por el GTH para la elaboración de la base de datos dentro del proyecto de mejora de calidad de voz femenina realizado para la empresa Natural Vox. La síntesis de dominio restringido presenta la característica de que el conjunto de valores que van a ser sintetizados se encuentra hasta cierto punto predeterminado, a diferencia de lo que ocurriría en una aplicación de una síntesis de propósito general, en la que en principio los enunciados a sintetizar podrían ser cualesquiera.

En un principio, se partió de un conjunto de frases-patrón constituidas por un determinado enunciado, que era fijo para todas ellas, y una serie de campos variables, que constituían aquellos que más tarde serían sintetizados (eran los que determinaban el conjunto de valores a sintetizar en la aplicación). Dado que los valores a ser sintetizados tenían que sonar dentro de dichas frases patrón, y que además lo harían siempre en una determinada posición, lo lógico era

19

Page 20: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

grabar los difonemas dentro de dichas frases patrón, para que a la hora de ser pronunciados siguiesen la prosodia que tendrían normalmente en la frase, consiguiéndose de este modo una mayor naturalidad y derivada de esta una mayor calidad. Hay que destacar que en dichas frases-patrón la grabación del campo variable se hacía precedida de una pequeña pausa con el objeto de limitar la variedad prosódica.

En definitiva, se disponía de un conjunto de frases que servían como portadoras para unos determinados fonemas, sirviendo toda la frase como soporte para conseguir que la palabra en concreto que a nosotros nos interesaba, no se pronunciase de forma aislada, obteniendo de este modo una mayor naturalidad aunque, si bien es cierto, a costa de la pérdida de algo de calidad acústica al no remarcarse tanto los difonemas a extraer, y venir influenciados éstos por el contexto en concreto.

Como ya se ha dicho, se partió de un conjunto de 22 frases patrón iniciales que eran las siguientes [Montero, 99]:

1. La nacional I tiene, en sentido salida de Madrid, en la provincia de Álava, circulación interrumpida en NOMBRE DE POBLACIÓN, entre los puntos kilométricos 15 al 20.

2. La nacional I tiene, en Madrid, el puerto de NOMBRE DE PUERTO, con cadenas.

3. La nacional I tiene, en Madrid los puertos de NOMBRE DE PUERTO y NOMBRE DE PUERTO cerrados.

4. El tren Estrella, NOMBRE DE POBLACIÓN- NOMBRE DE POBLACIÓN, sale a las HORA llega a las HORA.

5. La última estación por la que ha pasado el tren Estrella, con origen en Irún y destino a Madrid, es NOMBRE DE POBLACIÓN, y llegará a su destino con 25 minutos de retraso.

20

Page 21: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

6. De acuerdo, Señor APELLIDO, ¿Qué operación desea?7. ¿Qué operación desea Señor APELLIDO?8. Señor APELLIDO, ¿qué operación desea?9. El último movimiento contabilizado en su cuenta de ahorro

es el siguiente: el uno de Enero MOVIMIENTO, diez mil pesetas.

10. Los últimos movimientos contabilizados en su cuenta de ahorro son los siguientes: el uno de febrero cargo por MOVIMIENTO, 5685 ptas; el 13 de febrero abono por MOVIMIENTO, 6587 ptas. Y finalmente, el 16 de febrero cargo por MOVIMIENTO, 16789 ptas.

11. La próxima vez puede acceder a esta operación diciendo: PALABRA CLAVE.

12. El estado del cheque de 300.000 pesetas es de ESTADO DE CHEQUE.

13. Se lo enviamos al número NUMERO DE TELÉFONO.14. Repasemos los datos, quiere hacer un traspaso a su TIPO

DE CUENTA, de la oficina 1.234 de la entidad ENTIDAD por importe de 25.000 pesetas.

15. Diga los cuatro dígitos de la coordenada LETRA-NUMERO.

16. ¿A su TIPO DE CUENTA?17. Repasemos los datos, quiere suscribir en FONDO 25.000

pesetas.18. ¿De su FONDO 3457?19. ¿Quiere conocer el valor de la DIVISA?20. Un momento, le pasamos con NOMBRE Y APELLIDO.21. ¿Desea información sobre TIPO DE INFORMACIÓN?22. La A-483 Carretera de POBLACIÓN, tiene, en sentido

ascendente de kilometraje, circulación intensa.

Tras analizar la estructura de las frases patrón propuestas en un principio, se realizaron una serie de agrupaciones de los campos

21

Page 22: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

variables de dichas frases para grabar la base de datos de prosodia. Como se cita en [Montero, 99], estos agrupamientos se realizaron en función de las similitudes prosódico-fonéticas existentes entre dichas frases, llegándose a las siguientes conclusiones:

- Frases 1, 2, 3, 4, 5, 22 : los nombres propios de poblaciones y puertos de montaña en oraciones enunciativas y con situación entre pausas podían ser agrupados, dando lugar al campo variable NOMBRE PROPIO ENUNCIATIVA.

- Frases 6, 8 : los nombres propios de persona (incluyendo la combinación: nombre de pila + apellidos) en oraciones enunciativas y posición entre pausas podían ser agrupados junto a los anteriores, ampliando el ámbito de NOMBRE PROPIO ENUNCIATIVA.

- Frase 20 : los nombres propios de persona en oraciones enunciativas y posición final de frase y entre pausas, también se podían agrupar dentro del campo NOMBRE PROPIO ENUNCIATIVA, haciéndose observar la necesidad de que las grabaciones fuesen realizadas con prosodia neutralizada (sin énfasis especial debido a estar en posición final de frase).

- Frase 7 : los nombres propios de persona en oraciones enunciativas y posición final de frase, dan lugar al campo variable NOMBRE PROPIO INTERROGATIVA. Al tratarse de un campo que es generalizable (a pesar de que dicha generalización no fuese aplicada a los servicios telefónicos de Natural Vox que se encontraban en funcionamiento) se consideró necesaria la ampliación del corpus de prosodia con la inclusión de nombres propios completos y nombres de poblaciones y puertos, en oraciones interrogativas y posición final.

- Frases 9, 10 : al responder los movimientos bancarios a una sintaxis no habitual en el lenguaje escrito o hablado –

22

Page 23: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

presentan unas estructuras sintácticas simplificadas basadas en secuencias de sustantivos, con importante omisión de elementos de enlace (preposiciones) y escasez de adjetivos- pasan a formar parte del campo variable SINTAXIS SIMPLE ENUNCIATIVA, que fue necesario completar con artículos y preposiciones. Este campo también puede incluir nombres propios.

- Frase 11 : puesto que las palabras clave de un servicio telefónico bancario presentaban características similares a los movimientos bancarios, se decidió integrarlas en el campo SINTAXIS SIMPLE ENUNCIATIVA, grabando dichas palabras con prosodia neutralizada.

- Frases 14, 17 : dado que los tipos de cuentas y nombres de entidades implicaban igualmente la lectura de nombres compuestos de acuerdo con una sintaxis restringida, también se les agrupo en el campo SINTAXIS SIMPLE ENUNCIATIVA.

- Frases 16, 19, 21 : los campos variables contenidos en todas estas frases tenían en común el pertenecer a frases patrón interrogativas y el encontrarse en posición final de frase. Por ello, se agruparon dentro del campo SINTAXIS SIMPLE INTERROGATIVA. A fin de completar este campo de cara a futuras aplicaciones, se planteó su ampliación con la inclusión de compuestos (movimientos bancarios, etc y nombres propios), en oraciones interrogativas y posición final.

- Frase 4 : para la síntesis de horas en posición final o no final, se pensó que compensaba la utilización de técnicas de concatenación de mensajes pregrabados sin modificación prosódica.

- Frase 12 : dada la poca variedad de vocabulario relacionada con el estado de un cheque, se pensó que podría ser

23

Page 24: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

preferible tratar este caso mediante la reproducción de mensajes pregrabados.

- Frase 13 : el tratamiento de números de teléfono podría ser igualmente un caso de reproducción de mensajes pregrabados, ya que resultan de utilidad general para numerosas aplicaciones.

- Frase 15 : sintetizar una letra y un número es una tarea que puede ser fácilmente resuelta mediante mensajes pregrabados, dada la escasa variedad que va a presentar este campo.

Al final de todo este análisis se llegó a los siguientes campos variables:

1. NOMBRE PROPIO ENUNCIATIVA: se grabó una base de datos con nombres de puertos, personas, etc en oraciones enunciativas y posición entre-pausas.

2. NOMBRE PROPIO INTERROGATIVA: se decidió incluir este caso en el campo 4, que se cita más adelante.

3. SINTAXIS SIMPLE ENUNCIATIVA: Se grabó una base de datos con sintagmas nominales de variada complejidad, en oraciones enunciativas y posición entre-pausas.

4. SINTAXIS SIMPLE INTERROGATIVA: se grabó una base de datos con sintagmas nominales de variada complejidad, en oraciones interrogativas. Se amplió la base de datos con apellidos, etc. con el objeto de poseer un mayor número de datos que nos ayudasen a obtener datos sobre la prosodia que fuesen más fiables.

5. HORAS: se decidió reproducir este campo en lugar de sintetizarlo.

6. TELÉFONOS: se decidió reproducir este campo.7. LETRA-NÚMERO: se decidió reproducir este campo.

24

Page 25: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

Por todo lo dicho anteriormente, al final se pasó del conjunto inicial de 22 frases a un total de 19, eliminándose de la propuesta inicial las frases 7 (nombre propio en interrogativa), 13 (número de teléfono) y 15 (letras y números) [Montero, 99].

Una vez determinadas las distintas agrupaciones de campos variables y frases portadoras con vistas a la grabación de la base de datos, el siguiente paso consistió en seleccionar dentro de la lista global con todos los valores de dichos que debían ser sintetizados en la aplicación, un conjunto reducido a partir del cual se pudiesen obtener datos fiables sobre la curva de entonación a seguir. Con este subconjunto del total debía ser posible elaborar un modelo de entonación y duraciones adecuado para la generación de la prosodia automática, y poder resintetizar cualquiera de los valores propuestos.

De cara a seleccionar las frases que iban a ser finalmente grabadas (los distintos “valores” de entre la lista total que íbamos a grabar, de tal modo que a partir de esta reducida selección se pudiesen obtener datos “fiables” sobre la generación de prosodia automática, y así poder sintetizar satisfactoriamente todo el conjunto de posibles valores), se siguieron una serie de criterios en función de todos los aspectos que influían en la síntesis de la prosodia de un texto general. Dado que tan sólo podíamos grabar unas 600 frases, y que con esta cantidad resultaba imposible reproducir la distribución de probabilidad general de un texto general (aproximadamente la misma distribución de probabilidad de fonemas y contextos, de sílabas acentuadas, diptongos...) se optó por emplear los siguientes criterios de selección:

- Criterio fonético : se intentó conseguir una distribución fonética (probabilidad de aparición de cada fonema) que no se alejase más allá de un 5 % (como máximo) de la

25

Page 26: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

distribución original de la base de datos de que se disponía (con la totalidad de valores).

- Criterio silábico : se trató de reproducir la distribución original de sílabas acentuadas/no acentuadas, abiertas/cerradas, con diptongo/sin diptongo, en posición final/en posición no final, siguiendo el mismo criterio del 5 % de desviación máxima.

- Criterio acentual : se buscó una distribución adecuada de palabras acentuadas/palabras función, oxítonas/paróxitonas/proparoxítonas.

- Criterios de palabras : dado que los nombres que iban a ser sintetizados podían ser compuestos, se buscó reproducir la base de datos original en cuanto a número de palabras por campo variable y número de sílabas por palabra.

En cuanto a la selección de valores para la base de datos de

nombres propios, estos fueron resumidos mediante un programa automático de selección de nombres a partir de las listas completas del GTH y Natural Vox de puertos, pueblos y apellidos. Para el resumen de los apellidos se mezclaron criterios de selección probabilística (se tomaron los apellidos más frecuentes presentes en las guías telefónicas españolas) y de resumen automático. En total, se decidió grabar un total de 660 frases distribuídas según se indica a continuación:

· Frases 2 y 3: 3 campos variables, 50 puertos por campo: 150 puertos, 100 frases.

· Frases 6, 7 y 17: 3 campos variables: 360 apellidos (150 apellidos simples resumidos, 130 apellidos simples muy frecuentes y 80 apellidos compuestos: 80 apellidos simples muy frecuentes + 80 apellidos simples resumidos), 360 frases.

· Frases 1, 4, 5 y 19: 5 campos variables, 50 pueblos por campo: 250 pueblos, 200 frases.

26

Page 27: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

Para la base de datos con sintagmas nominales en oraciones enunciativas se grabaron las listas completas asociadas a los campos variables (no había que resumir datos al carecer de una cantidad mayor que el número de frases a grabar), salvo en el caso de los bancos, en cuyo caso se empleó una combinación del resumen automático y un conjunto de bancos de nombre no castellano elegidos manualmente. En total, había 307 frases repartidas según sigue:

· Frases 8 y 9: 4 campos variables: 150 movimientos bancarios (36+3*38), 74 frases (36+38).

· Frase 10: 1 campo variable: 23 operaciones bancarias, 23 frases.

· Frase 11: 1 campo variable: 7 estados de cheques, 7 frases.

· Frase 12: 2 campos variables: 43 tipos de cuentas y tarjetas, 172 nombres de bancos (157 nombres castellanos resumidos + 15 no castellanos elegidos manualmente), 172 frases (43 + 43 + 43+ 28+ 15).

· Frase 14: 1 campo variable: 31 fondos de inversión, 31 frases.

En cuanto a la base de datos con sintagmas nominales en oraciones interrogativas, dado que no había una gran variedad de datos, se grabaron las listas completas asociadas a los campos variables, ampliándolas con movimientos bancarios (escogidos manualmente de manera que el número de palabras contenido no fuese superior a 3 en cada movimiento seleccionado, cuidando de no repetir las palabras más frecuentes en este tipo de textos) y completándolo con apellidos y pueblos seleccionados automáticamente.

27

Page 28: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

De este modo se pretendía conseguir un mayor número de datos de cara a la elaboración del modelo de entonación para la generación de la prosodia automática. Al final resultó un total de 600 frases distribuidas de la siguiente forma:

· Frase 13: 1 campo variable: 43 tipos de cuentas y tarjetas + 34 movimientos seleccionados + 123 apellidos resumidos, 200 frases.

· Frase 15: 1 campo variable: 31 fondos de inversión + 46 movimientos seleccionados + 123 apellidos resumidos, 200 frases.

· Frases 16 y 18: 2 campos variables: 10 divisas, 20 “tipos de información” + 48 movimientos seleccionados + 122 apellidos resumidos, 200 frases.

La base de datos de emociones.

A diferencia del caso de la base de datos de voz femenina, en el que se realizó la grabación de los difonemas empleando frases portadoras para los mismos, en este caso se grabaron un conjunto de párrafos, frases e incluso palabras aisladas, empleándose luego todos los difonemas de la frase o párrafo para la constitución de la base de datos. Además, hay que tener en cuenta que el propósito que se pretendía con esta base de datos era completamente diferente al anterior, ya que en este caso se trataba de emplear dicha base de datos en un sintetizador de propósito general (en teoría debería ser posible sintetizar cualquier enunciado de la lengua castellana).

Para la creación de la base de datos "de emociones" se utilizó un conjunto de frases y párrafos grabados bajo un formato *.pcm para cada una de las emociones con las que se iba a trabajar, esto es:

28

Page 29: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

· neutra: 15 frases + 34 frases en párrafos (aproximadamente unas 1400 unidades).· tristeza: 15 frases + 31 frases en párrafos (aproximadamente unas 1250 unidades).· alegría: 15 frases + 41 frases en párrafos (aproximadamente unas 1230 unidades).· sorpresa: 15 frases + 45 frases en párrafos (aproximadamente unas 1250 unidades).

Hay que destacar que fue necesario construir una base de datos independiente para cada emoción, siendo en principio todas las frases y párrafos a emplear enunciativos.

El marcado de la base de datos.-

Una vez obtenidos los ficheros *.pcm con las frases portadoras para la base de datos destinada a la síntesis de dominio restringido, y con las frases y párrafos para la síntesis con emociones, el siguiente paso a seguir fue el de la segmentación y marcado de dicha información, proceso que fue dirigido por D. Juán Manuel Montero (profesor perteneciente al Grupo de Tecnología del Habla de la ETSIT). Para llevar a cabo dicho marcado, se empleó la herramienta PCV para Windows desarrollada por el GTH que, entre otras cosas, nos permite la visualización y el análisis de la señal vocal.

Conviene aclarar que el proceso seguido a la hora del marcado fue exactamente el mismo, tanto para el caso de la base de datos de voz femenina como para el caso de la base de datos de emociones, con la única diferencia de que en el caso de la base de datos de voz femenina solamente se hacía el marcado de la parte que nos interesaba, esto es, sólo se marcaba dentro de la frase portadora la parte correspondiente al campo variable, que era la fuente de la que se iban a obtener los difonemas.

29

Page 30: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

La herramienta PCV para Windows nos permitió marcar la duración y tono de los archivos de voz, generándose un archivo con extensión *.par para cada frase, donde se guardaba la información relativa a la duración y tono de los fonemas contenidos en la misma (en el caso de la base de datos para la síntesis de dominio restringido sólo apareceía la información sobre la parte marcada, que como ya se dijo se correspondía con el campo variable de la frase portadora).

La segmentación de las frases en fonemas se realizó de forma manual. Mediante la escucha de cada una de las frases se fueron colocando las etiquetas que intentaban aislar los distintos fonemas que estaban presentes en la misma, asociando una determinada letra a cada etiqueta, correspondiéndose normalmente dicha etiqueta con el nombre del fonema (estas etiquetas debían estar de acuerdo con la lista de etiquetas permitidas para los fonemas definidas en el programa, que más tarde realizaba la extracción automática de los difonemas).

La información sobre la segmentación de la frase en fonemas quedaba registrada en el fichero *.par de la frase en concreto, en el que además de aparecer el nombre dado por el usuario para cada etiqueta aparecían las posiciones del comienzo y final de las mismas dentro de la frase, expresándose ambos valores en milisegundos.

30

Page 31: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

Figura 3.1 Etiquetas generadas mediante el programa PCV-GTH.

Figura 3.2 Líneas identificativas de las etiquetas en el fichero *.par

En cuanto a la generación de las marcas de tono (marcado de las frases), el programa PCV emplea un método semiautomático de generación de la curva de tono. La aplicación dispone de una utilidad para la extracción del tono o marcado de la excitación glotal

31

LBR: 0.098250, 0.180875, 0, 0, 0, XLBR: 0.180875, 0.255688, 0, 0, 0, ALBR: 0.255750, 0.286313, 0, 0, 0, RLBR: 0.287313, 0.345938, 0, 0, 0, DLBR: 0.348125, 0.445688, 0, 0, 0, ILBR: 0.445688, 0.618563, 0, 0, 0, N

Page 32: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

automática, de tal modo que coloca de forma automática las marcas de tono en el fichero. Sin embargo, posteriormente resulta necesario realizar una revisión manual de dicho marcado con el objeto de corregir los errores producidos en la generación automática de marcas de tono (omisión de marcas debida a la falta de energía en la señal, duplicado de la frecuencia fundamental...).

Esta revisión manual tuvo una mayor importancia, sobre todo en aquellas emociones en las que la forma de onda presentaba una mayor cantidad de irregularidades (como es el caso por ejemplo de la sorpresa o el enfado), ya que al tratarse de señales con formas de onda que en muchos casos no presentan demasiada periodicidad y que se ven sometidas a cambios muy bruscos de intensidad y ritmo, el programa cometía muchos errores en la generación automática de las marcas, debiéndose recurrir prácticamente en estos casos al marcado manual de los ficheros por parte de una persona experta en dicho proceso.

El algoritmo empleado por el programa PCV para la extracción de las marcas de tono se basa en la búsqueda del punto de máxima energía de la señal de voz, o lo que es lo mismo, el punto de cierre de la glotis, colocándose una marca en cada periodo de voz. Para buscar dicho punto se combinan dos estimadores: el máximo de la envolvente de Hilbert y el punto de excitación causal del filtro de síntesis LPC que produce un mínimo error cuadrático medio en el periodo a tratar. Al igual que en el caso de las etiquetas, las información sobre las marcas de pitch así como su posición dentro del fichero se almacenaba en el fichero de parámetros (*.par) de la frase.

32

Page 33: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

Figura 3.3 Detalle de las marcas de tono y curva de tono

Figura 3.4 Posición y distancia en tono con respecto de la marca anterior en el fichero *.par

33

PIT: 0.181688, 118.518517PIT: 0.190125, 108.108109PIT: 0.199375, 108.108109PIT: 0.208625, 110.344826PIT: 0.217688, 105.960266PIT: 0.227125, 103.896103PIT: 0.236750, 100.628929PIT: 0.246688, 105.960266PIT: 0.256125, 84.210526

Page 34: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

3.3. Extracción de los difonemas.

Una vez que se dispuso del conjunto de ficheros *.par revisados, con la información sobre la duración y posición de los fonemas (segmentación) y posición de las marcas de tono (marcado), de cada una de las frases que fueron grabadas, el siguiente paso a seguir fue proceder a la extracción de los difonemas contenidos en dichas frases, de cara a posteriormente generar la base de datos con todos esos difonemas.

Con el objetivo de agilizar y hacer más sencillo en todo lo posible el proceso de extracción de los difonemas de cada una de las frases constituyentes de la base de datos, lo que se hizo fue emplear un conjunto de ficheros por lotes de MSDOS (*.bat) que se encargaban de realizar toda la secuencia de procesos de una manera automática. Hay que destacar que el proceso seguido para la extracción de la base de datos fue el mismo para los dos tipos de bases de datos (dominio restringido y emociones -esta última en realidad sería una para cada tipo de emoción contemplada).

El proceso comenzaba haciendo una llamada al fichero regenera.bat:

34

del pal.depcall borra.batfor %i in (@frases.dir) gosub :PROCESAcall curvaf0.batquit

:PROCESAset FRASE=%icd %FRASEcopy ..\gendb.inicopy ..\sacadif.inicopy ..\raw.inicopy ..\atonas.liscall ..\superbat @%FRASE.dircall ..\promedio.bat %FRASEtype pal.dep >>..\pal.depcd ..return

Page 35: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

El programa comenzaba haciendo una llamada al fichero por lotes borra.bat, que básicamente se encargaba de eliminar toda la información sobre extracción de difonemas que se hubiese producido en un procesamiento anterior. Para ello, debemos tener en cuenta que la manera de almacenar la información relativa a dicho análisis siempre era la misma, siguiendo una estructura de directorios de la forma:

frases.dirfrase1

·bv01001·bv01002....

frase1.dirfrase5

·bv05001·bv05002...

frase5.dir.......

Como se puede ver, había una serie de carpetas de nombre frase*, que lo que contenían era la información asociada a las frases que se habían grabado de dicho tipo (ver el epígrafe anterior), guardando la información de cada frase en concreto en una subcarpeta con el nombre de dicha frase, así el directorio frase 2 contendría todas aquellas frases en las que el campo variable era un nombre de puerto ("La nacional I tiene, en Madrid, el puerto de NOMBRE DE PUERTO, con cadenas.") y la carpeta bv201

35

Page 36: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

contendría la información relativa a la primera frase grabada de este tipo.

Una vez eliminada la información residual procedente de procesamientos anteriores, comenzaba realmente el proceso de la extracción de difonemas. El fichero regenera.bat leía la información contenida en el fichero frases.dir, que no era otra cosa que una lista con los tipos de frase que debía procesar (frase1, frase2 .....). Para cada una de dichas "frases" (en realidad como hemos visto se trataba de un grupo de frases con una estructura común) se llamaba a la subrutina PROCESA. En esta rutina lo que se hacía era leer de un fichero contenido en el directorio de la frase (frase*), y de nombre frase*.dir -siendo * el número concreto de frase-, la lista de frases que debían ser procesadas. Este fichero de nombre frase*.dir se le pasaba como argumento a otro fichero por lotes de nombre SUPERBAT.BAT, que era el encargado de hacer la llamada a los distintos programas involucrados en la extración de los difonemas.

El fichero SUPERBAT.BAT disponía de una serie de parámetros que posibilitaban que trabajase de varias maneras:

· MODO_CD_SIN_TEXTOS : a 0 indica que los ficheros *.par y *.txt se leen del CD-ROM y el *.pcm del disco duro; a 1 indica que los ficheros *.par y *.txt se leen del disco duro y los *.pcm del CD-ROM. Para la generación de las bases de datos de emociones, este valor se pone a 0.

· MODO_COPIA: a 1 indica que para cada procesamiento se crea un directorio de nombre PCM_TMP, en el cual se guarda una copia de los ficheros *.pcm *.par y *.txt, eliminándose toda la información contenida en dicho directorio procedente de procesamientos anteriores.

· RES_DEBUG: a 1 indica que, tras la ejecución de cada uno de los programas que componen el proceso, se muestra en pantalla el

36

Page 37: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

fichero de depuración asociado a los mismos.

A su vez, el programa podía recibir como argumento o bien un fichero *.par (dando como argumento al programa el nombre del fichero, p. ej. superbat.bat bv101), o bien una lista con los nombres de los ficheros *.par que debía tratar. Estas listas se encontraban dentro de un fichero, y la forma de decirle al programa que el argumento (fichero) que le estábamos pasando en realidad lo que contenía era una lista de ficheros, era escribiendo antes del nombre del fichero el símbolo @ (p. ej. superbat.bat @frase1.dir)

Al ejecutar el fichero por lotes SUPERBAT.BAT en realidad

estábamos realizando, además de la extracción de los difonemas, una resíntesis de cada una de las frases contenidas en el fichero frase*.dir, para lo cual se hacía uso de todo el conjunto de programas que posteriormente tendrían que ser empleados en el sistema completo. Esto es, en primer lugar se hacía una llamada al programa encargado de extraer los difonemas de la frase a partir de la información contenida en el fichero *.par, luego se construía una base de datos con todos los difonemas de la frase que acababan de ser extraidos y, por último, se empleaba esta base de datos para tratar de resintetizar la frase original.

Dado que en la resíntesis se empleaban los difonemas originales, el sintetizador no debería encontrarse en principio con ningún problema de cara a obtener unos resultados con una calidad bastante elevada (similar a la de la frase original), ya que las modificaciones prosódicas que debería realizar sobre las unidades tendrían que ser mínimas, limitándose a meros redondeos en las duraciones y a una linealización del tono fundamental, por parte del algoritmo TD-PSOLA.

37

Page 38: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

El hecho de realizar una resíntesis completa de los ficheros, en lugar de ejecutar exclusivamente el programa que extraía los difonemas de los mismos, se justifica de la siguiente manera:

Puesto que la revisión manual de todos y cada uno de los ficheros de parámetros hubiera resultado muy costosa desde un punto de vista temporal, se recurrió a una solución un poco más compleja para la extracción de los difonemas que la simple ejecución del programa de extracción, permitiendo esta estrategia, en la mayor parte de los casos, detectar aquellas frases que contenían errores de marcado, sin tener que revisar todo el fichero de parámetros (*.par).

Durante la aplicación del fichero por lotes a las diferentes frases de que disponíamos, nos encontramos con dos tipos de situaciones diferentes, aparte de aquellas en las que la resíntesis se producía de forma satisfactoria y que, por lo tanto, en principio no eran susceptibles de una revisión detallada. Por un lado nos encontramos con frases que el fichero por lotes no era capaz de resintetizar como consecuencia de algún error grave en el fichero de parámetros (*.par) de la misma (del tipo de etiquetas mal marcadas o sin marcas de pitch en su interior, o de generación de tonos nulos para algunos difonemas). La forma de corregir estos errores casi siempre es la misma, y consiste en la revisión manual de los ficheros y en la corrección del problema causante del error a través del programa de edición PCV-GTH, debiendo posteriormente repetir el proceso de la resíntesis para cerciorarse de que el problema ha sido resuelto de una forma satisfactoria.

Por otro lado nos encontramos con aquellas frases que el fichero por lotes conseguía resintetizar sin ningún problema pero que por el contrario, al ser escuchadas, presentaban una calidad muy inferior a la que cabría esperar. En este caso la solución no se presenta como algo tan directo, siendo necesario recurrir a los

38

Page 39: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

distintos ficheros de depuración generados por los programas ejecutados, pudiendo de este modo detectar el programa concreto que se encontró con alguna situación anómala y tratando de corregirla correspondiéndose estos errores más bien con errores internos de los programas o situaciones no previstas por los mismos.

El primer programa que se ejecutaba en SUPERBAT.BAT era

SACADIF32.exe (desarrollado en el GTH), que era el programa encargado de hacer la extracción automática de los difonemas de la frase. Este programa recibía como argumentos el fichero de muestras (*.pcm), de parámetros (*.par) y con el texto de la frase (*.txt).

La extracción de los difonemas en SACADIF32.exe se hace de forma automática, a partir de la información contenida en el fichero de parámetros asociado a la frase, basándose para ello en una serie de reglas dependientes del tipo de fonema, con el fin de determinar el punto de corte óptimo del mismo (aquel en el que la señal de voz presenta una mayor estabilidad y que por lo tanto nos ofrece mayores ventajas de cara al pegado). Así, por ejemplo en el caso de los sonidos vocálicos se supone que el punto de máxima estabilidad se encuentra justo en la zona central, en los sonidos fricativos se corta por las zonas inicial y final, y en los sonidos oclusivos se tiende a cortar por el silencio inicial... (estos dos últimos para reducir el número de unidades a generar).

Hay que destacar que todo este conjunto de reglas de carácter “estático” suponen una solución al problema que no siempre va a ser la más adecuada, traduciéndose este aspecto en algunos casos concretos en la generación de difonemas que no van a ser muy estables en la zona de concatenación, lo que influirá negativamente en calidad de la síntesis.

39

Page 40: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

El programa genera un conjunto de ficheros que contienen distinta información relacionada con los difonemas. Los ficheros que se producen tienen como nombre el del difonema extraído de la frase y las posibilidades para las extensiones son:

- *.mst: muestras del difonema. Se añaden 512 bytes correspondientes a la cabecera de los ficheros.

- *.par: marcas de pitch para cada difonema, así como etiquetado del mismo.

- *.mar: posición de las marcas del difonema (en formato binario). Contiene información sobre el número de muestras, número de marcas, posición -en número de muestras- de dichas marcas y frecuencia de muestreo.

- *.ram: posición de las marcas en formato texto. Contiene la misma información que el *.mar.

- *.mfc: coeficientes mel frequency cepstrum de las tramas del difonema.

- *.ene: coeficientes de energía en bandas logarítmicas de las tramas del difonema. Estas bandas son las mismas que se emplean para el cálculo de los coeficientes *.mfc.

Además de esto, se genera un fichero asociado a la frase con extensión *.di que contiene todas los difonemas de la misma junto a sus características prosódicas de duración y tono.

40

X 41 47XA 79 108AR 53 96R1_ 15 91_D1 29 112D1I 78 128IN 135 81N_ 88 81__ 9 100

Page 41: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

Figura 3.5 Aspecto típico de un fichero *.di.

El programa también genera un fichero de nombre listetiq que contiene una lista con los difonemas presentes en la frase y un archivo con el nombre de la frase y extensión *.crr. En este archivo aparece toda la información contenida en el fichero *.par -con el mismo formato para etiquetas y marcas de tono- y además aparecen unas nuevas secciones de la forma:

LBO: muestra_inicio, muestra_media, muestra_fin, fonema (empleado para SPEECHDAT)

yLBB: muestra_inicio, muestra_fin, fonema (empleado para

la generación de la curva de tono)

Adicionalmente se genera un fichero con el nombre de la frase y extensión *.dps, en el cual aparecen todos los mensajes de depuración que saca el programa SACADIF32.exe por pantalla. Entre estos mensajes cabe destacar los siguientes:

- información sobre fonemas remarcados, como en el caso de las oclusivas o fricativas, en los cuales se obvian las marcas generadas por el programa PCV y se colocan unas nuevas con una frecuencia fija.

- información sobre el alineamiento entre el fichero *.txt de la frase y el *.par de la misma, y en caso de existir diferencias entre ellos, éstas se notifican al usuario.

- información sobre la extracción de los difonemas en cuanto a su localización y duración.

- cálculo del pitch de los difonemas: se calcula además de las marcas de tono contenidas dentro del difonema, el tono medio del mismo. Este tono medio luego puede ser corregido en función de si difiere más alla de un tanto por ciento del de los fonemas fiables presentes en el mismo (normalmente

41

Page 42: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

suele ser una vocal, en cuyo caso pasa a tener ese valor) o en el caso de tratarse de un difonema sordo.

Por último, también se crea un fichero con el nombre de la frase y extensión *.dep, en el cual aparece la misma información que en el fichero *.crr en el que aparecen las correcciones citadas anteriormente.

Una vez que fueron extraídos los difonemas de la frase, el siguiente paso a seguir era el de generar una pequeña base de datos con los mismos para realizar más tarde la resíntesis de la frase y comprobar de este modo que los difonemas habían sido bien generados. Para ello, en primer lugar se ejecutaba el programa lista.per que lo que hacía era pasar del formato de los ficheros *.di de las frases al formato que leía el programa gendb32.exe (el encargado de generar la base de datos) que era de la siguiente forma:

AB1 74 155 (formato del *.di con nombre, duración y tono final)frente aAB1@1 AB1 74 160 155 bv01026/ KA frase1/ (formato

extendido con nombre renombrado, nombre de la etiqueta, duración, tonos inicial y final, directorio de procedencia, unidad anterior en la frase original y frase de procedencia)

Este cambio de formato fue motivado por las nuevas características que había que almacenar en la base de datos de cara a la selección de unidades, pero este aspecto será tratado más adelante.

Una vez efectuado el cambio de formato, obteniendo como resultado el fichero listetiq.lis, se ejecutaba el programa GENDB32.exe (una versión modificada de la desarrollada en el GTH)

42

Page 43: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

que recibía como argumentos este fichero, y el nombre del fichero que iba a contener la base de datos (*.dfm). El programa iba tomando la información contenida en los ficheros *.mst y *.mar asociados a los distintos difonemas que aparecían en listetiq.lis, y la iba almacenando en el fichero de la base de datos. Además de obtenerse como resultado el fichero *.dfm con la base de datos en sí, también se generaban entre otros un fichero con extensión *.mfd que contenía la misma información que el *.dfm pero en formato texto, un fichero con extensión *.gdb con información de depuración.

El último paso en la resíntesis estaba constituido por la ejecución del programa CONCA32.exe (desarrollado en el GTH), que recibía como argumento de entrada el fichero *.di que había generado SACADIF32.exe y que generaba el fichero con la frase sintetizada (pru.mst), y un fichero con extensión *.dpc que contenía información de depuración.

Al final de todo el proceso se comprimían todos los ficheros generados por los distintos programas en un fichero con el nombre de la frase y con extensión *.arj, que se almacenaba dentro del directorio correspondiente a la frase.

3.4. Generación de la base de datos.

El último paso de cara a la generación de la base de datos consistió en agrupar en un único fichero los difonemas procedentes de las distintas frases que habían sido extraidos en las fases anteriores. Este fichero se suele identificar por medio de una extensión *.dfm y constituye la base de datos en sí al contener para cada difonema, además de sus muestras todos los datos asociados al mismo en cuanto a marcas de tono y su posición, duración, tonos inicial y final... Además se trata del fichero del que tomarán la

43

Page 44: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

información tanto el programa de selección de unidades- de cara a escoger las unidades que mejor se ajusten a nuestras necesidades en un momento concreto- como el sintetizador de forma de onda para generar la señal final con la secuencia sintetizada.

El mecanismo que se empleó para recoger toda la información en un único fichero consistió en lo siguiente:

Se realizó un programa de proceso por lotes (*.bat) de MS-DOS de nombre Crea_Bd.bat.

El programa *.bat recibía como argumento el nombre de la "emoción" de la base de datos que ibamos a generar. A continuación el programa leía el contenido del fichero frases.dir, que por similitud con lo que fue explicado en el epígrafe anterior contenía una lista con las frases (en realidad con el tipo de frase) que iban a emplearse en

44

SET DIRECTORIO_LISTA=D:\usuarios\mario\src\emocionSET EMOCION=%1del %EMOCION.depfor %i in (@frases.dir) gosub :PROCESAEDIT %EMOCION.depiff %@FILES[%EMOCION.prb]==0 then buscadb.exe %EMOCION.dep ELSE buscadb.exe %EMOCION.dep %EMOCION.prbendiffEDIT listetiqgendb32.exe listetiq %EMOCION.dfm > %EMOCION.dpgquit

:PROCESAset FRASE=%icd %FRASEfor %j in (@%FRASE.dir) do gosub procesa2cd ..return

:procesa2echo %jcd %jARJ x -y *.arj *.di *.pcm *.mst *.mar *.mfc *.ene *.parfor %k in (*.di) gosub procesa3cd ..return

:procesa3echo %j/%kecho FICHERO: %jPERL %DIRECTORIO_LISTA\LISTA.PER %j %i<%k >>%DIRECTORIO_LISTA\%EMOCION.depreturn

Page 45: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

la creación de la base de datos. En el caso de las emociones, la estructura de directorios que se empleó fue la misma que para la síntesis de dominio restringido, esto es:

frases.dir neutra

rn010101rn010201....neutra.dir

sorpresars010112rs010212....sorpresa.dir

.....

Durante el procesamiento se iban recorriendo uno a uno los directorios de las frases, dentro de las cuales había un fichero que contenía toda la lista de frases a emplear (frase*.dir). Para cada frase, se descomprimía toda la información relativa a los ficheros *.MST, *.MFC, *.PAR, *.ENE, *.MAR, *.PCM y *.DI. A continuación se tomaba la información contenida en el fichero *.DI, y previo paso por el programa lista.per para cambiar el formato de las etiquetas, esta información se iba agregando a un gran fichero cuyo nombre es el nombre de la emoción, y cuya extensión es *.DEP.

45

$, = ' '; # set output field separator$\ = "\n"; # set output record separator

$tonoant=-1;$difonemaAnt="__"; # recorre el fichero de entrada l'inea a l'ineawhile (<STDIN>) { # elimina el \n del final de la l'inea chop; # crea un array de variables 'campos' en el que cada posici'on # del array contiene uno de los campos de la l'inea le'ida: # el separador de campos es el espacio en blanco @campos=split(/ /,$_,9999); if ($tonoant==-1) { $tonoant=$campos[2]; } # escribe la salida: todas las variables comienzan por $ # los 'indices de los arrays comienzan en 0 printf "%s %s %s %s %s %s/ %s %s\n", $campos[0],$campos[0],$campos[1],$tonoant,$campos[2],$ARGV[0],$difonemaAnt,$ARGV[1]; $tonoant=$campos[2]; $difonemaAnt=$campos[0]; }

Page 46: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

Como se puede ver, el programa iba recorriendo línea a línea el fichero de entrada (con el formato ya visto para los ficheros *.DI), y creaba un array de datos (el array CAMPOS[ ]), con los distintos campos (nombre de la unidad -$CAMPOS[0]-, duración -$CAMPOS[1] – y tono final -$CAMPOS[2]) contenidos en dichas líneas. Posteriormente reorganizaba los campos según el formato que necesitaba el programa que generaba la base de datos, y añadía los datos del tono inicial de la unidad (tomado del tono final de la unidad anterior, y en caso de ser la primera unidad del fichero se copiaba del tono final de dicha unidad) y del contexto fonético de procedencia (etiqueta de la unidad de la línea anteior del fichero). También se añadía para cada línea el nombre del fichero de que procedía la etiqueta, nombre que se obtenía del argumento de entrada al programa ($ARGV[0]) y de la frase portadora ($ARGV[1]).

Tras haber recorrido todos los directorios contenidos en frases.dir y en los ficheros de la forma frase*.dir de cada una de las frases involucradas, se obtuvo como resultado toda la lista de etiquetas disponibles, contenida en el fichero “EMOCIÓN”.dep. A pesar de que este fichero ya era una lista con todos los difonemas disponibles y sus características prosódicas, aún no tenía el formato adecuado para facilitar la búsqueda en el mismo, careciendo además de información sobre algunas de las características de las unidades.

46

Page 47: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

Por lo tanto era necesario aún el paso por un programa adicional, que era buscadb.exe.

Este programa recibía como argumento el fichero *.DEP de la emoción generado anteriormente, y se encargaba de ordenar la lista en él contenida alfabéticamente, para facilitar la búsqueda en la base de datos, incluyendo además la información sobre los coeficientes *.MFC de cada uno de los difonemas (en realidad solamente sobre los coeficientes pertenecientes a la primera y última trama de cada unidad). El hecho de incluir información en el fichero listetiq sobre los coeficientes *.MFC, fue por razones de eficiencia, ya que al hacerlo de este modo se minimizaban drásticamente los accesos a disco duro y con ello el tiempo derivado de cargar dichos datos a la hora de realizar la búsqueda de unidades.

A la hora de ejecutar el programa buscadb.exe vemos que en el fichero *.BAT se comprobaba previamente si existía algún fichero con el nombre de la emoción y con la extensión *.PRB, en cuyo caso se pasaba también este fichero como argumento de entrada al programa. En este fichero se contenía una lista con las etiquetas asociadas a difonemas que deseábamos que fuesen excluidos a la hora de generar la base de datos, por tratarse generalmente de difonemas mal generados o de mala calidad. Este fichero se creaba de una forma manual, añadiendo aquellos difonemas que tras ser utilizados en la síntesis veíamos que debían ser excluidos de la base de datos. De esta manera, al tratarse de un proceso de generación automático de la base de datos, en las siguientes generaciones de la base de datos estos difonemas se saltarían, contribuyendo este hecho a mejorar la calidad de la síntesis.

Además de todo lo anterior, el programa se encargaba también de renombrar algunas de las unidades, dado que, al haber múltiples

47

Page 48: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

instancias de cada difonema en la base de datos, la única forma de distinguirlas entre sí sólo podía ser a partir de su nombre.

El criterio escogido para diferenciar las distintas instancias de cada difonema, fue concatenar al final del nombre del mismo una cadena de la forma @X, donde X era un número que se iba incrementando cada vez que aparecía una nueva instancia de la unidad. Así, la primera vez que apareciese una unidad su nombre no se modificaría, la segunda se le añadiría la cadena @1, la tercera vez @2 y así sucesivamente.

El resultado de la ejecución del programa era un fichero de nombre listetiq, en el cual se hallaban todas las "etiquetas" asociadas a los difonemas constituyentes de la base de datos ordenadas alfabéticamente. El formato típico de las “etiquetas” del fichero listetiq era el siguiente:

AB1@1 AB1 71 157 129 bv417/ YA frase4/ 0 0

mfc: 2205 125 -24 25 22 3 13 -17 -14 2 97.135773

mfc: 1715 165 41 35 17 15 8 5 -1 -1 83.122070

La primera línea de cada etiqueta estaba compuesta por una serie de campos, que representaban por orden:

- nombre que va a tener la unidad dentro de la base de datos para que pueda ser identificada de forma unívoca.

- nombre de la unidad dentro de la frase original.- duración de la unidad expresada en milisegundos.- tono inicial de la unidad expresado en hertzios.- tono final de la unidad expresado en hertzios.- directorio en el que se encuentra la unidad.- nombre de la unidad precedente en la frase original.- frase a la que pertenece el directorio.

48

Page 49: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 1 Introducción

- cluster asociado a la trama de mfc's inicial.- cluster asociado a la trama de mfc's final.

En cuanto a las dos últimas líneas, se trataba de los coeficientes mfc (mel frequency cepstrum) de la primera y ultima trama del difonema respectivamente, cuya utilidad y significado serán descritos más adelante. Estos coeficientes, a diferencia de los datos anteriores no se extraían directamente del fichero *.di, sino que se encontraban en los ficheros con extensión *.mfc que había para cada difonema dentro de los directorios.

El fichero listetiq así modificado era el argumento de entrada del programa que generaba el fichero de la base de datos en sí, que al igual que en el epígrafe anterior era gendb32.exe. Como ya se explicó, este programa se encargaba de copiar para cada “etiqueta” contenida en el fichero listetiq, los ficheros *.mst (fichero con las muestras del difonema) y *.mar (fichero con las marcas y su posición) contenidos en el directorio dado por la etiqueta, junto al resto de información de la misma (duración, tono, coeficientes mfc ...) en un fichero con extensión *.dfm con un formato de 32 bits, que constituiría la base de datos con toda la información necesaria sobre los difonemas que requerirían los programas posteriores.

49

Page 50: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

Capítulo 4: La selección de unidades.

El propósito fundamental de este epígrafe es el de explicar con todo grado de

detalle el mecanismo empleado por los distintos programas realizados para seleccionar a

partir de un texto objetivo a sintetizar (que contiene las características prosódicas de las

unidades, procedente del bloque de procesado lingüístico del Conversor Texto-Voz), las

unidades concretas de la base de datos que van a ser finalmente empleadas en la síntesis.

Como ya se reseñó anteriormente, el principal objetivo que se persigue en este

trabajo es mejorar la calidad de la síntesis de voz mediante la introducción de una

mayor variedad de unidades de la que nos encontraríamos en una base de datos de

difonemas convencional. Tradicionalmente, en este tipo de bases de datos se trabaja con

una sola instancia para cada tipo de unidad, teniendo esta unidad una serie de

características prosódicas (tono y duración) que la hacen que pueda ser considerada

como un ejemplo “típico” de la misma. Como es lógico pensar, con una sola instancia

de cada unidad no resulta posible representar todas las posibles combinaciones de tono

y duración que se van producir en la práctica (combinaciones que van a ser pedidas por

el programa que se encarga de generar la prosodia automática), de tal forma que en

algunas ocasiones se dará la circunstancia de que las características prosódicas de la

unidad objetivo no diferirán mucho de las de nuestra unidad patrón de la base de datos,

en cuyo caso no será muy grande la distorsión producida al adaptar la prosodia de la

unidad original a la de la unidad objetivo mediante TD-PSOLA y en consecuencia no

deteriorándose mucho la calidad de la síntesis. Sin embargo, en otras muchas ocasiones

la prosodia original será tan diferente de la perseguida, que las modificaciones

prosódicas que sea necesario realizar a la unidad para adaptarse a dichas características

pueden hacer que la distorsión introducida lleve incluso a hacer irreconocible la unidad

en el resultado final, lo que se traducirá en una importante degradación de la calidad de

la voz sintética generada.

Otro aspecto a tener en cuenta, además de la modificación en la prosodia de las

unidades, lo constituye el hecho de que éstas no se graban de forma aislada. En efecto,

las unidades son extraídas de un determinado contexto fonético, que por lo general no

Page 51: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

tiene porque ser igual al contexto fonético en el que van a ser empleadas en la síntesis.

Este hecho se traduce en que una misma unidad procedente de distintos contextos

fonéticos, debido a los efectos de coarticulación entre los sonidos, va a tener distintas

estructuras de formantes y, en definitiva, un espectro diferente, lo que puede producir la

sensación de que se trata de diferentes unidades cuando la escuchemos. Esto,

evidentemente, también va a influir en la calidad de la síntesis.

Con el objetivo de mejorar dentro de lo posible estos dos efectos explicados

anteriormente, lo que se hizo fue introducir una mayor variedad de unidades en la base

de datos. Para ello, se introdujeron en la base de datos varias instancias para cada

unidad, lo que la dotó de una mayor variedad prosódica y de contextos fonéticos por

unidad debiendo este efecto revertir de una manera directa sobre la calidad final de la

síntesis. Esto es así porque el algoritmo TD-PSOLA se verá obligado a realizar cambios

mucho menos drásticos sobre la estructura de las unidades, reduciéndose por lo tanto

bastante la distorsión introducida al realizar el procesado de señal.

El hecho de construir bases de datos con varias instancias de cada unidad nos

permite modelar con mayor grado de detalle el lenguaje natural, pudiéndonos adaptar a

distintos acentos, entonaciones, expresión de emociones ... además de eliminarse la

necesidad de construir bases de datos específicas para cada aplicación, lo que resulta

claramente ventajoso desde el punto de vista de los desarrolladores de las mismas.

Llevando a su extremo la idea de introducir varias instancias para cada unidad de

la base de datos, si dispusiésemos de un buen conjunto de instancias para cada unidad –

no en cuanto al número sino en el sentido de ser bastante representativas de las distintas

posibilidades en cuanto a características prosódicas y contextos fonéticos que se nos

pueden presentar en el lenguaje natural- se podría pensar incluso en eliminar el

procesamiento de señal posterior. Es decir, se podría pensar en realizar la concatenación

directa de las unidades de la base de datos más adecuadas para cada caso particular con

su prosodia original, eliminándose la carga de cálculo asociada al TD-PSOLA. De esta

forma se eliminaría la distorsión derivada de modificar las unidades, aunque en algunos

casos se podría apreciar claramente un cambio en la prosodia y ritmo de los resultados

frente al objetivo buscado, lo que no sería ni mucho menos positivo. Si consiguiésemos

una “buena” base de datos la desviación no debería ser demasiada, quedando

Page 52: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

compensada con creces por la drástica reducción de la complejidad de la síntesis, al

quedar reducida al mero pegado de unidades directamente tomadas de la base de datos.

Un aspecto muy importante a tener en cuenta al margen de lo anterior, es el

hecho de que dado el carácter finito de la base de datos hay que tener presente el hecho

de que incluso la mejor selección nunca se ajustará por completo a la pronunciación

buscada, por lo que siempre será necesario un procesado de señal posterior (TD-

PSOLA) que llevará asociado una distorsión. El objetivo perseguido con todo esto es

realizar la selección de unidades de tal forma que el procesado de señal adicional sea

mínimo y, por lo tanto, la distorsión introducida también lo sea.

La introducción de varias instancias de cada unidad en la base de datos hizo

aparecer dos nuevos aspectos que no se encontraban presentes en la metodología

clásica. Por un lado, fue necesario determinar el mecanismo a emplear de cara a

seleccionar las unidades de la base de datos, de tal forma que dicha selección

minimizase la distorsión producida al concatenar mediante TD-PSOLA. Por otro lado

apareció el aspecto de la capacidad de almacenamiento necesaria para trabajar con esta

estrategia de “grandes” bases de datos.

En relación a este último aspecto, es lógico pensar que el hecho de introducir un

mayor número de unidades tiene el efecto beneficioso de mejorar la calidad de la

síntesis [Black, 91], pero también hay que tener en cuenta que lleva asociado el aspecto

de necesitar una mayor capacidad de almacenamiento, lo que se traduce en ficheros que

contienen bases de datos mucho más grandes (al contener no sólo un mayor número de

unidades, sino también características adicionales a tener en cuenta de cada una de ellas

de cara a la selección) y, sobre todo, de tiempos de búsqueda y de proceso cuando

dichos ficheros son mucho mayores. En este sentido conviene darse cuenta de que no es

posible tratar de mejorar la calidad de la síntesis sólo a base de introducir una mayor

cantidad de unidades, ya que el tamaño de los ficheros y, sobre todo, los tiempos de

búsqueda en los ficheros y de ejecución de los programas asociados, llevarían a que la

síntesis en tiempo real sería impracticable, careciendo en ese caso por completo de

utilidad.

Page 53: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

Con el objetivo de reducir la capacidad de almacenamiento necesaria se

emplearon distintas técnicas cuyo objetivo era eliminar aquellas unidades de la base de

datos que resultaban redundantes tanto desde un punto de vista prosódico, como de

contexto fonético, llegándose de este modo a un compromiso entre el tamaño de los

ficheros y la “calidad” de la base de datos. Este último aspecto se tratará más adelante.

4.1. El proceso de la síntesis por selección de unidades.

En este apartado se va a explicar el mecanismo que fue necesario seguir para

realizar todo el proceso de la síntesis, partiendo del texto con la secuencia objetivo hasta

obtener como resultado el fichero con la secuencia sintetizada.

Al igual que en todos los procedimientos anteriores, para realizar la síntesis era

necesario ejecutar una determinada secuencia de programas para llegar al resultado

final. Para automatizar en el mayor grado posible este proceso se realizó un fichero por

lotes (*.bat) de MS-DOS que se encargaba de hacer las distintas llamadas con los

argumentos adecuados. Este fichero se llamaba sintetiza.bat y su contenido se describe

a continuación:

SET DIR_FRASES = D:\SINTESIS\FRASESSET DIR_PRUEBAS =D:\SINTESISCD % DIR_FRASESfor %i in (*.uni) gosub :SINTETIZAquit

:SINTETIZAcd %DIR_FRASEScopy "%@NAME["%i"].uni" %DIR_PRUEBAS\prueba.dicd %DIR_PRUEBAS

bunidad2.exe prueba listetiq >dep.depgendb32.exe prueba.lis pru.dfm >prueba.dpgconca32.exe prueba.dif >prueba.dpc

return

Page 54: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

En primer lugar, podemos ver que se definían dos directorios de trabajo. El

primero de ellos, DIR_FRASES, era aquel en el que se encontraban almacenados todos

los ficheros que contenían los distintos textos a sintetizar (generados por el programa

que da lugar a la prosodia automática). Estos ficheros se distinguían por una extensión

de la forma *.uni y tenían exactamente el mismo formato que los ficheros *.DI, esto es,

las líneas del fichero eran de la forma:

NOMBRE_UD DURACION_UD TONOFINAL_UD

El otro directorio, de nombre DIR_PRUEBAS, era aquel en el que se iban

almacenando los distintos resultados, y que además contenía todos los programas

involucrados en la secuencia de la síntesis.

Una vez definidos estos directorios, el programa iba al directorio que contenía

los textos objetivo y, para cada uno de ellos, se realizaba todo el proceso de la síntesis.

El primer paso de cara sintetizar un texto determinado era cambiar la extensión de los

ficheros de *.uni a *.di para seguir con el criterio que había sido empleado hasta aquel

momento. Como se puede ver en el código del programa, no se realizaba simplemente

un cambio en la extensión de los ficheros, sino que se renombraba todo el fichero. Esto

fue hecho así porque los nombres que tenían dichos ficheros (que eran los que generaba

el programa con la prosodia automática) contenían, en algunos casos, espacios y en

ocasiones, eran demasiado largos, dando problemas al pasar dichos nombres como

argumentos a los programas.

Tras cambiarse el nombre del fichero, la primera llamada se hacía al programa

BUNIDAD2.exe, que recibía como argumentos el nombre de dicho fichero (con la lista

de difonemas objetivo a sintetizar), y el nombre del fichero que contenía la lista con

todas las unidades disponibles (en realidad las etiquetas asociadas a dichas unidades),

que en nuestro caso siempre iba a ser el fichero listetiq. El resultado de la ejecución de

este programa era otro fichero con el mismo nombre que el *.DI pero en este caso de

extensión *.DIF , que contenía la lista con los difonemas que habían sido seleccionados

dentro del total, en función de los distintos criterios que serán explicados más adelante.

Page 55: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

El formato del fichero *.DIF era el mismo que el del *.DI; es más, en realidad se

trataba de una “copia” de este con la diferencia de que aparecían las etiquetas de las

unidades concretas que habían sido seleccionadas, pero con la duración y tono final

pedidos en el *.DI.

Además de esto, el programa también generaba un fichero con el mismo nombre

del *.DI, pero con la extensión *.INF, en el cual se hacía un resumen de las unidades

que habían sido seleccionadas, sacando la información sobre las características

prosódicas originales y las buscadas, y dándonos además información sobre la

localización de los ficheros y sobre el contexto fonético de procedencia. El aspecto

típico de estos ficheros es el siguiente:

Unidad: UE@6 directorio: BV19048/

Unidad anterior: ALU

duracion original: 72

duracion pedida: 60

tonos originales: 172 204

tonos pedidos: 185 201

Por último, también se generaba un fichero con el mismo nombre que los

anteriores y extensión *.LIS, que contenía una lista con todas las unidades seleccionadas

(ordenadas alfabéticamente), junto con la información sobre los directorios de

localización. Este fichero era el que empleaba el programa que generaba la base de

datos de cara a copiar la información sobre las unidades en la misma. El formato típico

de una línea de estos ficheros es el siguiente (básicamente es el mismo que se sigue en

el fichero listetiq):

AD1@25 AD1 70 178 167 BV01040/ MA FRASE1

El siguiente paso de cara a la síntesis consistía en generar la base de datos con

las unidades seleccionadas. Hay que destacar que, durante el periodo de desarrollo de

las aplicaciones ,se optó por esta estrategia de generar una base de datos que contuviese

tan sólo los difonemas que iban a ser empleados cada vez que se iba a generar una frase,

en lugar de generar toda la base de datos completa de una forma previa y cargar toda

esta base de datos de cara a la síntesis TD-PSOLA. Esto se hizo de esta manera con el

Page 56: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

fin de reducir el tiempo de proceso al tratarse de ficheros con un tamaño

considerablemente grande, ya que el programa que generaba la síntesis TD-PSOLA en

primer lugar hacía una carga de toda la base de datos y una normalizacíon de las

energías de las unidades requiriendo este proceso mucho tiempo cuando los ficheros

eran muy grandes.

El programa que generaba la base de datos era el mismo que ya fue empleado en

el apartado anterior, esto es, GENDB32.EXE, recibiendo por lo tanto los mismos

argumentos (la lista con los difonemas de la frase a generar *.LIS y el nombre que iba a

tener la base de datos generada *.DFM) y generando los mismos ficheros de salida.

A continuación se hacía una llamada al programa CONCA32.EXE, que era el

encargado de realizar la síntesis según el algoritmo TD-PSOLA. Este programa recibía

como argumentos el nombre del fichero *.DIF que generó BUNIDAD2.EXE con la lista

de unidades a emplear y la base de datos que contenía dichas unidades. Al final de la

ejecución del programa se generaba un fichero de nombre pru.mst que contenía el

resultado de la síntesis TD-PSOLA.

Al final de todo el proceso se renombraban todos los ficheros “importantes”

(*.MST ...) según el nombre original de la frase de procedencia para evitar que los

ficheros se sobreescribieran en los siguientes procesamientos. Hay que destacar que en

cada uno de los procesamientos las salidas por pantalla de los distintos programas

ejecutados se redirigían a unos ficheros de texto con el fín de depurar los resultados

obtenidos.

4.2. El modelo de selección de unidades.

Como ya se citó, el punto de partida para el programa de selección de unidades

era un fichero de texto procedente de un modulo anterior del Conversor Texto-Voz que

contenía la secuencia de difonemas a sintetizar, acompañados de sus características de

duración y tono medio. El objetivo perseguido por el algoritmo de selección de unidades

era buscar la secuencia de unidades procedentes de la base de datos que mejor se

ajustase a la de la secuencia objetivo, en el sentido de que la utilización de dicha

secuencia tuviese como resultado la minimización de la distorsión en la síntesis

Page 57: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

(distorsión que se produce durante el procesamiento de señal que lleva a cabo el

algoritmo TD-PSOLA).

Dentro de la base de datos cada unidad llevaba asociado un vector de parámetros

que la caracterizaba, siendo esta información en la que nos ibamos a basar de cara a la

selección. En nuestro caso, la información que se guardaba para cada unidad estaba

contenida en el fichero listetiq que, como ya fue descrito anteriormente, guardaba para

cada elemento de la base de datos las características que a continuación se relacionan:

- una etiqueta que identificaba de forma unívoca a la unidad. Estas

etiquetas son necesarias para distinguir unas unidades de otras, y son

generadas según el mecanismo que ya fue explicado en el epígrafe anterior

durante la creación del fichero listetiq, esto es, concatenando al nombre

original de la unidad una cadena de la forma @XX siendo XX el número de

veces que había aparecido hasta aquel instante la unidad en la base de datos.

- una etiqueta con el nombre original de la unidad dentro de la frase

de la que fue extraída. Esta información se guardaba para luego poder copiar

los ficheros de muestras y marcas asociados a la unidad, ya que estos estaban

contenidos en el directorio para la frase que generó sacadif32 (el programa

de extracción de los difonemas) y eran de la forma NOMBRE.mst y

NOMBRE.mar, siendo NOMBRE el nombre de la unidad dentro de esa

frase.

- la duración de la unidad expresada en milisegundos. Esta

duración no era exactamente la duración de la unidad completa, sino que se

trataba de la duración entre la primera y última marca de pitch. Esto se hacía

así para adaptarnos a la manera en que trabaja TD-PSOLA, ya que TD-

PSOLA trabaja copiando periodos de señal, que vienen delimitados por las

marcas de pitch, siendo por lo tanto esta la información que a nosotros nos

interesa.

- los tonos inicial y final de la unidad expresados en Hz. Hay que

destacar que la información sobre el tono final es la que nos daba

Page 58: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

sacadif32.exe, y que la del tono inicial la tomábamos a partir del tono final

de la unidad anterior de la frase de que fue extraída el difonema. Este aspecto

nos presentaba un pequeño problema, ya que en el caso de las primeras

unidades de las frases carecíamos de una unidad anterior que nos

determinase el tono inicial de la frase. La solución adoptada fue la de copiar

el tono inicial del tono final, haciendo que la unidad tuviese una curva de

entonación lineal. Este criterio de generación del tono inicial fue el mismo

que se siguió a la hora de cargar la información del fichero con la prosodia

objetivo para evitar que se pudiesen producir efectos “extraños” derivados de

una falta de unificación de criterios.

- el nombre del directorio en el que están almacenados los ficheros

de muestras y marcas asociados a la unidad (bv* para la síntesis de dominio

restringido ó r* para el caso de la síntesis de emociones).

- la etiqueta de la unidad precedente en la frase de la que había sido

extraída la unidad de cara a poder determinar el contexto fonético de

procedencia.

- la frase o emoción de que procedía la unidad. Toda esta

información relacionada con directorios y frases realmente no era empleada

por el programa de selección de unidades, pero era necesario almacenarla de

cara a que luego el programa que genera la base de datos fuese capaz de

recuperar los ficheros que le estabamos pidiendo.

- los coeficientes mel cepstrum de la primera y última trama de la

unidad de cara a disponer de información sobre las características espectrales

sin necesidad de tener que recurrir a las muestras.

Con el fin de determinar qué unidad concreta de la base de datos tenía las

características que mejor se ajustaban a las de la unidad/secuencia de unidades objetivo

debíamos tener en cuenta los distintos factores que iban a influir en la distorsión. Así, se

pudo distinguir en principio los siguientes factores causantes de la distorsión [Black,

91]:

Page 59: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

- Distorsión producida por la sustitución:

Esta distorsión se produce como consecuencia de la sustitución de la unidad

objetivo por una unidad de la base de datos, que generalmente poseerá unas

características prosódicas diferentes de las buscadas, siendo necesario un procesamiento

de señal mediante TD-PSOLA, que es el que precisamente da lugar a esta distorsión.

Como ya se señaló anteriormente, las características finitas de la base de datos harán

que esta distorsión siempre se encuentre presente (aún tratándose de una unidad con

exactamente las mismas características prosódicas que las buscadas, se generará una

distorsión en la misma derivada de los distintos redondeos que se producen en el

procesado).

- Distorsión producida por la concatenación:

Esta distorsión se genera al pegar unidades de la base de datos que provienen de

contextos fonéticos diferentes. En general, al proceder las unidades de lugares diferentes

van a tener características espectrales diferentes en la zona de pegado, existiendo una

discontinuidad que influirá negativamente sobre la calidad de la síntesis al poderse

percibir en mayor o menor grado sonidos similares a una pequeña explosión en las

uniones entre unidades [Hunt, 96].

Figura 4.1 Componentes de la distorsión.

secuencia objetivo

oi-1 oi oi+1

ui-1 ui u i+1

secuencia de unidades

dist. sustitución

dist. concatenación

Page 60: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

4.3. El programa BUNIDAD2.EXE.

Como ya se citó en la descripción global del proceso de la síntesis, este

programa era el encargado de seleccionar la secuencia óptima de unidades de la base de

datos que mejor se ajustaba a una secuencia objetivo, en el sentido de que al emplear

dichas unidades en la síntesis la distorsión derivada del procesamiento llevado a cabo

por TD-PSOLA fuese mínima.

Para poder cuantificar la distorsión introducida por el sintetizador al modificar la

prosodia de las unidades, se definieron una serie de distancias entre las distintas

características contempladas en los vectores que representaban a cada unidad y las

características demandadas por el fichero que contenía la secuencia de unidades

objetivo acompañadas de su prosodia (*.di). Se definió una distancia asociada a cada

característica que tratara de medir la distorsión derivada del hecho de emplear una

unidad de la base de datos con un valor dado para dicha característica, en lugar del valor

pedido para la unidad correspondiente de la secuencia objetivo, considerándose la

distorsión global como una suma ponderada de todas estas distancias. Al tratarse de una

suma ponderada se pudo controlar la importancia relativa que se asignaba a cada

distancia dentro de la distorsión global, sin más que modificar los valores de los pesos

asociados a cada una de ellas, y pudiendo incluso llegar a anular alguno de los factores

considerados inicialmente (asignando un peso de valor nulo a dicha distancia) en caso

de considerar que su importancia no resultaba significativa de cara a la medida de la

distorsión. En cuanto a la definición de las distancias parciales nos encontramos con dos

casos bien diferenciados:

- Distancia entre características que tomaban valores dentro de un rango

aproximadamente continuo.

- Distancia entre características que no toman valores en un rango continuo o

cuyos valores no guardan ninguna relación de orden aparente entre sí.

En el primer caso, en el que los valores de las características se movían en un

rango “continuo” –como puede ser el caso de la duración de las unidades o su tono- la

Page 61: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

definición de distancias se presentó como una tarea más sencilla de realizar que en el

caso de características del segundo grupo descrito, como puede ser el contexto fonético.

En el primero de los casos, la definición de las distancias siempre implicaba alguna

variación sobre la distancia euclídea entre las características, pero en el segundo, al no

ser posible establecer una relación de orden, no se pudo recurrir a esta estrategia. En

este segundo caso lo que se hizo fue recurrir a distancias que, o bien no penalizasen en

absoluto la elección de la unidad (al tratarse de una unidad compatible con lo que

estábamos buscando, asignando un valor cero a la distancia), o bien hiciesen prohibitiva

la elección de la unidad (asignando un valor muy grande a la distancia, de tal forma que

se pusiese en clara desventaja a esta unidad frente a unidades del mismo tipo de cara a

la selección).

Hay que tener en cuenta que nuestras distancias no debían, en ningún caso,

eliminar unidades por muy malas que fuesen desde el punto de vista de la distorsión, ya

que el algoritmo de selección siempre debía proporcionar al menos una unidad de la

base de datos para que fuese empleada en la síntesis. Por lo tanto, la estrategia a seguir

fue la de asignar distancias muy grandes a las unidades “malas”, teniendo en cuenta, que

en caso de no disponer de una unidad que se ajustase apropiadamente a las condiciones

de búsqueda, se seleccionaría aquella unidad dentro de las “malas” que mejor se

ajustase a nuestros propósitos. Este hecho lógicamente se reflejaría de forma negativa

sobre la calidad de la síntesis, pero hay que considerar que esta reducción en la calidad

no sería consecuencia de un defecto del algoritmo de selección de unidades, sino más

bien de la calidad de la base de datos empleada en cuanto a la variedad de unidades

presente en la misma.

Asociadas a los distintos factores detectados que influían en la distorsión se

decidió emplear las siguientes distancias:

- Distancia entre la duración de las unidades.

- Distancia entre los tonos.

- Distancia entre los contextos fonéticos.

- Distancia asociada a la concatenación de unidades.

Page 62: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

Las dos primeras distancias vienen asociadas a la distorsión citada anteriormente

derivada de la sustitución de unidades, mientras que las dos últimas engloban el

fenómeno de la distorsión en el pegado de las mismas.

De este modo, la expresión global de la distorsión introducida en la síntesis

quedaría como sigue:

Donde:

- Dglobal es la distorsión global procedente de la síntesis de toda la

secuencia objetivo.

- n es el numero de unidades a sintetizar en la secuencia objetivo.

- px es el peso que se asocia a la característica x.

- distx es la distancia que se asocia a la característica x.

- ui y oi representan respectivamente la unidad de la base de datos y

la unidad objetivo que van en la posición i-ésima de la secuencia a sintetizar.

Hay que destacar que, alternativamente a esta elección de características, se

podría haber empleado otra serie de ellas, o incluso un conjunto adicional que

complementase a las actuales y contribuyese a un mayor refinamiento del modelo

aunque, si bien es cierto, también contribuiría a aumentar la complejidad del mismo

[Black, 91].

4.3.1. Distancia entre la duración de las unidades.

Esta distancia trata de medir la distorsión que se produce por el hecho de

emplear una unidad de la base de datos con una duración diferente de la perseguida en

la unidad objetivo. Hay que tener en cuenta que la definición de esta distorsión debe

estar directamente relacionada con el mecanismo que se emplea en TD-PSOLA para

modificar las duraciones, con el fin de medir realmente la distorsión producida por el

procesado de señal y no otra cosa diferente. Además, la distancia debe de ser relativa a

Page 63: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

la duración perseguida, con el fin de ser capaces de estimar la distorsión que se produce

en la duración de una forma porcentual y poder comparar directamente las distorsiones

asociadas a las distintas instancias de la base de datos. La expresión general para la

distancia es la que sigue:

donde:

-dur es la duración del elemento a considerar.

-peso es un factor que dependerá de una serie de condiciones.

-u y o son respectivamente la unidad de la base de datos y la unidad objetivo.

El valor del peso que se aplica a la expresión general se encuentra directamente

relacionado con la forma que tiene el algoritmo TD-PSOLA de modificar las

duraciones. Como ya se citó en el apartado dedicado a TD-PSOLA, la modificación de

la prosodia era posible mediante la repetición con una determinada cadencia de los

periodos básicos constituyentes de la unidad, de tal forma que se consideró que la

variación del peso se debía producir en función del número de periodos que fuera

necesario quitar o repetir de la unidad de la base de datos. Para ello se calculó el número

medio de periodos que contenían tanto la unidad de la base de datos como la unidad a

sintetizar:

Como se puede ver, esta definición de distancia tiene cuenta de forma

simultánea la duración y el tono, aspecto acorde con las modificaciones realizadas por

TD-PSOLA, en el que resulta imposible hacer modificaciones en una característica sin

hacerlas en la otra. Con el objeto de ir penalizando progresivamente aquellas situaciones

que nos resultaban menos ventajosas se decidió cuantificar los pesos en cuatro valores

de menor a mayor grado de penalización.

número medio de periodos = duración * (tono medio)

Page 64: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

Así se optó por emplear el siguiente esquema en la asignación de los pesos:

Figura 4.2. Asignación de pesos en la distancia entre duraciones

Lo que se hizo en primer lugar fue comprobar si la duración de la unidad

contenida en la base de datos era mayor que la duración pedida, en cuyo caso el peso

que se imponía a la distancia siempre era menor. De este modo se trató de evitar que el

algoritmo seleccionase unidades con una duración original más pequeña que la pedida.

Esto se hizo así porque cuando la duración de la unidad es inferior a la solicitada, la

forma que tiene el algoritmo TD-PSOLA de alargar la duración es mediante la

repetición de periodos de la misma, lo que va a dar lugar a fenómenos de acoplamiento

o reverberación cuando se repiten varios periodos exactamente iguales, lo que se

traduce en que estas unidades presentan una especie de timbre metálico al ser

escuchadas, reduciendo este efecto considerablemente la calidad de la síntesis.

Page 65: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

Asimismo, se estableció también un porcentaje sobre el número de periodos de

modificación de las unidades, de cara a penalizar algo más aquellas unidades en las que

fuera necesario eliminar un mayor número de periodos de señal para recortar su

duración. De este modo se pretendía centrar la selección sobre aquellas unidades cuya

duración, además de ser mayor que la pedida, difiriese de ella en un número pequeño de

periodos, de tal modo que el número de periodos a eliminar para recortar su duración

siempre fuese el mínimo posible, respetándose la estructura original de la unidad en la

mayor medida de lo posible. Esto se hizo así porque el criterio de eliminación de

periodos no era capaz de distinguir aquellos periodos de señal más significativos de

aquellos que resultaban menos importantes, pudiéndose degradar bastante la calidad de

la unidad original. Hay que destacar que este mismo criterio también se aplicó para las

unidades cortas, de cara a que, en las condiciones más adversas en las que no hubiese

unidades largas en la base de datos, la tendencia fuese a seleccionar siempre las más

largas que estuviesen disponibles.

4.3.2. Distancia entre el tono de las unidades.

Como su propio nombre indica esta distancia trata de medir la distorsión que se

produce al modificar la curva de tono de las unidades de la base de datos para ajustarse

a la de la unidad objetivo. De forma similar al caso anterior, la distancia entre las curvas

de tono de las unidades se definió como una distancia euclídea entre los tonos medios

de la unidad de la base de datos y de la unidad objetivo, ponderada por un cierto factor

que trataba de penalizar aquellas situaciones más desfavorables. Además, esta distancia

se normalizó para ver la distorsión porcentual producida en la unidad al realizar la

midificación en frecuencia, y para poder comparar con las distancias de otras unidades

de cara a la posterior selección. La expresión general de la distancia así descrita:

En cuanto al valor otorgado a los pesos, al igual que en el caso de las duraciones

se empleó un conjunto cuantificado de cuatro valores que trataba de reflejar la

penalización en función de la situación concreta.

Page 66: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

Así :

Figura 4.3. Asignación de pesos en la distancia en tono

La estrategia seguida fue la de dar una mayor preferencia a aquellas unidades de

la base de datos que, además de presentar una curva de tono con una pendiente similar a

la de la unidad objetivo, tenían tonos medios cuya diferencia era inferior a un porcentaje

fijado del tono medio de la unidad a sintetizar. De esta forma se pretendía que las

modificaciones en la estructura de los periodos de las unidades no fuesen muy grandes,

quedando las unidades con una estructura muy similar a la original y estando, por lo

tanto menos distorsionadas.

Hay que destacar que además se penalizó muy fuertemente a aquellas unidades

cuyo tono medio difería en más de un porcentaje dado del tono medio de la unidad a

sintetizar, tanto por exceso como por defecto. De este modo se pretendió reflejar la

limitación que presenta TD-PSOLA de cara a modificar el tono medio de las unidades

en más de dos octavas, tanto hacia arriba como hacia abajo.

Page 67: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

No obstante, en nuestro caso el porcentaje que se fijó fue algo inferior a esas dos

octavas, ya que al escuchar algunas de las unidades que habían sido sometidas a

modificaciones de este orden, se pudo apreciar que la distorsión introducida era

demasiado elevada, cifrándose experimentalmente la modificación máxima en

frecuencia en un valor en torno al cuarenta por ciento del tono medio original.

4.3.3. Distancia entre los contextos fonéticos.

La distancia entre contextos fonéticos trata de medir la distorsión que se produce

en la síntesis por el hecho de emplear una unidad de la base de datos procedente de un

contexto fonético diferente de aquel en el que va a ser utilizado en la secuencia objetivo

[King, 97]. En efecto, si observamos distintas instancias de una misma unidad

provenientes de contextos fonéticos diferentes, se puede apreciar que en ocasiones

presentan diferencias espectrales en su zona inicial y, dado que es precisamente en este

punto en el que se produce la concatenación de unidades, este aspecto se traducirá en un

mal pegado de las mismas, reduciéndose la calidad de la síntesis al ser claramente

perceptibles los saltos entre unidades.

Figura 4.4. Unidad AB1 tomada de contextos diferentes (/K/ y /N/)

Page 68: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

Las diferencias espectrales encontradas en la zona inicial de las unidades son

debidas a que existe un efecto de coarticulación entre los sonidos adyacentes, siendo

aproximadamente igual el espectro de las unidades cuando la unidad precedente es la

misma. En adición a esto, se pudo apreciar que existían algunos grupos de fonemas para

los cuales la estructura de formantes que se daba en el comienzo de la unidad siguiente

no difería mucho, constituyendo por lo tanto una serie de conjuntos de contextos

fonéticos en principio equivalentes para cada sonido en concreto, no siendo por lo

general las relaciones de equivalencia bilaterales.

Figura 4.5. Unidad ALA proveniente de contextos compatibles (/S/ y /T/)

Dado que esta característica no nos ofrecía la posibilidad de hacer una definición

de distancia similar a las anteriores, en el sentido de tratarse de una distancia euclídea,

en nuestro caso se optó por emplear una distancia que estuviese cuantificada en

principio en tres valores diferentes:

Page 69: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

- el primero de ellos era un valor que no penalizaba en absoluto a la unidad,

haciendo más fácil, por lo tanto, su selección posterior. Este valor se reservó

para aquellos casos en los que el contexto fonético de procedencia era

exactamente el mismo.

- en segundo lugar se dió un valor intermedio, que pusiese a la unidad en una

leve desventaja con el grupo anterior de unidades, de cara a que en principio

la elección siempre se hiciese dentro del grupo de instancias de la unidad

correspondientes a un mismo contexto fonético de procedencia. Este

segundo valor se aplicó a las unidades que provenían de aquellos contextos

fonéticos que se habían identificado como “equivalentes” para cada sonido

concreto.

- por último, se dio un valor elevado a aquellas unidades procedentes de

contextos fonéticos que no resultaban compatibles con el de la unidad

objetivo. De esta forma se pretendió conseguir que estas unidades sólo

fuesen escogidas en caso de que no existiesen unidades contenidas en los dos

grupos anteriores.

Page 70: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

4.3.4. Distancia de concatenación de unidades.

Esta distancia, al igual que la anterior, trata de reflejar la distorsión producida

por el hecho de concatenar unidades de la base de datos que han sido extraídas de

lugares diferentes, debiendo en principio poseer características espectrales diferentes en

la zona de unión. La principal diferencia con la anterior es que, mientras que la distancia

de contextos asignaba un valor en función de unas reglas “estáticas” definidas a través

de la experiencia, en este caso se trata de medir directamente la distorsión a partir de la

distancia entre los espectros de las unidades a concatenar, resultando una medida de la

distorsión que se presenta en principio como mucho más objetiva.

Para medir la distancia entre los espectros se empleó un conjunto de coeficientes

que fuera capaz de representar el espectro de la unidad trama a trama, de tal modo que

la distancia entre dichos coeficientes fuese directamente proporcional a la distancia

entre los espectros. De este modo, la distorsión producida por la concatenación de dos

unidades sería proporcional de alguna forma a la diferencia entre los coeficientes de la

última y primera trama de las unidades a concatenar.

Los coeficientes empleados fueron los mel frequency cepstrum (mfc), que nos

proporcionan una “medición” del espectro en un conjunto de bandas de frecuencia que

se encuentran predefinidas. Hay que destacar que para el cálculo de los mel cepstrum no

se emplea una escala lineal de frecuencias, sino que se utilizan unas bandas

logarítmicas, lo que es claramente acorde con las características del oído humano.

El cálculo de los mel cepstrum se hizo en el programa que extraía los difonemas,

para lo cual se añadió al mismo una rutina que básicamente consistía en lo siguiente:

En primer lugar se define un conjunto de 20 bandas de frecuencia en una escala

logarítmica, cuyos límites expresados en hertzios son los siguientes:

Page 71: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

Límites de las bandas ={0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000,

1231.144, 1515.717, 1866.066, 2297.396, 2828.427, 3482.202,

4287.093, 5278.031, 6498.019, 8000.000}

A continuación, se calcula con qué punto concreto de la FFT se corresponde

cada uno de los límites definidos anteriormente:

Puesto que en principio todas las bandas no van a tener la misma importancia, de

cara al cálculo de los coeficientes, también se definen unos pesos que van a ponderar los

resultados parciales obtenidos para cada banda, y que dependen tanto de la banda en

concreto considerada como de la posición de la muestra dentro de la misma.

El cálculo de dichos coeficientes se efectúa de la siguiente forma:

Una vez efectuado todo este proceso previo común para el cálculo de los

coeficientes de las distintas tramas, se procede al cálculo propiamente dicho de los

coeficientes para cada trama de los difonemas. Para ello, lo primero que hay que hacer

es determinar las muestras que caen dentro de cada una de las tramas. Al igual que en el

algoritmo TD-PSOLA, cada trama está compuesta por dos periodos de señal del

difonema (análisis Pitch-Synchronous), de tal forma que el número de tramas por que

esta compuesto cada difonema es:

num_tramas = num_marcas_pitch - 2

Por lo tanto, cada trama contendrá las muestras comprendidas entre tres marcas

de pitch consecutivas del difonema, existiendo un solapamiento de un periodo de señal

entre cada dos tramas consecutivas. A continuación, para las muestras de la trama se

hace el siguiente proceso:

Page 72: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

- En primer lugar se elimina la componente continua de la señal y se aplica a

las muestras un enventanado de Hamming. Para el cálculo de la componente

continua lo que se hace es restar a cada una de las muestras el valor medio de

las muestras de toda la trama. En cuanto al tamaño de ventana que se empleó

se trata del mismo que el de las tramas:

siendo x[n] el valor de las muestras.

- Posteriormente se calcula la FFT de las muestras resultantes del proceso

anterior.

- A continuación se calcula la energía de la trama, que se va a corresponder

con el último de los coeficientes mel cepstrum.

donde X[k] son los coeficientes obtenidos del cálculo de la FFT.

- El siguiente paso es el cálculo ponderado de la energía de la trama en las

bandas empleadas.

- Por último, se procede al cálculo de los coeficientes mel cepstrum para lo

que se tomó un número de 10 coeficientes por trama, sin considerar el último

de ellos que, como ya se dijo, es la energía de la trama (en principio la única

restricción con que nos encontrábamos fue que este número fuese menor que

el número de bandas en que se trabajaba).

Page 73: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

Una vez realizado el cálculo de los coeficientes mel cepstrum, se procedió a la

definición de una distancia que fuese capaz de cuantificar la distorsión. De cara a esta

distorsión, cada unidad vendría representada por dos vectores de coeficientes: el vector

con los mel cepstrum correspondiente a la primera trama de la unidad y el vector

correspondiente a los coeficientes de la última trama. El resto de vectores no se tuvo en

cuenta, ya que se consideró que las tramas intermedias no resultaban determinantes de

cara a evaluar la distorsión en el pegado de unidades. Se optó por definir la distancia

como la "diferencia" entre los vectores de cepstrum de la última y de la primera trama

de la unidades que deseábamos concatenar, pero dado que el rango de variación de cada

uno de los coeficientes era diferente esta diferencia no podía hacerse directamente como

la distancia euclídea entre ambos vectores, sino que era necesario recurrir a otro tipo de

solución. Puesto que se consideró que en principio la importancia de todos los

coeficientes debía ser la misma, la solución escogida fue la de emplear la distancia de

Mahalanobis entre los dos vectores de coeficientes. La expresión simplificada de esta

distancia queda en nuestro caso:

donde var[i] representa la varianza del coeficiente i-ésimo.

Como se puede ver, la expresión es similar a la de la distancia euclídea,

quedando dividido cada uno de los miembros por la varianza del coeficiente en

cuestión. De esta forma se consigue que, a pesar de que los coeficientes tengan un rango

de variación diferente unos de otros, a la hora de calcular la distancia todos tengan la

misma importancia relativa. Al dividir por la varianza de cada coeficiente quedan

amortiguadas las diferencias muy grandes en aquellos coeficientes que presentan una

mayor varianza, y se amplifica la diferencia en aquellos con una varianza más pequeña

dado que en ellos esta pequeña diferencia puede ser más significativa.

Al igual que en los casos anteriores, se decidió ponderar estas distancias por un

determinado factor que se encargase de que la distancia entre aquellas unidades que no

Page 74: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

concatenaban bien fuese muy grande, perjudicándolas de cara a la posterior selección.

En caso de que la distorsión en el pegado fuese razonable, este peso sería igual a la

unidad, resultando directamente la distorsión la distancia de Mahalanobis entre los

vectores de mel cepstrum de las unidades. Para ello, lo que se hizo fue multiplicar por

un factor bastante elevado el resultado del cálculo de la distancia de Mahalanobis entre

las unidades cuando este valor sobrepasase un cierto valor, a partir del cual se

consideraba que la concatenación entre unidades no era buena.

Con el fin de poder determinar este valor de una forma más o menos fiable se

elaboró un programa que realizaba una serie de cálculos de tipo estadístico de las

distancias entre las unidades originales. Para ello, se tomó todo el conjunto de unidades

que aparecía en el fichero listetiq, y se analizó la distancia de concatenación entre las

distintas unidades, tomando sólo para este análisis aquellas unidades que eran sonoras,

ya que se consideró que esta era la mejor forma de obtener unos resultados fiables. Se

calculó la distancia de concatenación entre cada una de estas unidades y su unidad

precedente en el contexto original del que habían sido extraídas, y se hizo un estudio

sobre el valor medio y la desviación típica de estas distancias para ver cuáles eran los

valores de distancias que se podían considerar como “buenos”. Asimismo, se resaltaron

las distancias más elevadas, empleando estos valores (añadiéndoles un cierto margen

para asegurarnos de que eran válidos) como el umbral por encima del cual se debía

considerar que los espectros de dos unidades no pegaban adecuadamente.

Adicionalmente, en el estudio de aquellos casos en los cuales la distancia era

excesiva pudimos detectar que en algunas de estas unidades se habían producido errores

de segmentación o de marcado, no resultando por lo tanto estas unidades fiables de cara

al cálculo y siendo eliminadas de la base de datos hasta que fuesen correctamente

marcadas o segmentadas.

4.3.5. El algoritmo de búsqueda.

El algoritmo de búsqueda es el encargado de encontrar la secuencia de unidades

de la base de datos que mejor se ajusta a las características prosódicas de la secuencia

Page 75: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

objetivo, en el sentido de que esta secuencia es aquella para la que se minimiza la

distorsión global producida por el procesado de señal [Black, 91] [Hunt, 96]:

En nuestro caso se empleó una búsqueda de Viterbi, de cara a obtener aquel

conjunto de unidades para las cuales se minimizaba la distorsión de una forma global.

Hay que destacar que la selección de unidades no se podía hacer de izquierda a derecha

de la secuencia (unidad a unidad), ya que de este modo lo que se hacía era optimizar la

selección de cada una de las unidades por separado, no teniendo este por qué ser el

resultado que minimizase la distorsión global producida. Este hecho se puede explicar

fácilmente si tenemos en cuenta que, al ser el carácter de las unidades de la base de

datos bastante heterogéneo, sería bastante probable que el algoritmo fuese

seleccionando unidades que pegasen muy bien unas con otras, pero que se encontrase en

cierto momento con que el pegado de una determinada unidad por la izquierda fuese

muy bueno y por la derecha realmente malo, al carecer de unidades en este lugar que

concatenasen bien con la anterior. En este sentido, la búsqueda de Viterbi solucionó este

problema, ya que siempre tiende a seleccionar una secuencia de unidades que sin llegar

a ser la óptima en cada uno de los puntos, es la que ofrece una continuidad más

uniforme en los puntos de pegado de una forma global, apreciándose menos saltos

bruscos entre unidades y tendiendo, por lo tanto, a ser mejor la calidad de la síntesis en

cuanto a continuidad de la misma.

Se elaboró un programa para el cálculo de las secuencias óptimas de unidades

según el algoritmo de Viterbi. Este programa recibe como argumento de entrada un

fichero con la secuencia de difonemas a sintetizar acompañados de sus características

prosódicas (*.di). Lo primero que hace el programa es buscar todas aquellas instancias

de las unidades demandadas que hay disponibles en la base de datos, para lo cual hace

una lectura previa del fichero que contiene la lista con todas las etiquetas, listetiq, junto

a toda aquella información sobre las unidades que nos va a resultar necesaria de cara al

cálculo de las distintas componentes de la distorsión citadas en el apartado anterior.

Una vez hecho esto, construye una especie de array con tantas columnas como

unidades tenga la secuencia objetivo a sintetizar. Cada una de las columnas contiene el

conjunto de instancias de la unidad que hay que sintetizar en esa posición concreta,

Page 76: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

siendo el número de filas por lo tanto, el de instancias de dicha unidad. Así, a modo de

ejemplo, si suponemos que nuestra secuencia objetivo fuese la siguiente:

KA 115 180

AS 65 161

S 90 161

SA 70 161

A_ 80 142

el array resultante de la búsqueda en la base de datos podría ser:

AS@4

AS@3 SA@3

KA@2 AS@2 SA@2

KA@1 AS@1 SA@1 A_@1

KA AS S SA A_

Una vez construido este array se pasa directamente al proceso de búsqueda en el

mismo. Para cada una de las celdas del mismo, además de la información sobre la

unidad de la base de datos que representa, se almacenaba la distorsión (distancia)

acumulada que se llevaba hasta ese punto más información sobre el camino seguido a lo

largo del array para llegar a dicho valor.

La forma de calcular las distancias en cada una de las celdas es la siguiente:

Como se puede ver, la distancia en cada punto está compuesta como ya se dijo

anteriormente por dos elementos. En primer lugar, se encuentra la distancia derivada de

Page 77: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

la sustitución, que se calcula a partir de las distancias entre el tono y duración de la

unidad en concreto y de la unidad objetivo contenida en el fichero *.di. En segundo

lugar está la suma de la distorsión derivada de la concatenación y de la distorsión

acumulada en el punto desde el cual se concatena. Esta segunda componente de la

distorsión se calcula como el valor mínimo de dicha suma de distancias (acumulada más

concatenación) entre la unidad considerada y todo el conjunto de unidades de la

columna anterior, guardando de forma adicional en la celda el punto [i-1][k] desde el

cual se ha llegado a tal valor. En el caso de la primera columna esta distorsión carece de

sentido, considerándose en este caso que el segundo término de la expresión es nulo y

señalando cada una de las celdas de dicha columna como el posible principio de la

secuencia óptima.

El proceso de cálculo de las distancias continúa hasta que se consiguen rellenar

todas las celdas del array, y es entonces cuando se puede proceder a determinar la

secuencia óptima. Como se puede apreciar, este aspecto constituye una de las

principales diferencias entre esta técnica y la de optimización de izquierda a derecha, ya

que en nuestro caso no se conoce cuál va a ser la secuencia global hasta el final de todo

el proceso, mientras que en el otro la selección se va haciendo en cada una de las

posiciones, pudiéndose conocer cuando estuviésemos en la posición i-ésima todo el

conjunto de unidades seleccionadas hasta esa posición.

La forma de determinar cuál es la secuencia a escoger, consiste en examinar las

celdas de la última columna, y quedarnos con aquella que presenta un valor mínimo de

distancia. Este punto se considera que es el correspondiente a la instancia de unidad a

escoger para la última posición, ya que es el que presenta una distorsión global

acumulada mínima tras recorrerse toda la secuencia. Lo que se hace para calcular la

secuencia óptima es recorrer el camino seguido para llegar hasta dicho punto, cosa

sencilla si tenemos en cuenta que en las celdas, además de la distancia se almacena el

punto de la columna anterior a partir del cual se ha llegado a dicha distancia. De este

modo, podemos conocer cuál es el punto desde el cual se llegó a ese elemento final y

repetir todo este proceso columna a columna hasta llegar al elemento de la primera

columna del array, que será la instancia de la unidad inicial a escoger.

Page 78: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 4 La selección de unidades

Page 79: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

Capítulo 5: La reducción de la base de datos

5.1. Introducción.

Como ya se citó anteriormente, el hecho de introducir en la base de datos varias

instancias para cada tipo de difonema, presenta el efecto beneficioso de mejorar la

calidad de la voz sintética generada ya que, al introducirse una mayor variedad

prosódica y de contextos fonéticos para cada unidad disponible en la base de datos,

existe una mayor probabilidad de encontrar una instancia de dicha unidad que se ajuste

aproximadamente al contexto y características prosódicas buscados. Por lo tanto, es

claro que se producirá una menor distorsión de la unidad original, revirtiendo

claramente este aspecto sobre la calidad global de la síntesis generada.

Sin embargo, también se reseñó que el principal inconveniente que se nos

presentaba con esta técnica, era el hecho de que se aumentaba considerablemente el

tamaño de la base de datos de unidades, con todo lo que esto lleva consigo de cara a la

capacidad de almacenamiento necesaria en los equipos, y a los tiempos empleados por

los distintos programas para el tratamiento de este gran volumen de información (sobre

todo con relación al tiempo de búsqueda de la secuencia óptima de unidades para un

determinado contexto). En efecto, es necesario tener en cuenta que la base de datos no

sólo aumenta de tamaño debido a la introducción de nuevas unidades –con sus muestras

y marcas de tono asociadas- sino que también se hace necesario almacenar una serie de

características adicionales asociadas a cada una de dichas unidades, que serán

precisamente aquellas en las que nos basaremos de cara a determinar aquella instancia

de la unidad demandada que vamos a emplear para cada caso concreto, dentro de todo el

conjunto disponible.

En cuanto al problema que se nos presenta, relacionado con el aumento de la

capacidad de almacenamiento necesario para albergar la base de datos en los equipos,

Page 80: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

hay que reseñar que hoy en día no se trata de un problema excesivamente crítico gracias

a la gran capacidad de los sistemas empleados (discos duros de gran tamaño, e incluso

cabría pensar que dado que los ficheros que contienen la base de datos no van a ser

modificados una vez que han sido convenientemente procesados – solamente se leerá

información relativa a la prosodia de las unidades y se copiará aquella relativa a las

muestras y marcas de tono de las mismas -, dichos ficheros pueden ser almacenados en

un disco compacto – CD-ROM -, no ocupando espacio en nuestro PC, constituyendo

una información fácilmente transportable de unos equipos a otros).

Un problema que resulta más serio y que es una clara consecuencia del aumento

del tamaño de la base de datos, es el del tiempo que es necesario para poder procesar los

datos contenidos en dichos ficheros. Por un lado, conviene considerar el aspecto de que

el tiempo de búsqueda en este tipo de bases de datos va a ser bastante mayor que el

empleado en aquellas bases de datos que contienen tan sólo una instancia de unidad por

difonema.

Por otro lado, se encuentra al hecho de que el algoritmo que se emplea para la

determinación de la secuencia óptima de unidades, va calculando una serie de

distancias, teniendo en cuenta para ello todas las combinaciones posibles de unidades

existentes en la base de datos. Para ello, debe realizar un número de operaciones muy

elevado, debiéndose tener en cuenta que dicha cantidad de operaciones no aumenta de

una forma lineal según se incrementa el número de unidades presentes en la base de

datos, sino que lo hace más bien de una manera exponencial.

Este aspecto, que no hace sino contribuir a aumentar aún más el tiempo de

proceso hace que sea necesario llegar a un compromiso entre la mejora que deseemos

obtener (introduciendo para ello una mayor variedad de unidades con contextos y

características prosódicas diferentes) y el tamaño de la base de datos resultante, ya que

un tamaño excesivo puede llegar a hacer que el coste de procesamiento de los ficheros

llegue a ser prohibitivo. Debemos tener en cuenta, que un tiempo de procesamiento

demasiado elevado nos aleja de la posibilidad de realizar el mecanismo de la síntesis en

“tiempo real”, restándose con ello gran valor a los resultados, al carecer las aplicaciones

que sean desarrolladas de una utilidad aparente.

Page 81: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

En este sentido, y tras todo lo indicado anteriormente, se puede ver que se hace

necesario emplear algún tipo de técnica que nos permita reducir el tamaño de la base de

datos sin pérdida de calidad de cara a los resultados obtenidos, así como evaluar algún

procedimiento que nos posibilite reducir al máximo el tiempo de proceso.

5.2. La reducción del tamaño de la base de datos.

Con el objeto de reducir el tamaño de la base de datos, en una primera

aproximación, lo que se hizo fue tratar de eliminar de una manera automatizada todas

aquellas unidades que de algún modo resultasen redundantes (normalmente unidades

cuyas características prosódicas –tono y duración fundamentalmente- fuesen muy

similares a las de otras también presentes en la base de datos) [Black, 97].

En primer lugar, y aunque no se trata de una redundancia desde el punto de vista

de las características prosódicas de las unidades, se optó por elaborar una pequeña

subrutina que se encargaba de seleccionar dentro de las unidades constituidas

exclusivamente por una fricativa (F, S, X y Z) aquella de mayor duración, eliminándose

el resto de unidades de este tipo de la base de datos. De este modo, para este caso

concreto de unidades la base de datos tan sólo contenía una instancia por tipo de

difonema.

Esto se fundamenta en el hecho de que en las fricativas, de cara a la selección de

unidades no se emplea la información relativa al tono, ya que como se dijo

anteriormente dicha información no resulta fiable, ni tampoco la información sobre la

concatenación con unidades adyacentes. Por lo tanto, lo único que va a diferenciar las

unidades de este tipo entre sí va a ser su duración. Las unidades compuestas por tan solo

una fricativa presentan la ventaja de que al ser cortadas no sufren una distorsión

aparente, con lo que al quedarnos en la base de datos con la más larga de todas ellas casi

nunca tendremos que recurrir a replicar periodos para generar una unidad de este tipo,

eludiéndose de esta manera los sonidos metálicos que se producen al replicar periodos.

Page 82: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

La eliminación de las unidades compuestas por sólo una fricativa ya produjo una

reducción del tamaño de la base de datos bastante considerable.

Una segunda técnica que se empleó para eliminar unidades redundantes fue la de

ir agrupando en conjuntos todas aquellas unidades de un mismo tipo (instancias de un

mismo difonema) y eliminar de dichos conjuntos aquellas unidades que resultasen

redundantes desde el punto de vista de sus características prosódicas. Para ello, se

definió una distancia entre unidades que, por otra parte, coincidía con la definición de

distancia que se empleó en el programa de búsqueda de la secuencia óptima de

unidades, esto es:

Distancia=Pd*Distancia_duración+Pt*Distancia_Tono+Pc*Distancia_Concatenación

Donde Pd ,Pt y Pc son los pesos asignados a la distancia entre duraciones, tono y a la

concatenación de unidades respectivamente.

De este modo, en cada conjunto se iban tomando una a una las unidades

componentes, y para cada una de ellas se iba calculando la distancia al resto de unidades

componentes del mismo conjunto. En caso de que dicha distancia entre unidades

resultase ser inferior a un determinado umbral - que fue fijado de forma experimental –

la unidad era eliminada de la base de datos. Hay que tener en cuenta, que la eliminación

de la unidad sólo se producía en el caso de que ambas unidades procediesen de un

mismo contexto fonético (el difonema anterior en la frase de la que fueron extraídas las

unidades era el mismo), ya que si bien nos interesaba reducir el tamaño de la base de

datos, nuestro objetivo era hacerlo manteniendo la mayor variedad posible de contextos

fonéticos.

Aunque si bien con esta estrategia de reducción se conseguía disminuir

considerablemente el tamaño de la base de datos sin apreciarse una diferencia de calidad

con respecto a los resultados obtenidos con el total de unidades, se trató de llevar la

reducción a sus límites extremos con el fin de llegar a una base de datos de tamaño

mucho más reducido en la cual siguiese habiendo una determinada variedad de

unidades.

Page 83: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

5.2.1. La reducción “geométrica” de la base de datos.

En esta estrategia de reducción se hizo la selección de unidades siguiendo un

símil geométrico, para lo cual considerábamos que cada unidad ocuparía una

determinada posición en el espacio siendo sus coordenadas en el plano de la forma

(duración,tono). En nuestro caso concreto nos decidimos por hacer una reducción de

tipo triangular, para lo cual nos quedamos con las tres unidades de cada conjunto cuyas

características de tono y duración se encontrarían en los vértices del supuesto triángulo.

Para ello, se seleccionaron:

· la unidad de menor duración y tono.

· la unidad de mayor duración y tono.

· la unidad de duración y tono más parecidos a la media del conjunto.

El resultado obtenido no fue todo lo satisfactorio que cabría esperar, ya que

además de perderse bastante información sobre los diferentes contextos, la tendencia

general del programa de selección de unidades era la de escoger la unidad “media”.

Este aspecto se puede explicar fácilmente si consideramos las reglas que se

seguían de cara a la selección, ya que por un lado hay que considerar que las duraciones

excesivamente pequeñas eran fuertemente penalizadas para evitar que estas unidades

fuesen seleccionadas, y que el programa que efectúa la síntesis TD-PSOLA tuviese que

realizar la replica de periodos para alargar la unidad, con la consiguiente distorsión

derivada de este hecho.

Por otro lado, en cuanto a los tonos muy pequeños y muy grandes ocurría una

situación similar, ya que la penalización era también muy grande con el fin de evitar

modificaciones superiores al porcentaje máximo de modificación en tono que tolera el

algoritmo TD-PSOLA (en teoría hasta un 50 % de modificación sin generarse

Page 84: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

distorsión, aunque en la práctica se pudo ver que dicho margen era bastante generoso,

debiéndose ser muchos más estrictos si deseábamos mantener un cierto nivel de calidad)

5.2.2. La reducción “por tramos”.

En esta estrategia nos basamos en la eliminación de aquellas unidades presentes

en la base de datos cuyas características prosódicas sabíamos con una cierta seguridad

que nunca serían demandadas por el programa que generaba la prosodia automática a

partir de un determinado texto. Para ello, en primer lugar vamos a explicar brevemente

el modelo que sigue el programa que genera la prosodia automática:

El modelo de entonación:

La entonación es la variación de la frecuencia de vibración de las cuerdas

vocales a lo largo de una frase, existiendo una estrecha relación entre el tono y la

intensidad, de tal modo que la sílaba fuerte de una palabra es a su vez la sílaba tónica, es

decir, la que posee una mayor frecuencia fundamental. La curva de entonación vendrá

marcada por una serie de picos y valles, correspondiéndose los primeros con las sílabas

que presentan una mayor frecuencia fundamental, y los otros con aquellas sílabas que

preceden a los picos.

El modelo entonativo divide la curva de tono en 3 tramos bien definidos

[Martínez, 98]:

-zona inicial: comprende la entonación desde el principio del grupo fónico hasta

la primera sílaba tónica. En esta zona se asigna a la primera sílaba del grupo fónico un

tono en función del signo de puntuación que se encuentre al final del mismo, y al resto

de sílabas se les asigna un valor que sería el correspondiente a una interpolación lineal

entre el valor de la primera sílaba y el valor asignado a la primera sílaba tónica

Page 85: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

-zona central: desde la primera tónica hasta la penúltima. A partir de los valores

de tono de los picos y valles se calcula toda la curva de tono para esta zona intermedia.

Para el caso de las sílabas tónicas aplicamos una recta con dos puntos fijos, el

valor asignado a la primera tónica (PICO1) y el de la penúltima, variando la pendiente

según el número de tónicas del grupo fónico, para lo que se hace una interpolación

lineal con el objeto de calcular el tono del resto de tónicas. En cuanto a los valles, se

emplea un algoritmo similar con valores de tono más bajos, y tomando como puntos

fijos para la interpolación el valor del primer y penúltimo valle.

El cálculo del tono asignado al resto de sílabas comprendidas en la zona central

se efectúa mediante una interpolación lineal entre los valores del valle y pico en la zona

que se encuentren.

Fig. 5.1. Curva de entonación en la zona central.

-zona final: comprende la entonación desde la penúltima tónica hasta el final del

grupo fónico. Se asigna un valor de tono al último valle, a la última tónica y a la última

sílaba, haciéndose una interpolación lineal para el resto de las sílabas pertenecientes a

esta zona.

Page 86: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

Una vez visto el modelo que se sigue para generar la prosodia de las frases que

vamos a sintetizar, por un lado podemos ver que nunca se van a generar unidades con

un tono que se encuentre por encima del más alto de los asignados a los picos, y que lo

mismo va a ocurrir con unidades con tonos por debajo del más pequeño de los valles,

con lo que esas unidades se pueden eliminar directamente de la base de datos. Por otro

lado, también se encuentra el hecho de que en la zona intermedia, al estar haciendo una

interpolación lineal entre picos y valles, estamos definiendo una serie de tramos

(definidos por dos tonos y una pendiente) que serán aquellos que se pedirán al programa

de búsqueda de unidades, no generándose en principio unidades que se encuentren fuera

de dichos tramos ( se ha eliminado del modelo la pequeña componente aditiva

aleatoria).

Para aprovecharnos de todo esto, lo que hicimos de cara a la reducción del

tamaño de la base de datos, fue tomar dichos tramos, ver qué unidades teníamos dentro

de dichos tramos y quedarnos con la de mayor duración de todas ellas para cada tipo de

unidad. Para hacer todo esto de una manera automática, se elaboró una pequeña rutina,

que leía de un fichero de configuración los tramos que fueron empleados:

[NUMERO_TRAMOS]

NumTramos=7

Umbral=10

;Clave para las pendientes de los distintos tramos:

;a 0 indica que la pendiente es aproximadamente plana (distancia entre tonos

;inicial y final por debajo de un umbral dado)

;a 1 indica pendiente de tono ascendente

;a -1 indica pendiente de tono descendente

;a 4 indica que no importa la pendiente

;a 5 indica que o el tono inicial o el final es de 100 Hz, lo que se emplea para

;incluir a las fricativas (por el remarcado automático que se produce).

[TRAMO_0]

fInicial_min=80

fInicial_max=180

f0_min=80

f0_max=180

pendiente=5

tramo_equivalente=0

Page 87: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

[TRAMO_1]

fInicial_min=130

fInicial_max=170

f0_min=130

f0_max=170

pendiente=4

tramo_equivalente=1

[TRAMO_2]

fInicial_min=165

fInicial_max=200

f0_min=165

f0_max=200

pendiente=4

tramo_equivalente=2

[TRAMO_3]

fInicial_min=180

fInicial_max=250

f0_min=180

f0_max=250

pendiente=4

tramo_equivalente=3

;A continuacion se definen una serie de tramos secundarios que solo

;se emplean en el caso de que no se hayan encontrado unidades en los tramos

;anteriores y que representan una relajación en los límites de dichos tramos,

;viniendo este aspecto reflejado por la variable tramo equivalente

[TRAMO_4]

fInicial_min=125

fInicial_max=185

f0_min=125

f0_max=185

pendiente=4

tramo_equivalente=1

[TRAMO_5]

fInicial_min=160

fInicial_max=230

f0_min=160

f0_max=230

pendiente=4

tramo_equivalente=2

[TRAMO_6]

Page 88: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

fInicial_min=50

fInicial_max=250

f0_min=50

f0_max=250

pendiente=4

tramo_equivalente=2

Como se puede ver en el contenido del fichero de configuración, hubo que

definir una serie de tramos solapados para relajar las condiciones de la selección, lo cual

vino motivado por la falta de unidades que se ajustasen exactamente a los límites fijados

por el generador automático de prosodia. Aún así, tuvimos problemas debidos a la

escasa variedad de unidades de que disponíamos, con lo cual tuvimos que abandonar

esta estrategia, al carecer de unidades en la base de datos para muchos de estos tramos.

5.3. La cuantificación de distancias.

Una vez que fueron eliminadas de la base de datos aquellas unidades que

resultaban redundantes desde el punto de vista de sus características de cara al programa

de selección de unidades (siguiendo la primera estrategia explicada anteriormente de

distancia entre unidades inferior a un determinado umbral), el siguiente paso dirigido a

agilizar el tiempo de proceso de la información contenida en la base de datos, fue el de

emplear un método de cuantificación de distancias entre unidades. Este proceso de

cuantificación de distancias consiste en lo siguiente:

Partiendo de todo el conjunto de unidades que constituye la base de datos, se

establece un número determinado de conjuntos (disjuntos entre sí) entre los cuales

vamos a distribuir dichas unidades. En base a una serie de criterios que se detallarán

más adelante, cada unidad pertenecerá a uno de dichos conjuntos. Todas las unidades

que pertenezcan a un mismo conjunto se representarán por un único elemento, que será

el centroide de dicho conjunto. Así pues, la distancia entre dos elementos de la base de

datos vendrá dada como la distancia entre los centroides de los conjuntos a que

pertenecen dichas unidades, cometiéndose por ello un “error de cuantificación” que será

en media tanto mayor cuanto más grande sea la varianza de dichos conjuntos.

Page 89: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

En nuestro caso, tratamos de emplear la técnica de cuantificación de distancias

para evitar tener que almacenar todas las componentes de los vectores de mel cepstrum

de las tramas inicial y final de cada una de las unidades de la base de datos [Black, 97].

De este modo, en lugar de tener que almacenar dos vectores, que en nuestro caso eran

de 11 componentes cada uno, bastaría con determinar a qué conjunto de los que

nosotros determinásemos pertenece cada uno de dichos vectores, quedando reducido

entonces el almacenamiento a dos números por cada unidad que identificasen el

conjunto en que quedarían englobados los vectores (pasaríamos de tener que almacenar

para cada unidad de la base de datos 22 números en formato flotante, a tan solo 2 en

formato byte). De todo lo anterior, tenemos que ahora la distancia que evalúa el

programa de búsqueda de unidades sería la suma ponderada de las distancias en tono,

duración y de la distancia entre los vectores de mel cepstrum de los centroides de los

conjuntos a los que pertenezcan las unidades.

Si se realiza un procesado previo del contenido de la base de datos, se puede ver

en qué dos conjuntos va a quedar englobada cada unidad. Adicionalmente, es posible

calcular las distancias existentes entre todos los pares de centroides representantes de

cada conjunto e irlas escribiendo en un fichero. De este modo, el cálculo de la distancia

entre los vectores de mel cepstrum de dos elementos de la base de datos quedaría

reducida a ver en qué conjuntos se encuentran dichos vectores y a leer del fichero que

contiene las distancias entre centroides aquella que necesitamos. Esta técnica, además

de reducir considerablemente el tamaño final de la base de datos reduce drásticamente

el tiempo de proceso, ya que todo el conjunto de operaciones que eran necesarias para el

cálculo de la distancia de Mahalanobis quedan englobadas en la lectura de un dato de un

fichero.

El método que se empleó para realizar la agrupación en conjuntos (clustering) de

las unidades fue el algoritmo LBG, que se describe a continuación.

5.3.1. El algoritmo LBG.

Page 90: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

Este algoritmo nos permite comenzar el proceso con un número dado de

conjuntos y, en sucesivos pasos del mismo, ir expandiendo dicho número llegando al

tamaño deseado. La base del algoritmo es la siguiente [Furui, 89]:

· Paso 1:

Se parte de un conjunto inicial que contiene todos los vectores que pretendemos

cuantificar. Una vez agrupados todos los elementos en este conjunto inicial, lo que

haremos será calcular el centroide de dicho conjunto (que constituirá el elemento

representativo del mismo), para lo cual tomamos todo el conjunto de tramas de mel

cepstrum y calculamos la media componente por componente, esto es, si representamos

el centroide del conjunto de la forma [y(1),y(2),......y(n)] tendremos que:

Donde xj(i) con i=1..M es la componente i-ésima del vector j (en total tenemos

en la lista M vectores)

· Paso 2:

En este paso lo que haremos será dividir el conjunto inicial en dos subconjuntos,

apareciéndonos por lo tanto dos centroides, que sustituyen al centroide original. La

forma de separar el conjunto inicial en dos subconjuntos, es haciéndolo según una

dirección que sea normal a la de máxima distorsión en el conjunto original. De este

modo, nos aseguramos de que la varianza (distorsión) en cada uno de los nuevos

conjuntos creados será inferior a la del conjunto original.

En nuestro caso, lo que se hizo fue perturbar el centroide del conjunto original

para generar dos puntos diferentes (nuevos centroides temporalmente), para lo cual se

tomó cada una de las componentes del centroide original y, respectivamente, se le sumó

y restó una cantidad muy pequeña:

- y1(i) = y(i) +

Page 91: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

- y2(i) = y(i) -

con i=1..n y siendo un valor dependiente de la varianza del conjunto.

· Paso 3:

Repetimos sucesivamente el proceso de separación de los conjuntos, hasta que

alcancemos el número deseado de centroides. Hay que tener en cuenta que a medida que

el número de centroides aumenta el coste computacional rápidamente se vuelve

prohibitivo.

En cada uno de los pasos del algoritmo, como resultado de la división en k

conjuntos, nos aparecerán k centroides que serán “transitorios”, debiéndose realizar una

serie de iteraciones sobre los conjuntos resultantes, que al final nos den los centroides

que realmente emplearemos de cara a la cuantificación. La manera de hacer dichas

iteraciones es mediante la aplicación del algoritmo de Lloyd, cuyo funcionamiento se

detalla a continuación [Furui, 89].

5.3.2. El algoritmo de Lloyd.

· Paso 1: Inicio.

Consideramos un índice, m=0, que nos va a medir el número de iteración en el

que nos encontremos, y tomamos el conjunto de centroides que resultó de la separación

de los conjuntos (splitting), esto es, {yi(0) con (1 i k) siendo k el número total de

centroides.

· Paso 2: Clasificación.

Clasificamos todo el conjunto de vectores {x(n)} dentro de cada uno de los k

clusters de que vamos a disponer, para lo cual consideraremos que un elemento

Page 92: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

pertenece al cluster para el cual la distancia de dicho elemento al centroide del cluster es

la más pequeña, esto es:

- x C(i) si d (x , yi(m)) d(x, yj(m)) ji

· Paso 3: Actualización de los centroides.

Hacemos m=m+1 (aumentamos un nivel en la iteración) y actualizamos los k

centroides de los conjuntos, para lo cual calcularemos la media de cada uno de los

conjuntos que nos han resultado del paso anterior, siendo esta media resultante el

centroide del conjunto.

A continuación, calculamos la distorsión media, D(m), para todo el conjunto de

vectores (relativa a la distancia de cada elemento a su centroide respectivo).

· Paso 4:

Si la distorsión media en el paso m, D(m), es inferior a la resultante en el paso

m-1, D(m-1), sólo en una determinada cantidad paramos (ya que la mejora que vamos a

conseguir en cuanto a minimización de la distorsión media al realizar nuevas iteraciones

no va a ser sustancial). En el caso contrario (podemos mejorar sustancialmente) se

vuelve al paso 2.

Page 93: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

Capítulo 6: El programa de alineamiento de marcas.

6.1. Introducción.

Los difonemas que se emplean en la base de datos son extraídos de forma

automática por el programa sacadif.exe, que se basa para dicha tarea, además de en una

serie de reglas dependientes de la clase de difonema, en la información contenida en el

fichero de parámetros asociado a cada una de las frases portadoras de que vamos a

disponer de cara a la creación de la base de datos.

Estos ficheros de parámetros son el resultado del marcado semiautomático que

debe ser llevado a cabo por el usuario, y que ya fue descrito con anterioridad. Esto es,

mediante el empleo de la herramienta PCV desarrollada por el GTH, el usuario va

escuchando cada una de las frases portadoras, debiendo delimitar manualmente la

posición de cada uno de los fonemas presentes (etiquetado), así como revisar el

marcado que se realiza de forma automática para añadir aquellas marcas de tono que no

hayan sido colocadas por el programa, eliminar aquellas marcas que el programa haya

colocado erróneamente (por ejemplo en el caso de la duplicación de la frecuencia), o

cambiar de posición aquellas que hayan sido mal colocadas (marcado en zonas de

mínima amplitud de la señal de voz ...).

Teniendo en cuenta que el marcado y segmentación de las unidades se realiza de

forma manual y que, por lo tanto, es susceptible de errores que pueden influir

gravemente en el posterior proceso de la síntesis, se haría necesaria una revisión

Page 94: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

minuciosa de dicho marcado para cada una de las frases por parte de una persona

"experta", lo que conllevaría mucho tiempo. Una posible solución sería la de utilizar a

dos individuos que realicen el marcado y segmentación de los mismos ficheros de

muestras por separado y luego realizar una comparación entre los resultados obtenidos

por ambos, que nos permita centrarnos en la revisión de aquellos puntos en los que se

dan mayores diferencias (que pueden ser errores por parte de alguno de ellos o producto

de diferentes criterios a la hora de realizar la segmentación).

El objetivo que se persigue con la elaboración del programa de alineamiento de

marcas de tono, es el de realizar el alineamiento de las marcas de tono contenidas en dos

ficheros de parámetros (con extensión *.par) asociados a un mismo fichero de muestras,

es decir, se trata de encontrar la secuencia "óptima" que se debe seguir para pasar de la

posición de las marcas de pitch de uno de ellos a la posición de las del otro. Como

resultado de dicho proceso de alineamiento, se genera un tercer fichero de parámetros

en el que la posición de las marcas de tono es el resultado de seguir dicha secuencia

"óptima". La determinación de dicha secuencia se hará en base de una serie de criterios

que se detallarán más adelante.

El alineamiento de marcas de tono se realiza para fonemas aislados, por lo que a

partir del fichero global de muestras tendremos que extraer las del fonema concreto que

deseemos alinear. Para ello se empleará la información referente al etiquetado contenida

en los ficheros de parámetros. Es preciso señalar, que se optó por esta estrategia de

alineamiento para fonemas, en lugar de hacer el alineamiento de forma global para todas

las marcas de tono del fichero de voz, porque el marcado de algunos fonemas -

oclusivas, fricativas ...-no puede ser considerado fiable. De hecho, para estos casos

particulares, dicha información sobre el marcado no se emplea tal cual aparece en el

fichero de parámetros, sino que se produce un remarcado automático a posteriori de

estos fonemas durante el proceso de extracción de los mismos, haciéndolo a una

frecuencia fija.

En este programa se parte de un fichero de muestras (*.raw) y de dos ficheros de

parámetros asociados a dicho fichero de muestras (*.par), resultado cada uno de ellos

del marcado y segmentación del fichero por parte de cada uno de los usuarios. Como ya

Page 95: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

se dijo, los ficheros de parámetros se obtienen con el programa PCV para Windows

elaborado por el GTH, y tienen el mismo nombre que el fichero de muestras,

diferenciándose de este por su extension *.par.

El contenido de estos ficheros consta de dos partes claramente diferenciadas. En

la primera de ellas las líneas son de la forma:

PIT: 0.105563, 108.108109

En estas líneas aparece el resultado del proceso de marcado, indicándose la

posición de las marcas de tono que el usuario ha introducido en el programa PCV. El

primero de los números expresa la posición en segundos de la marca de pitch con

respecto al comienzo del fichero, y el segundo de ellos el tono expresado en hertzios

asociado a la misma. El cálculo del tono se hace con respecto a la posición de la marca

de tono anterior (se calcula como la inversa de la distancia en tiempo entre las marcas

de pitch consecutivas).

La segunda parte de los ficheros hace referencia a la segmentación en fonemas

que se reallizó del fichero, estando compuesta por las etiquetas asociadas a los distintos

fonemas que el usuario ha detectado, apareciendo en el fichero de la siguiente forma :

LBR: 0.069250, 0.123000, 0, 0, 0, T

El primero de los números indica la posición -en segundos- del principio de la

etiqueta y el segundo el final de la misma, ambos referidos al comienzo del fichero. El

último de los campos representa el nombre de la etiqueta, que deberá encontrarse entre

la lista de etiquetas permitidas asociadas a fonemas para que el programa de

alineamiento sea capaz de trabajar con ella.

Dada la importancia que va a tener para nuestro análisis la corrección en el

etiquetado, el primer paso que se llevará a cabo va a consistir precisamente en una serie

Page 96: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

de comprobaciones en los etiquetados de ambos ficheros de parámetros para así detectar

posibles incoherencias.

En primer lugar, antes de comparar un fichero de parámetros con el otro, lo que

se hace es comprobar para cada uno de los ficheros si las etiquetas que el usuario asignó

a los fonemas de la frase se encuentran dentro del conjunto de valores permitido. A

continuación, se procede a analizar si existen las mismas etiquetas en ambos ficheros, y

si se pasa de este punto, se revisa si los comienzos y finales de las mismas no se desvían

entre sí más allá de un cierto offset (configurable mediante un fichero *.ini), y que en un

principio se situó de forma experimental en la duración de un periodo de señal de 160

Hz (tono típico para una señal de voz femenina), es decir, de unas 100 muestras si

empleamos una frecuencia de muestreo de 16 KHz (permitimos al usuario un margen de

error de aproximadamente 1 periodo típico de señal en el marcado de los comienzos y

finales de los fonemas, lo que es necesario sobre todo en algunos fonemas en los que

resulta especialmente difícil determinar el comienzo y fin –por ejemplo tenemos el caso

de los fonemas vocálicos procedentes de un diptongo).

En caso de haberse detectado alguna diferencia significativa en el etiquetado de

los ficheros de parámetros, la ejecución del programa se aborta, ya que el análisis de

pitch en este caso carece de sentido, retornando el programa el mensaje de error

correspondiente a la causa que generó el error y generándose los ficheros de sonido

(*.mst) y de parámetros (*.par) con el formato del programa PCV de los fonemas

causantes del conflicto, para así darle al usuario la posibilidad de realizar las

correcciones necesarias mediante el propio programa de marcado.

6.2. Modo de funcionamiento del programa.

Para ejecutar el programa hay que teclear lo siguiente en línea de comandos:

c:>alineafon fichero

Page 97: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

En este caso, alineafon es el nombre del fichero ejecutable y fichero es el

nombre del fichero de muestras a alinear- no es necesario incluir en el nombre la

extensión-, que se debe encontrar en el mismo directorio que el ejecutable.

Los ficheros de parámetros estarán cada uno en un directorio de trabajo distinto,

siendo diferente de aquel en el que se encuentra el fichero ejecutable. La razón de

emplear esta estructura de directorios, es que los ficheros de parámetros van a tener

exactamente el mismo nombre (el del fichero de muestras con la extensión *.par), no

pudiendo existir en un mismo directorio dos ficheros con exactamente el mismo

nombre.

Fig 6.1. Estructura del árbol de directorios

Como ya hemos dicho anteriormente, el programa consta de dos partes

claramente diferenciadas. En la primera de ellas lo que se hace es una comprobación

previa de los etiquetados de ambos ficheros *.par con el objetivo de detectar diferencias

en los nombres de los fonemas, o diferencias significativas en la apreciación de los

principios/finales de las etiquetas. Esta fase es necesaria, ya que en caso de no ser

superada con éxito el resto del programa no va a poder seguir ejecutándose, o en caso de

que lo haga, los resultados van a carecer por completo de significado.

La comprobación del etiquetado se lleva a cabo mediante una función que

recibe como argumentos :

directorio general

directorio1: fichero de parametros 1directorio2: fichero de parámetros 2mst: ficheros de muestras de las diferencias

ejecutable (*.exe)fichero de configuración (*.ini)fichero muestras (*.raw)

Page 98: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

- las etiquetas de ambos ficheros *.par. Es importante destacar que a esta

función no se le pasan directamente las etiquetas tal y como aparecen en el fichero, sino

que previamente se realiza un procesado sobre ellas. Este procesado consiste en

renombrar aquellas etiquetas que se repiten con el objetivo de que a la hora de generar

los ficheros *.mst asociados a los fonemas no se produzcan ambigüedades, ya que es

precisamente el nombre de la etiqueta el que se usa para nombrar al fichero. El

renombrado se realiza de acuerdo a lo siguiente:

· Si es la primera vez que aparece la etiqueta, ésta no se modifica.

· Por contra, si ya ha aparecido anteriormente se concatena al nombre un string

de la forma @xx, siendo xx el número de veces de aparición del fonema en la frase hasta

ese momento. Así, por ejemplo si en un mismo fichero *.par nos apareciesen tres

etiquetas asociadas al fonema E, estas se renombrarían de la forma E, E@1 y E@2 a

medida que fuesen apareciendo.

- las muestras del fichero *.raw para poder aislar aquellas muestras asociadas al

fonema que cause problemas y así generar el fichero *.mst

- el número total de etiquetas contenidas en el fichero de muestras.

-el umbral por encima del cual consideramos que existen diferencias

significativas de cara al etiquetado de los fonemas.

- el directorio de salida en el que vamos a escribir los ficheros *.mst.

Hay que destacar que tanto el umbral como el directorio de salida son leídos del

fichero de configuración del programa, que tiene el mismo nombre que el ejecutable,

pero con la extensión *.ini ,y que este fichero debe encontrarse en el mismo directorio

que el fichero ejecutable.

Durante el proceso de comparación, a medida que se van detectando las

diferencias, se generan los ficheros *.mst de ambos ficheros de parámetros (cada uno

contenido en un directorio) asociados a los fonemas que son diferentes, concatenando al

Page 99: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

nombre del fonema una extensión -A o -B, en función de que la etiqueta provenga del

directorio de trabajo 1 o del 2.

Como ya dijimos, para que el programa pueda seguir trabajando normalmente,

esta fase debe finalizar sin que sea detectado error alguno. Una vez ejecutada la

comparación, habrá que comprobar el resultado de la misma y, en caso de que hubiera

habido diferencias, se aborta el programa para que el usuario corrija aquellas que

resulten más significativas.

En la segunda parte del programa, es en la que se lleva a cabo el proceso

propiamente dicho del alineamiento. El planteamiento de esta segunda parte se ha hecho

desde el punto de vista de la programación orientada a objetos, definiéndose clases de

objetos que van a estar íntimamente relacionadas con nuestro problema. Así, en un

principio se han definido dos clases, cuya estructura se explicará más adelante, que son :

- TMiFonema : La clase TMiFonema guarda toda la información asociada a los

fonemas, las muestras que lo componen, así como un conjunto de operaciones que se

pueden realizar con los mismos.

-TArray2D : La clase TArray2D entre otras cosas contiene los arrays de dos

dimensiones que vamos a necesitar para realizar el algoritmo de alineamiento de los

fonemas.

6.3. Algoritmo empleado para el alineamiento.

En primer lugar, hay que decir que el alineamiento se va a realizar para fonemas

de una forma aislada, en lugar de hacerlo de una forma global para todo el fichero,

descartando para el análisis los fonemas sordos. Esto es así porque las marcas que se

ponen en dichos fonemas no son fiables, y además, cuando el programa lee dichas

marcas, las recalcula de forma que se repartan de forma periódica a lo largo de la

etiqueta (para que el programa que genera los difonemas pueda trabajar correctamente,

Page 100: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

es necesario que éstos contengan al menos un número dado de marcas de tono, de esta

forma lo que se hace es intentar distribuir este número mínimo de marcas a lo largo del

fonema). Por lo tanto, las marcas de los fonemas sordos con las que trabaja el programa

son diferentes de las que se encuentran en el fichero *.par, careciendo de sentido su

alineamiento.

Para facilitar la comprensión vamos a explicar todo con un ejemplo. El

funcionamiento del algoritmo de alineamiento propiamente dicho es el siguiente :

Supongamos que tenemos dos ficheros de parámetros en los que tenemos las

siguientes marcas : (posición en unidades temporales con respecto del principio de la

frase)

-fichero 1: 3,6,10,15,21

-fichero 2: 2,4,9,14,17,23

Nuestro objetivo será intentar encontrar el camino óptimo en cuanto a coste para

pasar de las marcas del fichero 1 a las del fichero 2. Para pasar de las marcas de un

fichero a las del otro habrá tres operaciones posibles- sustitución, inserción y borrado-,

cada una con un coste asociado siendo el camino óptimo aquel que tiene un coste global

mínimo.

El primer paso que vamos a seguir es crear un array de dos dimensiones, en el

que se van a poder representar todos los posibles caminos para pasar de un fichero a

otro. En dicho array, uno de los ejes va a representar las marcas del fichero 1 y el otro

las del fichero 2.

Así :

23

17

14

9

4

2

Page 101: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

Nosotros vamos a manejarlo como si se tratase de una rejilla,y por tanto lo que

nos van a interesar son los vértices del array, comenzando siempre el camino óptimo en

el vértice inferior izquierdo (el punto (0,0)) y terminando en el vértice superior derecho

(en nuestro caso el punto (21,23)). El cálculo del coste para una celda genérica se hará

del siguiente modo :

Cada flecha nos representa una de las operaciones posibles, ya que nosotros

sólo podremos pasar del punto (i,j) a uno de los adyacentes, y en concreto al que nos

represente un coste mínimo.

El significado de las operaciones es el siguiente:

inserción: implica que hay un elemento que está

presente en el segundo fichero y que no lo está en el

primero. El coste de esta operación va a ser el producto

de una determinada constante por un porcentaje de la distancia con respecto de

la marca de tono anterior. En principio vamos a emplear dos constantes, una con

un valor bajo y otra con un valor más alto que nos sirva para penalizar la

operación en el caso de que sea imposible (por ejemplo cuando la posición de la

marca del fichero 2 sea posterior a la del fichero 1). De este modo se evita que

sea escogida esta operación al final del proceso.

borrado: indica que hay una marca presente en el

fichero 1 que no está en el fichero 2. El coste de esta

(i,j+1) (i+1,j+1)

(i,j) (i+1,j)

0 3 6 10 15 21

Page 102: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

operación, al igual que en el caso anterior será el producto de un porcentaje de la

distancia entre marcas por unas constantes dadas cuyos valores se ajustarán en

función de los resultados que se pretendan alcanzar.

sustitución: indica que la marca que hay en el fichero 1

se corresponde aproximadamente con la del fichero 2,

siendo el coste de esta operación nulo si la diferencia de marcado es inferior a un

determinado offset (para así no penalizar el caso en el que las marcas sean

parecidas pero separadas un determinado offset que sería un porcentaje

determinado del periodo -distancia entre marcas) y en caso contrario un

porcentaje de la distancia euclídea entre la marca del fichero 1 y la del fichero 2.

En primer lugar, lo que se hace es calcular los costes asociados a cada uno de los

puntos de la rejilla. Dicho coste se calcula a partir de los costes de las celdas calculadas

anteriormente, siendo el coste asociado a la celda (0,0) nulo. Así el coste de cada celda

se determina a partir de la expresión :

coste (i,j)= mín {coste (i-1,j)+coste borrado,coste(i,j-1)+coste inserción,coste (i-1,j-1)+coste

sustitución}

Hay que tener también en cuenta que algunas celdas van a ser "especiales" desde

el punto de vista del cálculo del coste, ya que en ellas no van a ser posibles todas las

operaciones. Por ejemplo, en las del eje y solamente será posible llegar desde una

inserción, así como en las del eje x sólo será posible desde un borrado.

Además del coste óptimo cada punto va a guardar información sobre la

operación que ha llevado a dicho coste, con el objeto de luego poder recuperar el

camino óptimo.

La recuperación del camino óptimo se hará hacia atrás, es decir, partiendo del

vértice superior derecho, que representa el punto final del camino y cuyo coste será el

coste óptimo, se analizará la operación que tiene almacenada para ver desde qué punto

Page 103: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

se llegó a el. Este proceso se repetirá hasta que se llegue al punto (0,0). Gráficamente lo

anterior queda :

· Cada celda queda representada por un par de la forma (coste, operación), donde

los tipos de operación son

· 0: sustitución

· 1: inserción

· 2: borrado

· Para simplificar vamos a suponer unos costes asociados a las operaciones de la

forma:

COSTE SUSTITUCIÓN= si distancia entre marcas 2, coste=0

si distancia entre marcas >2, coste=distancia

COSTE INSERCIÓN=2

COSTE BORRADO=2

(12,1) (11,1) (11,1) (10,1) (9,1) (9,0)

(10,1) (9,1) (9,1) (8,1) (7,1) (9,0)

(8,1) (7,1) (7,1) (6,1) (5,0) (7,2)

(6,1) (5,1) (5,1) (4,0) (6,2) (8,2)

(4,1) (3,0) (3,0) (5,2) (7,2) (9,2)

(2,1) (1,0) (3,2) (5,2) (7,2) (9,2)

(0,0) (2,2) (4,2) (6,2) (8,2) (10,2)

El final del camino, se encontraría en el vértice superior derecho siempre y, a

partir de él, podemos recuperar el camino óptimo yendo hacia atrás, para lo cual nos

fijaremos en qué operación se empleó para calcular el coste de dicha celda. En nuestro

caso se puede ver el camino seguido, que queda representado por las flechas de color

gris. Al final obtenemos que, para pasar de un fichero al otro, se ha seguido la siguiente

secuencia :

SUST-SUST-SUST-SUST-INS-SUST

0 3 6 10 15 21

23

17

14

9

4

2

Page 104: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

Es decir, se ha sustituido la marca situada en 3 por la de 2, la de 6 por la de 4, la

de 10 por la de 9, la de 15 por la de 14, se ha insertado una nueva marca en 17 y se ha

sustituido la marca situada en 21 por la de 23.

6.4. Clases definidas en el programa.

Clase TMiFonema

Parte pública:

· TMiFonema :

Constructor de la clase. Se le pasan como parámetros las etiquetas del fichero

*.par, las marcas que ha puesto el usuario, el fichero completo de muestras y el número

de etiqueta (fonema) que queremos crear. En la función se rellenan los campos privados

de la clase, a los que sólo se va a poder acceder a través de las funciones públicas de la

clase que se hayan definido con tal fin.

· ~TMiFonema:

Destructor de la clase. Se encarga de liberar la memoria dinámica reservada para

almacenar las marcas del fonema, las muestras del fonema y por último un array en el

que se guardan las distancias relativas entre marcas que por el momento no se utiliza,

pero que se puede usar para refinar el tratamiento de las distancias (detección de

posibles offsets entre las marcas de ambos ficheros).

· FonemaEscribir:

Page 105: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

Recibe como parámetro el nombre del fichero de texto en donde queremos que

se escriban todos los datos de un determinado fonema. El nombre debe ir acompañado

de la extensión.

Esta función sirve como ayuda en los procesos de depuración, ya que nos

permite acceder al valor que toman todos los campos protegidos del fonema.

· MuestrasObtener:

Esta función nos devuelve las muestras del fonema en una estructura del tipo

TIVector para poder así hacer cualquier tipo de procesamiento de las mismas

(DFT’s ...). La estructura TIVector se explicará más adelante cuando se hable de la parte

protegida de la clase.

· MSTEscribir:

Esta función nos genera un fichero de muestras (*.mst) que se puede escuchar

con el PCV de nombre el mismo del fonema. Recibe como parámetro una cadena de

caracteres que especifica el directorio en el que queremos que se escriba el fichero de

muestras. La cadena debe especificar el path relativo al directorio en que se encuentra el

ejecutable y siempre debe acabar en el carácter ‘/’ para que la concatenación que se

hace internamente se realice satisfactoriamente. Esto es, por ejemplo:

“../../mst/”

· GetLongitud:

Esta función nos devuelve la longitud en número de marcas del fonema en

cuestión.

Parte privada: No tiene

Page 106: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

Parte protegida:

· nombre del fonema.

· marcas del fonema :

Las marcas del fonema están constituidas por una estructura del tipo Tejes32,

que entre otros campos tiene uno con el número de marcas y otro que es un puntero a las

marcas de la etiqueta.

· array que contiene las distancias entre marcas consecutivas.

· muestras del fonema:

Las muestras del fonema son una cadena del tipo TIVector. Cada elemento del

tipo TIVector entre otras cosas va a contener un puntero a las muestras del fonema y

además un campo con el número total de muestras.

Clases amigas:

· TArray2D : se define como una clase amiga de la clase TArray2D porque a la

hora de crear los arrays de dos dimensiones para el alineamiento se va a necesitar

acceder a las marcas de los fonemas, que como ya hemos visto pertenecen a la parte

privada de la clase.

Clase TArray2D

Parte pública :

· TArray2D :

Constructor de la clase, al que se le pasan como parámetros los dos fonemas que

pretendemos alinear. En el constructor se reserva espacio para un array de dos

dimensiones de tamaño (nº marcas fonema 1 + 1) *( nº marcas fonema 2 + 1). Esto es

así porque hay que guardar espacio también para el origen del array, que siempre será el

Page 107: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

principio del camino óptimo. Hay que destacar que cada celda del array será un

elemento del tipo TCeldilla2D, que es una estructura que consta de dos campos:

- el coste del punto de la rejilla.

- el tipo de operacion, que se guarda en la forma SUSTITUCION, INSERCION

o BORRADO.

Además se guardan las marcas de ambos fonemas para que luego se puedan

emplear en la función que calcula los costes de cada celdilla. Esto se puede hacer

porque la clase se definió como amiga de la de los fonemas y, por lo tanto, puede

acceder a sus campos protegidos.

· ~TArray2D :

Destructor de la clase. Se encarga de liberar la memoria reservada para el array

de dos dimensiones, así como la reservada para los arrays que contienen las marcas de

los fonemas.

· ArrayVolcar :

Esta función nos vuelca a un fichero de texto toda la información del array de

dos dimensiones. En concreto nos muestra para cada celda el valor del coste, así como

la operación correspondiente. Hay que aclarar que al estar internamente implementadas

las operaciones como un enum la correspondencia de operaciones es :

-SUSTITUCION = 0

-INSERCION = 1

-BORRADO = 2

La función recibe como parámetro el nombre del fichero de texto incluida la

extensión. El fichero nos queda almacenado en el mismo directorio en que se encuentre

el ejecutable.

· CostesCalcular :

Page 108: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

Esta función calcula los costes de cada una de las celdas del array de acuerdo

con el algoritmo expuesto anteriormente. Internamente hace uso de la función Minimo

que lo que hace es devolvernos el mínimo de tres argumentos enteros. Esta función se

definió porque la estándar que define Borland sólo acepta dos parámetros.

· Alinear :

Esta función nos devuelve el coste óptimo del alineamiento, que se pasa como

parámetro a la función por referencia, así como el camino óptimo expresado como una

cadena de enteros, siendo el significado de los mismos el expuesto en la función

ArrayVolcar. Hay que destacar, que con el objeto de poder determinar donde se

encuentra el final del camino en el último elemento se almacena un valor 3, que como

ya hemos visto no se corresponde con ninguna de las operaciones permitidas. Puesto

que el camino óptimo sólo se puede recuperar partiendo desde el último punto del

camino, una vez recuperado habrá que darle la vuelta para así poder trabajar

correctamente con él.

El coste óptimo será el de la celda correspondiente al vértice superior derecho

como ya dijimos anteriormente. Hay que destacar que en caso de que ocurriese algún

error durante el alineamiento la cadena devuelta sería un puntero a NULL, lo que por el

momento no se ha implementado ya que hará falta determinar las posibles condiciones

que nos pueden llevar a error.

Parte privada :

· Dimensión del eje i del array en número de marcas (número de marcas del

fonema 1).

· Dimensión del eje j del array en número de marcas (número de marcas del

fonema 2).

Page 109: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 5 La reducción de la base de datos

· Marcas del fonema 1.

· Marcas del fonema 2.

· Array de 2 dimensiones con todos los datos del alinemiento.

Parte protegida : No tiene.

Page 110: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 7 La segmentación automática de unidades

Capítulo 7: La segmentación automática de unidades.

7.1. Introducción.

En este capítulo se describen una serie de experimentos, que fueron llevados a

cabo de cara a realizar la segmentación de las frases componentes de la base de datos de

una manera automática. Estos experimentos se realizaron en colaboración con D. Juan

Manuel Montero y con D. Luis García Pérez (profesor y proyectando del Grupo de

Tecnología del Habla, respectivamente).

El objetivo de dichos experimentos, era el de evaluar la posibilidad de realizar la

segmentación de las frases componentes de la base de datos de una manera automática

(como ya se citó en el Capítulo 3, la segmentación consiste en delimitar mediante

etiquetas la posición de los fonemas dentro de las frases), restándose de este modo una

gran cantidad de trabajo para la elaboración de bases de datos compuestas por un gran

número de unidades. En efecto, debemos recordar que dicho proceso de segmentación

es realizado manualmente por el usuario (empleando la herramiente de edición PCV,

elaborada por el GTH), para lo cual éste debe escuchar una a una las frases, y colocar

las etiquetas que aislan cada uno de los fonemas dentro de las mismas.

Claramente, 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 volúmen 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.

Algunos de dichos "errores" podrían ser corregidos mediante el etiquetado

automático, ya que por un lado no sería necesaria la edición manual para generar el

etiquetado (los desarrolladores se podrían centrar 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. Lógicamente, hay que pensar que se producirán

Page 111: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 7 La segmentación automática de unidades

también errores de marcado, que seguramente serán mayores que en el caso de la

segmentación manual, hecho que puede quedar compensado por la considerable

reducción en el tiempo de procesado.

7.2. Descripción de los experimentos.

Para la realización de estos experimentos se empleó el sistema de

reconocimiento de voz de habla aislada desarrollado en el Grupo de Tecnología del

Habla, pudiéndose encontrar una descripción teórica del mismo en el Apéndice A de

este mismo trabajo. Hay que destacar el hecho de que se trata de un reconocedor de

palabras aisladas, aspecto que se ajusta bastante bien a nuestros objetivos (ya que

pretendemos "reconocer" una palabra dentro de una determinada frase-patrón).

Los parámetros fundamentales que emplea este reconocedor son los siguientes:

- frecuencia de muestreo: 8 Khz .

- desplazamiento de trama: 80 muestras (10 ms).

- tamaño de trama: 200 muestras (25 ms).

- coeficiente de pre-énfasis: 1.00.

- parámetros empleados: 11 parámetros estáticos y 11 diferenciales.

- tipos de parámetros: 10 MFCC + energía (extraídos de 17 bandas de

energía).

El alfabeto empleado por el reconocedor estaba compuesto por 28 alófonos y 1

silencio (no aparecen representados los silencios de las oclusivas):

0 ch 10 'u 20 n1 a 11 b 21 ny2 'a 12 z 22 p 3 e 13 d 23 rr4 'e 14 f 24 r5 i 15 g 25 s6 'i 16 x 26 t7 o 17 k 27 y8 'o 18 l 28 &9 u 19 m

Page 112: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 7 La segmentación automática de unidades

Se emplearon modelos semi-contínuos independientes del contexto, con

modelos de fonema de 3 estados. Para el modelado de los silencios inicial y final

también se emplearon 3 estados.

Para el entrenamiento del reconocedor se emplearon las frases utilizadas en la

base de datos de Natvox siguientes (voz femenina aplicada a dominio restringido):

- frases 1, 2, 3, 4, 5, 6, 7, 17 y 19

En total se dispuso de un conjunto de 16.062 alófonos de cara al entrenamiento

del sistema. Hay que tener en cuenta, que por trabajar el reconocedor con una frecuencia

de muestreo de 8 Khz fue necesario convertir la frecuencia de muestreo de nuestras

frases de 32Khz a 8 Khz, para lo que se empleó el programa comercial de edición de

sonido Cool Edit.

Previamente a la realización del entrenamiento, fue necesario generar el

diccionario y la lista que iban a ser empleados, tanto en el entrenamiento del sistema,

como en la fase de segmentación. Para ello se emplearon una serie de programas que se

encargaban de crear dichos ficheros. La creación comenzaba haciendo una llamada al

fichero PROCESA.BAT:

for %frase in (@frases.dir) gosub :PROCESAfor %i in (*.dic) type %i >>lista.unfedit lista.unfquit

:PROCESAfor %i in (%DIR_PAR\%frase\originales\*.par) gosub :PROCESA1return:PROCESA1for %j in (@DIR_TXT\%frase\originales\%@NAME[%i].txt gosub :PROCESA2return:PROCESA2echo %j | perl sinespac.per > sinespac.depfor %k in (@sinespac.dep) gosub :PROCESA3:PROCESA3perl gendic.per @%NAME[%i].lbl %k <%i >%@NAME[%i].dicreturn

Page 113: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 7 La segmentación automática de unidades

El programa iba recorriendo la lista contenida en frases.dir, en la cual se

encontraban las frases a ser procesadas (p.e. frase1, frase 2 ...) y para cada una de ellas

se iban tomando todos los ficheros de parámetros asociado a cada fichero concreto de la

frase (p.e. bv01001.par) y los ficheros de texto asociados a los mismos (p.e.

bv01001.txt), eliminándose los espacios de dicho fichero. Estos datos se le pasaban al

programa gendic.per que era el encargado de generar los diccionarios.

En el programa gendic.per en primer lugar se hacía una conversión de los datos

contenidos en el fichero *.PAR (relativos a la etiqueta LBO, dado que la posición de las

marcas que aparecía en dichos ficheros era relativa a las frases muestreadas a 32 Khz:

Como se puede ver, el proceso que se llevaba a cabo era el de ir buscando las

líneas del fichero *.par que comenzasen por el patrón "LBO" cuyo formato genérico era

el siguiente:

LBO: pos_inic, pos_int, pos_fin, fonema

Se separaban los distintos campos de la línea (mediante la función split) y se

dividía la información contenida en las etiquetas correspondientes a la posición inicial y

final (en número de muestras) por 4 (para pasar de 32 Khz a 8 Khz)..

while ($_=<stdin>){if (/LBO/)

{s/\,//g;@campos=split(/ /,$_,9999);$etiquetas[$cont]=$campos[4];if ($cont==0)

{$etiqueta_inicial=$campos[1]/4;}

$cont ++;$etiqueta_final=$campos[3]/4;}

}

Page 114: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 7 La segmentación automática de unidades

A continuación se tomaban las etiquetas y se hacía la conversión de algunos

fonemas (para adaptarse a nuestro alfabeto) y por último se hacía la codificación de los

fonemas componentes (pasar del fonema a su número correspondiente según la tabla

expuesta anteriormente). El resultado de todo este proceso era un diccionario (fichero

con extensión *.DIC), presentando estos ficheros un aspecto de la forma:

Por último, se generaba una lista (lista.unf) que contenía el nombre de los

diccionarios que habían sido generados).Una vez que se dispuso del diccionario, ya se

pudo proceder al entrenamiento del sistema. Hay que destacar que se generaron dos

codebooks (1 para los parámetros MFCC y otro para su derivada, DMFCC) utilizándose

un total de 256 centroides.

Durante la fase de test, el sistema de reconocimiento recibía como entrada,

además del fichero de muestras de la frase a segmentar (con la extensión *.PCM), un

fichero con la extensión *.LBL asociado a la misma frase. En este fichero, se daba

información al reconocedor sobre la posición dentro de la frase en la cual se encontraba

el fragmento que debía "reconocer" (hay que recordar que se trataba de frases

portadoras que contenían un determinado campo variable, que era lo que nos interesaba

segmentar). El formato típico de estos ficheros era el siguiente (es el mismo que el de

las líneas del fichero *.PAR):

LBO: 51832, 54796, 57761, ablanedo

BV201.lbl 456 357 AkSesta 7 a k s 'e s t a 1 17 25 4 25 26 1BV202.lbl 357 419 Acebo 5 a z 'e b o 1 12 4 11 7BV203.lbl 357 443 Alentisque 9 a l e n t 'i s k e 1 18 3 20 26 6 25 17 3BV204.lbl 374 464 AltoCampó 9 'a l t 'o k a m p 'o 2 18 26 7 17 1 19 22 8.......

Page 115: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 7 La segmentación automática de unidades

Como se puede apreciar, en el fichero aparecen tres números. El primero de ellos

informa sobre la posición (en número de muestras) del comienzo de la cadena a

segmentar (reconocer), el segundo sobre la posición central (este dato no se emplea) y el

último de ellos proporciona la posición del final de la cadena (también en número de

muestras). Por último, también se pasa como argumento de entrada el valor de la cadena

a reconocer.

La salida que daba el reconocedor era un fichero de parámetros (con extensión

*.PAR) con el formato adecuado para el programa PCV (en realidad sólo generaba la

información sobre la posición de las etiquetas asociadas a los fonemas reconocidos). Un

ejemplo de fichero *.PAR generado automáticamente sería el siguiente:

7.3. Resultados del experimento.

Hay que destacar que para la realización del test se emplearon todos los datos de

que disponíamos, esto es, el mismo conjunto de 16062 alófonos que fue utilizado en el

entrenamiento del sistema.

En primer lugar citamos la tasa de reconocimiento obtenida por el sistema, cifra

que solamente tiene sentido con el objeto de evaluar si el funcionamiento del mismo es

correcto (ya que se han empleado los mismos datos en el reconocimiento que en el

entrenamiento). Los resultados obtenidos del reconocimiento fueron los siguientes:

LBO: 52080, 52080, 52720, aLBO: 52720, 52720, 53200, bLBO: 53200, 53200, 54000, lLBO: 54000, 54000, 54720, aLBO: 54720, 54720, 55360, nLBO: 55360, 55360, 56240, 'eLBO: 56240, 56240, 56800, dLBO: 56800, 56800, 57760, o

Page 116: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 7 La segmentación automática de unidades

Número de ficheros a reconocer: 1364.

Aciertos primer candidato: 1321 sobre 1364 (0.9685 %)

Aciertos segundo candidato: 1361 sobre 1364 (0.9978 %)

Aciertos tercer candidato: 1363 sobre 1364 (0.9993 %)

Aciertos cuarto candidato: 1364 sobre 1364 (100 %)

Investigando los fallos que había tenido el reconocedor, se pudo observar que

una gran parte de los mismos era debida a la existencia de distintas pronunciaciones

para un mismo fonema (p.e. d/z) no constituyendo por lo tanto errores en el

reconocimiento. Al final de este análisis se llegó a las siguientes cifras:

Aciertos primer candidato: 1358 sobre 1364 (99.5601 %)

Aciertos segundo candidato: 1361 sobre 1364 (99.7801 %)

Aciertos tercer candidato: 1361 sobre 1364 (99.7801 %)

Aciertos cuarto candidato: 1364 sobre 1364 (100.00 %)

En cuanto a los resultados de la segmentación automática, que era lo que

realmente queríamos evaluar, se consideraron como 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 de nuestro sistema va a venir marcada por el desplazamiento de trama que

empleemos, no pudiendo nunca ser mayor que dicho desplazamiento, que en nuestro

caso es de 10 milisegundos). Con este umbral de 20 milisegundos se obtuvieron los

siguientes resultados:

Tasa de aciertos: 28.631 sobre 32126 marcas (89.1210 %)

Error medio cometido por marca: 8.9953 %

Page 117: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 8 Conclusiones y líneas futuras

Capítulo 8: Conclusiones y líneas futuras.

8.1. Conclusiones y líneas futuras de trabajo.

En primer lugar hay que destacar que, para que la mejora que aporta el sistema

de síntesis por selección sea significativa en relación a lo que nos ofrecen en la

actualidad los sistemas tradicionales de síntesis por concatenación, es necesario

disponer de una gran variedad de unidades en la base de datos, en lo que se refiere tanto

a sus características prosódicas, como a los contextos fonéticos de procedencia de las

mismas. Hay que tener en cuenta que, el disponer de una base de datos de gran tamaño

no implica que esta base de datos sea "de buena calidad", ya que en muchos casos

existen muchas unidades que no están aportando ninguna riqueza a la misma

(características prosódicas muy parecidas entre sí o contextos fonéticos de procedencia

similares).

Además, si se observan las listas de unidades procedentes de los procesados

automáticos, que se llevan a cabo para la construcción de la base de datos, se puede ver

que un porcentaje bastante importante del total de unidades son unidades compuestas

por sólo una fricativa (S, F, Z, J) o silencios. Estas unidades presentan unas

características bastante redundantes, ya que tan solo se van a diferenciar unas de otras

por su duración, con lo que estamos teniendo un porcentaje de unidades dentro del total

bastante elevado, que no aporta riqueza al sistema.

En cambio, para otro tipo de unidades menos comunes (como por ejemplo puede

ser el caso de los trifonemas) la variedad es apenas inexistente, contando en muchos

casos con tan solo una instancia por tipo de unidad. Este aspecto va a traducirse en que,

en algunos casos, las modificaciones prosódicas que será necesario llevar a cabo sobre

las unidades serán muy grandes, distorsionándose mucho la señal de voz e influyendo

muy negativamente sobre la calidad de la voz. En efecto, es necesario incidir en el

hecho de que es muy importante que la calidad de la secuencia seleccionada sea

aproximadamente uniforme, aspecto al que contribuye el hacer uso de la búsqueda

Page 118: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 8 Conclusiones y líneas futuras

según el algoritmo de Viterbi, ya que será normalmente la unidad de peor calidad,

dentro de las seleccionadas, la que marque la impresión que obtendrá el usuario del

sistema.

Este aspecto relacionado con la variabilidad de unidades hace inviable, por el

momento, la aplicación de este sistema a la síntesis de voz con emociones, dada la

escasez de datos de que se dispone (unas 1000 unidades por emoción). Hay que tener en

cuenta que, a la hora de sintetizar las emociones, disponíamos de muy poca variedad de

datos, y en algunos casos había unidades para las que tan solo se disponía de una

instancia. Este hecho no es tan importante en unidades del tipo de la emoción neutra, en

la que las características prosódicas presentan una mayor uniformidad, pero sin

embargo, en emociones como la sorpresa o la alegría (en las que se dan cambios muy

bruscos de ritmo y además muy focalizados en ciertos puntos de la frase) el algoritmo

TD-PSOLA debía hacer modificaciones muy drásticas sobre la señal de voz. Estas

modificaciones aparecían en forma de sonidos metálicos de reverberación que

disminuían considerablemente la calidad de la voz sintética, no obteniéndose mejora

aparente con respecto de un sistema convencional.

Siguiendo con la base de datos, resulta de vital importancia llevar a cabo un

revisado bastante exahustivo de la segmentación y marcado de las unidades, ya que este

tiempo que se invierte en eliminar unidades espúreas contribuye firmemente a un

aumento considerable de calidad (puesto que el algoritmo es incapaz de detectar estas

unidades). Por otro lado, se pudo comprobar la imposibilidad de automatizar por

completo el proceso de generación de la base de datos, debiéndose realizar la selección

manual de algunas unidades en concreto, como fue el caso de las fricativas y las

unidades del tipo B-D-G (ya que las que fueron grabadas originalmente poseían, en

muchos casos, pequeñas explosiones o exceso de energía, aspecto que hacía que al ser

empleadas en un contexto diferenteal original, sonasen francamente mal). La tendencia

seguida fue la de escoger unidades "suaves".

Un dato que quedó bastante patente durante la realización del proyecto, fue el

hecho de que el rango de modificación de las características prosódicas que permite el

algoritmo TD-PSOLA es bastante inferior a las dos octavas teóricas, debiendo ser más

selectivos con las unidades si queremos mantener un cierto grado de calidad. Por otro

Page 119: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 8 Conclusiones y líneas futuras

lado, se observó que resultaba poco apreciable la diferencia entre las unidades cuyas

características prosódicas habían sido modificadas ligeramente, y aquellas que habían

sufrido mayores modificaciones (siempre hablando dentro del rango de tolerancia para

TD-PSOLA). En general se pudo apreciar que, aunque se produjera una mejora bastante

sutil en la calidad de la síntesis (en el sentido de reducirse ruidos en la concatenación o

tonos metálicos) es resultado distaba bastante de los objetivos perseguidos, ya que se

obtenía una voz con un timbre bastante diferente del original, y en general, bastante

nasalizado.

En este sentido, durante la escritura de este proyecto, se comenzó a experimentar

con el pegado directo de unidades sin el empleo de TD-PSOLA [Montero, 00],

obteniéndose resultados bastante satisfactorios, al ser mucho más parecido el resultado

obtenido al timbre de voz original del locutor/a, con lo que se puede conseguir una voz

mucho más "natural" (aunque la calidad es los resultados resultó bastante inconsistente,

al tener enunciados que se sintetizaban muy bien y otros que sonaban bastante mal). En

general, en estos experimentos se ha podido observar que, cuando la extracción de los

difonemas se ha realizado correctamente se produce una concatenación bastante buena

entre las unidades, no generándose ruidos apreciables. Por el contrario, lo que sí que se

aprecia son los saltos de tono al pasar de una unidad a otra y las diferentes pendientes en

la curva de entonación (la única modificación que se efectúa sobre las unidades es la de

adaptar sus duraciones a los objetivos pedidos).

De todo lo anterior, se extrae que se hace necesaria una revisión de la función

que mide la distorsión derivada de la concatenación de unidades, debiendo tender hacia

distancias del tipo del establecimiento de la diferencia entre tonos medios en la zona del

pegado o similares, en lugar del empleo de la distancia entre los coeficientes mel

cepstrum (que resulta computacionalmente mucho más costosa).

Asimismo, resulta patente la necesidad de perfeccionar un mecanismo de

normalización de energías, para evitar que el salto de unidades se aprecie en forma de

una diferencia de las mismas. En principio, se debe tratar de conseguir que todas las

unidades al ser sintetizadas tengan una energía uniforme, siendo el mecanismo de

normalización dependiente del tipo de unidad. Por último, también sería necesario

Page 120: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Capítulo 8 Conclusiones y líneas futuras

emplear algún mecanismo de suavizado en la zona de pegado de las unidades para

mejorar la transición entre unidades y eliminar los pequeños ruidos que aparecen.

En estos experimentos, se puede apreciar la necesidad de introducir en el sistema

características adicionales de cara a la selección de las unidades, como pueden ser la

posición de las mismas dentro de la frase de que fueron extraídas (por ejemplo

procedentes de un principio o final) o el hecho de saber si se trata de unidades

acentuadas, con el fin de que en estos casos particulares la tendencia del sistema sea la

de escoger unidades de estas características en el caso pertinente o la de penalizar

fuertemente su selección cuando no se trate de unidades de este tipo.

Page 121: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

Apéndice A. El sistema de reconocimiento.

A.1. El sistema de reconocimiento.

En este apartado se hace una descripción teórica del sistema de reconocimiento

de voz de habla aislada desarrollado en el Grupo de Tecnología del Habla (GTH). En

perimer lugar se hará una explicación sobre el funcionamiento del reconocedor basado

en modelos de Markov discretos para luego describir como funciona el sistema cuando

se utiliza modelado semicontinuo. Más información sobre modelados y técnicas de

reconocimiento se puede encontrar en [García, 00].

A.1.1. Descripción general del sistema de reconocimiento.

El esquema global del sistema, utilizando modelos discretos de Markov, queda

resumido en la siguiente figura:

PARAMETRIZACIÓN CUANTIFICACIÓN RECONOCIMIENTO

CÁLCULO DE PESOS

CÁLCULO DE CODEBOOK

ENTRENAMIENTO

Page 122: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

Figura A.1: Esquema global del sistema de reconocimiento que utiliza modelado

discreto.

El sistema de reconocimiento podemos considerarlo dividido en dos grandes

etapas:

Entrenamiento: su objetivo es obtener una serie de modelos o

prototipos que se utilizarán en la etapa de reconocimiento.

Reconocimiento: se compara la palabra a reconocer con cada uno

de los modelos obtenidos con anterioridad y se elige el de mayor

probabilidad.

En el caso particular que nos ocupa, el entrenamiento del sistema se realizó con

el 100% de los datos disponibles, reconociendo este mismo porcentaje de los datos

(aunque el modo normal de proceder es entrenando con aproximadamente el 70 % de

los datos, reconociendo con el 30 % restante).

En la etapa de entrenamiento, a su vez, podemos distinguir cinco fases:

1) Parametrización: en esta fase se calculan una serie de

coeficientes a partir de las muestras obtenidas en la fase de muestreo de la

señal de voz. Dichos coeficientes contienen las características más

significativas del habla.

2) Cálculo de los pesos: tiene como función obtener los pesos que

se utilizarán para ponderar la distancia euclídea empleada en el cálculo de la

distancia entre dos vectores de parámetros.

3) Cálculo del codebook: se calcula un número finito de vectores

representativo del conjunto formado por todos los vectores que se han

obtenido en la parametrización. Se denomina codebook a este conjunto finito

y centroide a cada uno de los vectores que lo componen.

Page 123: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

4) Cuantificación: el objetivo de esta fase consiste en reducir la

variabilidad de los datos a tratar. Consiste en asignar a cada uno de los

vectores obtenidos en la fase de parametrización el centroide más cercano.

5) Entrenamiento: consiste en generar una serie de modelos o

prototipos a partir de los datos con los que se entrena. Cada uno de estos

modelos se construye a partir de varias pronunciaciones de la palabra o del

alófono correspondiente dependiendo de si utilizamos modelos de palabra o

de alófono, respectivamente. Como ya vimos en el capítulo anterior, la

conveniencia de usar uno u otro tipo de modelos depende, en gran medida,

del tamaño del vocabulario que se quiera reconocer.

Por otra parte, en la etapa de reconocimiento podemos distinguir tres fases

diferentes:

- Parametrización: el proceso es análogo al que se lleva a cabo en

el entrenamiento, pero en esta ocasión se parametrizan los datos de

reconocimiento.

- Cuantificación: se asigna a cada uno de los vectores obtenidos en

la parametrización el centroide más cercano, análogamente a como se hacía

en el entrenamiento.

- Reconocimiento: se compara la palabra a reconocer con cada uno

de los modelos o prototipos de las palabras existentes en el diccionario,

eligiéndose aquél con el que se obtiene una mayor probabilidad. En el caso

de utilizar modelos de alófono se construye el modelo correspondiente a

cada palabra del diccionario concatenando los sucesivos alófonos de los que

consta dicha palabra.

En este apartado únicamente se ha pretendido que el lector tenga una idea

general de cómo funciona el reconocedor de voz que utilizamos. En lo que resta de

capítulo se hará una descripción más exhaustiva de los diferentes bloques que

componen el sistema.

Page 124: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

A.1.2. La parametrización.

La parametrización tiene dos objetivos fundamentales:

La representación de la señal de habla, previamente muestreada, a través de

unos parámetros que resalten las características más importantes del mensaje

comprendido en la onda acústica, eliminando parte de la redundancia de la señal.

La adecuación del análisis a la forma de comportarse del oído humano.

El habla es una secuencia de sonidos consecutivos y solapados a causa del

movimiento de los órganos articulatorios. Esto se refleja acústicamente en una señal que

presenta una variación en el tiempo. Dicha variación es muy inferior a la frecuencia que

suele utilizarse en los sistemas de procesamiento del habla. A consecuencia de ello, se

puede considerar que el proceso de articulación es continuo con tendencia a la

estacionariedad en los núcleos de los sonidos. Esta es la razón por la que la señal de

habla se considera cuasi-estacionaria (más información y bibliografía sobre el tema se

puede encontrar en [García, 00]).

La variación lenta que presenta la señal de habla nos permite dividir su análisis

en tramas de duración relativamente corta. El análisis localizado del habla selecciona

tramas de duración finita y con solapamiento entre ellas. Este análisis puede llevarse a

cabo tanto en el dominio del tiempo como en el de la frecuencia.

En el dominio temporal, los parámetros son la energía local, la tasa de cruces por

cero y la función de autocorrelación. El análisis es sencillo, rápido y tiene interpretación

física directa.

En la actualidad, el análisis frecuencial del habla es el más utilizado. Los

parámetros espectrales que suelen emplearse en la mayor parte de los casos son los

parámetros cepstrales o MFCC (“Mel-Frequency Cepstral Coefficients”). En las páginas

Page 125: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

siguientes se explicará con detalle la parametrización cepstral que se empleó en análisis

que nos ocupa.

La parametrización cepstral.

El siguiente diagrama de bloques resume el proceso de obtención de los

parámetros MFCC:

Figura A.2: Proceso de obtención de los MFCC.

A continuación, se describe la generación de los parámetros MFCC a partir de

las muestras de la señal (esta descripción, aunque algo simplificada, ya fue realizada

anteriormente en el Capítulo 4 para explicar la manera calcular la distancia de

concatenación entre unidades):

1) Debido a que la señal de voz se atenúa 6 dB/octava conforme aumenta la

frecuencia, es necesario introducir un filtrado cuya función es incrementar la

relevancia de las componentes de alta frecuencia. Este proceso se conoce con

el nombre de preénfasis y puede ser diseñado a través de un filtro digital

paso alto (este filtrado de preénfasis no fue empleado en el cálculo de

distancias). Este filtro paso alto puede implementarse con la siguiente

ecuación en diferencias:

donde a es una constante que varía entre 0 y 1.

En el dominio de la transformada Z, la función de transferencia del filtro

tiene la expresión siguiente:

VENTANAHAMMING

PREENFASIS FFT ENERGÍA EN CADA BANDA

LOG DCT

Page 126: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

2) Se aplica un enventanado Hamming para seleccionar la trama con la que

vamos a trabajar. La ventana de Hamming viene definida por la siguiente

ecuación:

0<n<N

3) Se aplica la transformada discreta de Fourier (DFT) sobre la trama de

muestras enventanada, que se implementa a través de la transformada rápida

de Fourier (FFT). Se extrae el módulo de la FFT calculada en cada uno de

sus puntos, despreciándose la fase debido a la poca información que

proporciona en los procesos de reconocimiento de habla.

4) Llegados a este punto se utiliza la escala Mel para dividir el espectro en un

banco de filtros, mucho más estrechos y linealmente espaciados en las bajas

frecuencias, y muy amplios y logarítmicamente espaciados en las altas. De

este modo, se da mayor importancia a la información contenida en las bajas

frecuencias en consonancia con el comportamiento del oído humano.

Se calcula la energía en cada una de las bandas de frecuencias en que la

escala Mel divide el espectro. Para ello se suman los módulos al cuadrado de

la FFT en los puntos que se encuentren contenidos en cada una de dichas

bandas.

5) Se calcula el logaritmo de las energías calculadas anteriormente.

6) Los coeficientes cepstrales se calculan como la transformada coseno discreta

(DCT), que hace las veces de transformada inversa, de las energías

logarítmicas obtenidas con anterioridad. En concreto, los coeficientes

cepstrales se obtienen a partir del muestreo en 10 puntos de dicha

transformada. El cálculo de los MFCC responde a la expresión (citada en

4.3.3.) :

Page 127: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

donde i=1...M

Los elementos de la ecuación representan:

- k es la banda de frecuencias.

- j es la trama en curso.

- e(j,k) es el logaritmo de la suma de los módulos al cuadrado de la

FFT en la banda k de la trama j.

- L es el número de bandas o filtros.

- M es el número total de coeficientes MFCC (10, en nuestro caso).

A este conjunto hay que añadir un nuevo parámetro que es la energía local en la

trama. Esta energía se calcula del siguiente modo:

El significado de los elementos de la ecuación anterior es el siguiente:

- X(i) es la transformada discreta de Fourier de la señal de habla

calculada mediante la FFT.

- t es la trama objeto del cálculo.

- L es el número de puntos de la FFT.

Al finalizar la parametrización, cada trama se convierte en un vector compuesto

por 11 parámetros, en los cuales está contenida la información significativa del tracto

vocal.

Para obtener una representación del habla más robusta, se utilizan los parámetros

DMFCC (derivada) y DDMFCC (aceleración), conjuntamente con los MFCC. La razón

por la que se utilizan estos parámetros, también denominados transicionales o

diferenciales, se basa en el hecho de que en sistemas independientes del locutor, las

frecuencias de resonancia (formantes) fluctúan considerablemente de unos locutores a

Page 128: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

otros, mientras que las variaciones de dichas frecuencias (pendientes de los formantes)

son más parecidas. Los parámetros DMFCC se obtienen derivando los MFCC, mientras

que los parámetros DDMFCC se calculan derivando los DMFCC.

A.1.3. El cálculo de los pesos.

La necesidad de introducir el concepto de distancia se debe a que, tanto en la

elaboración de los codebooks como en la cuantificación, es preciso evaluar el parecido

entre dos vectores de parámetros.

Para medir la distancia entre dos vectores, X e Y, se utiliza la distancia de

Mahalanobis, que se calcula a través de la siguiente expresión (una expresión

simplificada de ésta ya fue empleada en el Capítulo 4):

En esta expresión C representa la inversa de la matriz de covarianza de X e Y.

Desde el punto de vista práctico, resulta difícil obtener dicha matriz. Para simplificar el

cálculo, se utiliza una matriz diagonal, partiendo de la suposición de que el resto de sus

valores son insignificantes. La expresión resultante quedaría del siguiente modo:

En la ecuación anterior, xi e yi representan las coordenadas de los vectores de

parámetros ceptstrales X e Y, respectivamente, N es el número de coordenadas de los

vectores y Wi son los pesos aplicados a cada una de las componentes.

Al igual que se hizo en la definición de distancias de cara a la evaluación de la

distorsión generada en el pegado de unidades (ver 4.3.3), los pesos W i toman el valor de

los inversos de las desviaciones típicas de las componentes del vector de parámetros.

Page 129: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

Esta manera de calcularlos tiene por objeto dar idéntica importancia relativa a todos los

parámetros en el cálculo de las distancias.

A.1.4. El cálculo del codebook.

El codebook está formado por un número finito de vectores, denominados

centroides, representativo del conjunto de vectores cepstrales obtenidos en el

entrenamiento. Se genera de tal manera que la distancia promedio entre cada vector y su

centroide asociado sea la menor posible, con lo cual conseguimos que el error de

cuantificación sea mínimo.

Para llevar a cabo la generación del codebook se utiliza el algoritmo LBG, que

ya fue descrito en el Capítulo 5, pudiéndose encontrar más datos sobre el mismo en

[Furui, 89].

Al elegir el número de centroides del codebook, deben tenerse en cuenta varios

aspectos. Por un lado, si tenemos un número excesivo de centroides, el proceso de

cuantificación es más lento, aumenta la memoria necesaria para guardar los modelos o

prototipos y, además, éstos puede que no estén lo suficientemente entrenados. En

cambio, si el número de centroides es demasiado pequeño, aumenta el error que se

comete en la cuantificación, lo cual puede afectar muy negativamente a la tasa de

reconocimiento. Es preciso llegar a un compromiso entre ambas situaciones.

Como ya se ha mencionado con anterioridad, para obtener una representación

más robusta del habla pueden emplearse los parámetros DMFCC y los DDMFCC,

conjuntamente con los MFCC. En este caso, habrá que elaborar un codebook por cada

uno de los tipos de parámetros que se emplee. De esta forma, se dice que se utiliza un

único codebook cuando sólo se utilizan los parámetros MFCC, dos codebooks cuando

además se emplean los DMFCC y tres codebooks cuando se añaden los parámetros

DDMFCC.

Page 130: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

A.1.5. La cuantificación vectorial.

El objetivo de la cuantificación es reducir el volumen de los datos que vamos a

tratar, perdiendo la mínima cantidad de información posible. Una vez que disponemos

de los pesos que definen la distancia que vamos a utilizar y el codebook formado por un

conjunto de centroides representativo del total de vectores que nos han servido para

entrenar, estamos en disposición de realizar la cuantificación. Este proceso consiste en

asignar a cada uno de los vectores cepstrales el centroide más cercano, tal y como se

indica en la figura siguiente:

Vector de Centroide

parámetros del codebook

Figura A.3. Esquema del cuantificador vectorial

La calidad de un cuantificador se mide a través del error de cuantificación

medio. De ahí la importancia de la elección del número de centroides, así como del

algoritmo a emplear para generarlos.

A.2. Teoría de Modelos Ocultos de Markov (HMM).

Antes de describir los módulos de entrenamiento y reconocimiento, vamos a

explicar el fundamento teórico en que están basados ambos módulos: la teoría de

CODEBOOK

CÁLCULO DELA DISTANCIA

PESOS

Page 131: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

Modelos Ocultos de Markov (HMM). En este apartado, no se va a desarrollar de manera

rigurosa todo el formulismo matemático asociado con los modelos de Markov, el cual

puede consultarse en numerosas fuentes (ver referencias en [García, 00]). Trataremos de

proporcionar al lector una serie de conocimientos teóricos sencillos con objeto de que

sea capaz de comprender el sistema de reconocimiento que estamos describiendo.

A.2.1. Descripción general.

Un HMM es un modelo parámetrico capaz de describir hechos acústicos del

habla y que queda completamente definido por medio de una serie de variables

estadísticas. Hay que tener en cuenta una serie de consideraciones previas antes de

definir estas variables:

Un modelo de Markov está constituido por un cierto número de

estados, N, que dependerá del fenómeno que se quiera modelar.

En cada estado, el modelo genera un símbolo perteneciente a un

alfabeto finito.

Las transiciones entre estados pueden producirse cada vez que

transcurre un intervalo de tiempo finito igual a la duración de una trama.

Por ello, podemos considerar que los modelos de Markov están constituidos por

dos procesos estocásticos: uno de ellos oculto, que es el paso de unos estados a otros, y

otro no oculto, que es la generación de símbolos que se produce en cada estado.

Partiremos de una secuencia de estados S={s1, s2, ... , sN} y una secuencia de símbolos de

entrada O={o1, o2, ... , oN}, que es la observación vista del proceso oculto de Markov y

que toma sus valores del conjunto de centroides que forma el codebook V={v1, v2, ... ,

vM}.

Estamos ya en disposición de establecer cuales son los elementos necesarios

para caracterizar un HMM:

Page 132: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

El número de estados N que forma cada modelo.

Matriz ={1, 2, ... , N} donde i es la probabilidad de que el

proceso comience en el estado i. En general, se toma 1=1 y 2= … =N= 0, es

decir, siempre se comienza por el primer estado.

Matriz A=[aij, 1iN, 1jN], es la matriz de probabilidades de

transición, por lo que aij = Pr(st+1=j / st=i).

Matriz B=[bj(k), 1jN, 1kM], es la matriz de

probabilidades de emisión del símbolo k en el estado j, por lo que bj(k) =

Pr(ot=k / st=j). Según el tipo de matriz B, los modelos de Markov pueden

clasificarse en continuos, discretos y semicontinuos, que es un híbrido de los

dos casos anteriores.

Para cada unidad acústica que se quiera reconocer debe entrenarse un modelo de

Markov a partir de un número suficiente de pronunciaciones de la misma, con el fin de

calcular los valores óptimos de las matrices A y B. En el reconocimiento, se calcula la

probabilidad de que cada modelo haya generado la secuencia de entrada, determinando

la máxima de todas ellas la unidad acústica que ha sido reconocida. Tanto en el

entrenamiento como en el reconocimiento se utiliza el algoritmo de Viterbi, que se

explicará más adelante

A.2.2. Tipos de modelado.

En función de cómo sea la función de distribución en cada estado, podemos

clasificar los modelos en discretos, continuos y semicontinuos. A continuación, se

realiza una breve descripción de cada uno de ellos.

1. Modelos de Markov discretos.

Page 133: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

Como ya se ha explicado anteriormente, se crea un codebook con los vectores

(que hemos denominado centroides) que mejor representan al conjunto de vectores de

parámetros de la base de datos, para después asignar a cada uno de estos últimos el

centroide más cercano en el proceso de cuantificación. Por tanto, en este caso, la

función densidad de probabilidad es discreta y los símbolos que emiten los modelos son

índices que representan a los centroides.

La principal ventaja de trabajar con modelos discretos es la sencillez de la

implementación, que lleva asociada un tiempo de procesamiento menor que para los

otros tipos de modelado. Su principal inconveniente es que se genera distorsión de

cuantificación, que, en general, será mayor cuanto menor sea el número de centroides

del codebook.

2. Modelos de Markov semicontinuos.

Son un caso intermedio entre los modelos discretos y los modelos continuos.

Puede verse como un modelado discreto precedido de una cuantificación suave (“soft

quantization”) o como un modelado continuo en que se comparten las gaussianas de los

diferentes modelos (“parameter tying”).

En la cuantificación vectorial, cada vector de parámetros se representa por un

índice. En cambio, la cuantificación suave devuelve, para cada vector de parámetros de

entrada, un vector de probabilidades de pertenencia de ese vector a cada uno de los

clusters definidos por los equivalentes a los vectores de cuantificación de un

cuantificador vectorial. Estos vectores se denominan, en el caso de la cuantificación

suave, vectores de medias.

A.2.3. Topología del sistema de reconocimiento del GTH.

En nuestro sistema, se emplean modelos de Markov con transiciones permitidas

simples y dobles (sólo son posibles las transiciones al estado actual, al estado siguiente

Page 134: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

o al posterior a éste), de izquierda a derecha (no se permiten transiciones a un estado

anterior) e independientes del contexto.

Para el caso de la base de datos de NATVOX, se emplean modelos de alófono,

ya que nuestro objetivo es segmentar las frases a reconocer en fonemas. A partir de

dichos alófonos, se generan modelos de palabra concatenando los prototipos de los

alófonos correspondientes a la palabra de que se trate, según un diccionario de

transcripción y añadiendo modelos de silencio inicial y final. Estos modelos de alófono

tienen tres estados cada uno, tal y como se representa en la figura siguiente:

a00 a11 a22

a01 a12 asalir

a02

Todos los alófonos se representan a través de modelos de esta topología, excepto

el de silencio final, en el que no hay transición para salir del modelo puesto que la

palabra termina en él (a22 = 1 y asalir = 0).

A.2.4. El algoritmo de Viterbi.

Una vez definido el modelo con el que vamos a trabajar, hemos de dar solución

a tres aspectos fundamentales para el desarrollo de los sistemas de entrenamiento y

reconocimiento:

1. Dada una secuencia de observaciones O y un modelo M, tenemos que tener

algún método para calcular la probabilidad de que la secuencia de observaciones

haya sido generada por ese modelo, P(O/M).

0 1 2

Page 135: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

2. A partir de una secuencia de observaciones O, tenemos que ser capaces de

elegir una secuencia de estados que sea óptima en algún sentido.

3. Reestimar los parámetros del modelo para maximizar P(O/M).

Los dos primeros problemas los resuelve el algoritmo de Viterbi, mientras que el

tercero es el más complicado de solucionar, puesto que se trata de encontrar la manera

de optimizar los valores de las matrices A y B para conseguir que la probabilidad

P(O/M) sea máxima.

El algoritmo de Viterbi, en su forma más general consta de los siguientes pasos:

1. Inicialización.

i=0

0 < i < N

2. Recursión.

0 < t < T

0 <= j <N

3. Terminación.

En las ecuaciones anteriores, t representa la trama que se procesa en cada

instante y Ct(i) la probabilidad acumulada correspondiente al estado i para la trama t.

En la práctica, en lugar de utilizar directamente las probabilidades, se emplean

sus logaritmos. De esta forma, a partir de la probabilidad p podemos definir su log-

likelihood como:

Page 136: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

Las principales ventajas que se derivan del empleo del log-likelihood de las

probabilidades son las siguientes:

- Disminuye el tiempo de procesamiento, ya que los productos de

probabilidades se convierten en sumas de log-likelihood de dichas

probabilidades. Dado que el tiempo que se invierte en procesar una suma es

inferior al que se invierte en procesar un producto, los cálculos se realizan

con mayor rapidez.

- Requiere menos memoria, puesto que las probabilidades son valores reales y

se representan mediante cuatro bytes, mientras que sus log-likelihood son

valores enteros y sólo requieren dos bytes.

- Las probabilidades acumuladas se pueden implementar con cuatro bytes

utilizando aritmética entera sin que se produzca desbordamiento.

El algoritmo de Viterbi, además de calcular la probabilidad de la secuencia de

estados más probable, permite recuperar dicha secuencia de estados, dada una secuencia

de observaciones. Ello se deba a la forma en que se calculan las probabilidades

acumuladas:

- En cada una de las observaciones, para obtener la probabilidad acumulada,

se decide cuál es el estado que precede al actual.

- Tras finalizar el cálculo de las probabilidades acumuladas para todas las

observaciones utilizando los modelos de las distintas palabras que se quieren

reconocer, aquella palabra con mayor probabilidad acumulada en su última

trama será la más probable. Una vez que se ha identificado la palabra más

probable, es posible recuperar la secuencia de estados observada a través del

proceso de “backtracking”. Este proceso, partiendo del último estado, va

recuperando el estado precedente sirviéndose de las decisiones que se han

tomado en el cálculo de la probabilidad acumulada.

Page 137: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

A.2.5. Modelos de Markov discretos.

El entrenamiento discreto.

El objetivo del entrenamiento consiste en obtener las variables estadísticas que

caracterizan los modelos de Markov que, posteriormente, se emplearán en el módulo de

reconocimiento. Estas variables son, como ya hemos comentado, la matriz A (matriz de

probabilidades de emisión) y la matriz B (matriz de probabilidades de transición).

Para entrenar los modelos se utiliza el algoritmo de Viterbi. El proceso consta de

un cierto número de iteraciones a lo largo de las cuales se van obteniendo modelos cada

vez más robustos. En la primera iteración se parte de unos modelos iniciales, que se

denominan semillas, obtenidos por medio de segmentación equidistante. Esto es, se

asignan idéntico número de tramas a cada uno de los estados del modelo para

determinar los valores de la matriz B y se asignan valores equiprobables a todas las

transiciones en la matriz A.

Para la finalización del entrenamiento debe producirse una de las dos situaciones

siguientes:

Que se alcance el número máximo de iteraciones.

Que la probabilidad acumulada obtenida con todos los datos de

entrenamiento no mejore significativamente con respecto a la iteración

anterior.

Los modelos de Markov precisan una gran cantidad de datos de entrenamiento

para estimar de manera fiable sus parámetros. Esto hace que, en muchas ocasiones, los

datos de los que se dispone sean insuficientes por lo que pueden existir elementos de las

matrices A y B que tengan ceros o estén deficientemente estimados. Esto ocurrirá, sobre

todo, con los símbolos que menos aparecen en el conjunto de entrenamiento.

Page 138: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

En este sentido, existen técnicas que solucionan, en cierta medida, este problema

entre las cuales se encuentra el suavizado (smoothing) de las matrices. Esta técnica se

basa en el dato experimental sobre los HMM que indica que es importante limitar el

valor de los estimadores calculados para evitar que sean demasiado pequeños. Más

información al respecto puede encontrarse en.

El reconocimiento discreto.

En nuestros experimentos, hemos utilizado un reconocedor sin módulo de

hipótesis, es decir, se aplica directamente el algoritmo de Viterbi a todas las palabras del

diccionario para determinar aquélla con la que obtenemos una mayor probabilidad

acumulada en la última trama con la secuencia de observaciones correspondiente a la

palabra que queremos reconocer.

A.2.6. Modelos de Markov semicontinuos.

En este apartado, únicamente destacaremos las peculiaridades que se derivan del

hecho de utilizar modelos semicontinuos.

Como ya sabemos, en el caso discreto se asociaba a cada uno de los centroides

del codebook una probabilidad para cada estado. Esta información se almacenaba en la

matriz B. Sin embargo, cuando se utilizan modelos semicontinuos, tenemos una función

densidad de probabilidad continua asociada a cada uno de los centroides. Se emplean

funciones gaussianas debido a una propiedad que poseen según la cual la suma de

infinitas variables estocásticas tiende a una función gaussiana. En la voz influyen un

gran número de factores y, por ello, se dice que tiene un comportamiento gaussiano.

Además, este tipo de funciones tiene la ventaja de que quedan totalmente definidas a

través de dos parámetros: la media y la varianza.

Para cada vector de observación, vt=(vt1, … , vtn) existe un vector de

probabilidades de pertenencia, Per(vt)={Per1(vt), Per2(vt), …, PerC(vt)}, , donde n es el

número de parámetros y C el número de clusters. Cada componente de este último

vector representa la probabilidad de pertenencia gaussiana del vector vt a cada uno de

Page 139: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

los C clusters. Esta probabilidad se obtiene a partir de la ecuación que aparece en la

página siguiente:

La matriz B continúa existiendo en modelado semicontinuo, pero con un

significado diferente. Sus elementos representan la probabilidad de utilizar las

gaussianas asociadas a cada cluster en los diferentes estados. La matriz B pasa a

denominarse ahora matriz de pesos de las gaussianas y a sus elementos los

representaremos como bs(j), donde s es el estado y j el cluster.

Por tanto, la probabilidad de emisión de un vector de entrada en un

determinado estado será igual a la siguiente expresión:

En la implementación práctica de esta fórmula existen dos detalles que permiten

reducir la carga computacional de manera considerable. Por una parte, la utilización de

log-likelihoods en lugar de probabilidades nos proporciona las mismas ventajas que

señalábamos en modelado discreto. Por otra parte, sólo nos quedamos con los cuatro

mejores valores de las probabilidades de pertenencia a la hora de realizar el sumatorio

anterior en lugar de extender dicho sumatorio a todas las gaussianas del codebook.

El entrenamiento de la matriz de pesos y de las gaussianas mismas es análogo al

de las matrices A y B en modelado discreto. Como entonces, habrá que partir de unos

modelos iniciales o semillas. Las semillas de las que se parte son:

- La matriz B discreta para los pesos de las gaussianas.

- Los vectores del codebook para las medias.

Page 140: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Apéndice A El sistema de reconocimiento

- Las varianzas de los conjuntos de vectores de entrenamiento

asociados a cada uno de los clusters para las varianzas de las

gaussianas.

Page 141: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Bibliografía

BIBLIOGRAFÍA.

[Black, 91] Alan W. Black, Nick Campbell

"Optimising selection of units from speech databases for

concatetative synthesis"

Eurospeech '91 vol 1, pp 581-584. 1991.

[Black, 97] Alan W. Black, Paul Taylor

"Automatically clustering similar units for unit selection in

speech synthesis"

Proceedings of Eurospeech '97. 1997.

[Furui, 89] Sadaoki Furui

"Digital speech processing, synthesis and recognition"

Ed. Marcel Dekker. 1989.

[Galanes, 95] Francisco M. Giménez de los Galanes Cejudo

“Síntesis de voz de alta calidad en castellano”.

Tesis doctoral ETSIT. Madrid. UPM. 1995.

[García, 00] Luis García Pérez

"Estudio y evaluación de algoritmos de robustez frente al ruido en

un sistema de reconocimiento de voz sobre línea telefónica"

Proyecto Fin de Carrera. Madrid. UPM. 2000.

[Hunt, 96] Andrew J. Hunt, Alan W. Black

"Unit selection in a concatenative speech synthesis using a large

speech database"

ICASSP '96, vol 1, pp 373-376. Atlanta, Georgia. 1996

[Jiménez, 99] Azucena Jiménez Pozo

“Adaptación y mejora de un sistema de preprocesamiento y

categorización gramatical”

Proyecto Fin de Carrera. Madrid. UPM. 1999.

[King, 97] Simon King, Thomas Portele, Florian

Höfer.

"Speech synthesis using non-uniform units in then Verbmobil

project"

Proceedings of Eurospeech '97. 1997

Page 142: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Bibliografía

[Martínez, 98] Gerardo Martínez Salas

"Adaptación de un modelo de duraciones y entonación para

sintetizar habla con emociones"

Proyecto Fin de Carrera. Madrid. UPM. 1998.

[Montero, 99] Juan Manuel Montero Martínez

"Proyecto Sintetizador: base de datos para prosodia"

Informe Interno del GTH. Madrid. UPM. 1999.

[Montero, 00] Juan Manuel Montero Martínez

“Concatenación por selección de unidades sin modificación de la

f0”

Informe Interno del GTH. Madrid. UPM. 2000.

[Polanco, 00] Daniel Francisco Polanco Fernández

“Evaluación y mejora de un sistema automático de análisis

sintagmático”

Proyecto Fin de Carrera. Madrid. UPM. 2000.

[Saíz, 00] David Saíz Santos

"Modelo de entonación de Fujisaki para un sintetizador en

castellano"

Proyecto Fin de Carrera. Madrid. UPM. 2000.

[Sánchez, 99] Julio Sánchez Rodríguez, Juana María Gutiérrez Arriola, Juan

Manuel Montero Martínez

“Manual del PCV”

Publicación interna del GTH. Madrid. UPM. 1999.

Page 143: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Indice

INDICE

Capítulo 1: Introducción...................................................................................11.1. Introducción............................................................................................................1

1.2.Descripción general de los Conversores Texto-Voz...............................................4

Capítulo 2: Sistemas de síntesis de voz........................................................72.1. Introducción............................................................................................................7

2.1.1. Comparación De Los Sistemas De Síntesis Más Utilizados.........................10

2.2. La síntesis TD-PSOLA.........................................................................................11

Capítulo 3: La base de datos..........................................................................173.1. Introducción..........................................................................................................17

3.2. Adquisición y marcado de la base de datos..........................................................19

3.3. Extracción de los difonemas.................................................................................31

3.4. Generación de la base de datos.............................................................................39

Capítulo 4: La selección de unidades...........................................................454.1. El proceso de la síntesis por selección de unidades.............................................48

4.2. El modelo de selección de unidades.....................................................................51

4.3. El programa BUNIDAD2.EXE............................................................................55

4.3.1. Distancia entre la duración de las unidades.................................................57

4.3.2. Distancia entre el tono de las unidades........................................................60

4.3.3. Distancia entre los contextos fonéticos.........................................................62

4.3.4. Distancia de concatenación de unidades......................................................65

4.3.5. El algoritmo de búsqueda..............................................................................70

Capítulo 5: La reducción de la base de datos..............................................745.1. Introducción..........................................................................................................74

5.2. La reducción del tamaño de la base de datos.......................................................76

5.2.1. La reducción “geométrica” de la base de datos...........................................78

5.2.2. La reducción “por tramos”...........................................................................79

5.3. La cuantificación de distancias.............................................................................83

5.3.1. El algoritmo LBG.........................................................................................84

Page 144: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Indice

5.3.2. El algoritmo de Lloyd...................................................................................86

Capítulo 6: El programa de alineamiento de marcas...................................886.1. Introducción..........................................................................................................88

6.2. Modo de funcionamiento del programa...............................................................91

6.3. Algoritmo empleado para el alineamiento...........................................................94

6.4. Clases definidas en el programa...........................................................................99

Capítulo 7: La segmentación automática de unidades..............................1047.1. Introducción........................................................................................................104

7.2. Descripción de los experimentos........................................................................105

7.3. Resultados del experimento................................................................................109

Capítulo 8: Conclusiones y líneas futuras..................................................1118.1. Conclusiones y líneas futuras de trabajo............................................................111

Apéndice A. El sistema de reconocimiento................................................115A.1. El sistema de reconocimiento............................................................................115

A.1.1. Descripción general del sistema de reconocimiento..................................115

A.1.2. La parametrización.....................................................................................118

A.1.3. El cálculo de los pesos................................................................................122

A.1.4. El cálculo del codebook..............................................................................123

A.1.5. La cuantificación vectorial.........................................................................124

A.2. Teoría de Modelos Ocultos de Markov (HMM)...............................................124

A.2.1. Descripción general....................................................................................125

A.2.2. Tipos de modelado......................................................................................126

A.2.3. Topología del sistema de reconocimiento del GTH....................................127

A.2.4. El algoritmo de Viterbi...............................................................................128

A.2.5. Modelos de Markov discretos.....................................................................131

A.2.6. Modelos de Markov semicontinuos.............................................................132

BIBLIOGRAFÍA..............................................................................................135

Page 145: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Pliego de Condiciones

PLIEGO DE CONDICIONES

CONDICIONES GENERALES

La obra será realizada bajo la dirección técnica de un Ingeniero de

Telecomunicación y el número de programadores necesarios.

La ejecución material de la obra se llevará a cabo por el procedimiento de

contratación directa. El contratista tiene derecho a obtener, a su costa, copias del pliego

de condiciones y del presupuesto. El ingeniero, si el contratista lo solicita, autorizará

estas copias con su firma, después de confrontarlas.

Se abonará al contratista la obra que realmente se ejecute, de acuerdo con el

proyecto que sirve de base para la contrata.

Todas las modificaciones ordenadas por el ingeniero-director de las obras, con

arreglo a sus facultades, o autorizadas por la superioridad, serán realizadas siempre que

se ajusten a los conceptos de los pliegos de condiciones y su importe no exceda la cifra

total de los presupuestos aprobados.

El contratista, o el organismo correspondiente, quedan obligados a abonar al

ingeniero autor del proyecto y director de obra, así como a sus ayudantes, el importe de

sus respectivos honorarios facultativos por dirección técnica y administración, con

arreglo a las tarifas y honorarios vigentes.

Tanto en las certificaciones de obra como en la liquidación final se abonarán las

obras realizadas por el contratista a los precios de ejecución material que figuran en el

presupuesto, por cada unidad de obra.

Page 146: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Pliego de Condiciones

En el caso excepcional en el que se ejecute algún trabajo no consignado en la

contrata, siendo admisible a juicio del ingeniero-director de las obras, se pondrá en

conocimiento del organismo correspondiente, proponiendo a la vez la variación de

precios estimada por el ingeniero. Cuando se juzgue necesario ejecutar obras que no

figuren en el presupuesto de la contrata, se evaluará su importe a los precios asignados a

ésta u otras obras análogas.

Si el contratista introduce en el proyecto, con autorización del ingeniero-director

de la obra, alguna mejora en su elaboración, no tendrá derecho sino a lo que le

correspondería si hubiese efectuado la obra estrictamente contratada.

El ingeniero redactor del proyecto se reserva el derecho de percibir todo ingreso

que en concepto de derechos de autor pudiera derivarse de una posterior

comercialización, reservándose además el derecho de introducir cuantas modificaciones

crea conveniente.

CONDICIONES GENERALES A TODOS LOS

PROGRAMA S

Estarán realizados en lenguajes estándar.

Se entregarán tres copias de los listados para cada programa o subrutina.

Los programas y subrutinas deberán ir documentados, indicando brevemente su

función, entradas y salidas, y cualquier otra información de interés.

Se entregará junto con los programas, un manual de uso e instalación.

Page 147: lorien.die.upm.eslorien.die.upm.es/juancho/pfcs/MGCM/proyecto.doc · Web viewCapítulo 1: Introducción. 1.1. Introducción. El progresivo desarrollo tecnológico, unido al abaratamiento

Pliego de Condiciones

CONDICIONES GENERALES DE PRUEBA

Los programas y subrutinas que se entreguen deberán funcionar sobre un

ordenador PC o compatible con microprocesador Pentium o superior y con, al menos,

128 MBytes de RAM. Se ejecutarán bajo sistema operativo Windows 95 o superior, en

entorno local.

Solamente se aceptarán los programas si funcionan correctamente en todas sus

partes, rechazándose en caso contrario. Si por causas debidas al contratista, los

programas no funcionaran bajo las condiciones expuestas anteriormente, la empresa

contratante se reservará el derecho de rescindir el contrato.

RECURSOS MATERIALES.

Ordenador PC compatible, Pentium II 300 MHz, con 128 MBytes de

memoria RAM Y dotado de tarjeta de sonido SoundBlaster.

RECURSOS LÓGICOS

Sistema operativo Windows 95 o superior.

Entorno de desarrollo Borland C++ v. 5.02.

Procesador de textos Microsoft Word 97 para la escritura del proyecto.