Capítulo 5: La reducción de la base de datos

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

2 downloads 93 Views 54KB Size

Recommend Stories


PRESENTACIÓN DE LA BASE DE DATOS
PRESENTACIÓN DE LA BASE DE DATOS ® “ C HA G M E X 1 9 2 8 - 2 0 0 4 ” , SOBRE LA ENFERMEDAD DE CHAGAS EN MÉXICO, CON UN ENFOQUE BIOLÓGICO, GEOGRÁFICO

INFORME DE LA BASE DE DATOS: VIVEROS_2013
INFORME DE LA BASE DE DATOS: VIVEROS_2013 1 INFORME DE LA BASE DE DATOS: VIVEROS_2013 Origen de los datos: Dr. Hans van der Wal 1. La base de dato

Base de datos en la enseñanza OpenOffice
Base de datos en la enseñanza “OpenOffice” Base de datos en la enseñanza “OpenOffice” 6. Iniciación al lenguaje estructurado de consulta (SQL) 1 B

Presenta PGJDF la base de datos RAPI
Presenta PGJDF la base de datos RAPI El Sol de México - Metrópoli - 22 de junio de 2012 - Fernando Ríos La Procuraduría General de Justicia del Distr

Base de datos en la enseñanza OpenOffice
Base de datos en la enseñanza. “OpenOffice” Base de datos en la enseñanza “OpenOffice” 2. Diseño de tablas. Base de datos en la enseñanza. “OpenOff

Base de datos en la enseñanza OpenOffice
Base de datos en la enseñanza. “OpenOffice” Base de datos en la enseñanza “OpenOffice 5. Informes 1 Base de datos en la enseñanza. “OpenOffice” ÍN

Story Transcript

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, hay que reseñar que hoy en día no se trata de un problema excesivamente crítico gracias

78

Capítulo 5

La reducción de la base de datos

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.

79

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. 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.

80

Capítulo 5

La reducción de la base de datos

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.

81

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 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)

82

Capítulo 5

La reducción de la base de datos

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

-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

83

Capítulo 5

La reducción de la base de datos

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.

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

84

Capítulo 5

La reducción de la base de datos

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 [TRAMO_1] fInicial_min=130 fInicial_max=170 f0_min=130 f0_max=170 pendiente=4

85

Capítulo 5

La reducción de la base de datos

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] fInicial_min=50 fInicial_max=250 f0_min=50 f0_max=250 pendiente=4 tramo_equivalente=2

86

Capítulo 5

La reducción de la base de datos

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.

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

87

Capítulo 5

La reducción de la base de datos

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. 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]:

88

Capítulo 5

La reducción de la base de datos

· 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:

y (i ) =

1 M

M

∑ x (i) j =1

j

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) + ∆ - y2(i) = y(i) - ∆ con i=1..n y siendo ∆ un valor dependiente de la varianza del conjunto.

89

Capítulo 5

La reducción de la base de datos

· 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 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)) ∀ j≠i

90

Capítulo 5

La reducción de la base de datos

· 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.

91

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.