Base de datos para sntesis de dominio restringido - PowerPoint PPT Presentation

1 / 36
About This Presentation
Title:

Base de datos para sntesis de dominio restringido

Description:

Base de datos para s ntesis de dominio restringido ... Tipo de acento de la palabra (aguda, llana, esdr jula o palabra funci n) ... – PowerPoint PPT presentation

Number of Views:165
Avg rating:3.0/5.0
Slides: 37
Provided by: Juan51
Category:

less

Transcript and Presenter's Notes

Title: Base de datos para sntesis de dominio restringido


1
Base de datos para síntesis de dominio restringido
  • Proyecto Natural Vox Mejora de calidad de
    síntesis de voz femenina

2
Índice
  • Introducción
  • Diseño de la base de datos
  • Algoritmos voraces (greedy)
  • Marcado
  • Modelado prosódico
  • Conclusiones

3
Introducción
  • Natural Vox
  • Empresa de aplicaciones telefónicas de calidad
  • Necesita una voz femenina
  • BORIS según ellos, la mejor síntesis en
    castellano del mercado
  • Aplicaciones
  • Tráfico (inicialmente) y Bancos (finalmente)
  • Nos interesaba, aún a bajo precio
  • desarrollo de una nueva voz (sin FGG, JAV...) y
    femenina
  • aplicaciones telefónicas
  • conversión de voces
  • síntesis por selección de unidades
  • Son temas de moda

4
Introducción
  • Empleamos concatenación y TD-PSOLA (nuestra mejor
    calidad hoy en día)
  • Exploraremos varias posibilidades en cuanto a
    prosodia
  • Duraciones
  • ANN continuación de un PFC de RCH
  • Modelo multiplicativo experimento con los
    mejores parámetros
  • F0
  • ANN continuación de la tesis de JVP
  • Modelo de picos y valles versión implementada en
    el sistema
  • Fujisaki Ha habido bastante trabajo y no ha dado
    tiempo para explorar esta posibilidad.

5
Diseño de la base de datos
  • Cuestiones abiertas
  • Qué tipo de textos?
  • Cuántas frases o palabras?
  • Cuáles?
  • Cuánto tiempo se necesita para marcarlo?
  • Factores limitantes
  • El bajo presupuesto
  • Nuestra poca experiencia directa
  • Las aplicaciones de Natural Vox
  • Empleo de becarios para marcar

6
Diseño de la base de datos Qué tipo de textos?
  • Frases y vocabulario típicos de una aplicación
    telefónica como las deseadas.
  • Inicialmente nos proponen 22 frases portadoras
    con 30 campos variables
  • Poblaciones, puertos, nombres y apellidos.
  • Movimientos bancarios, expresiones bancarias
    (tipos de cuentas, fondos de inversión, divisas,
    estado de un cheque, etc.), entidades
    financieras.
  • Horas.
  • Números de teléfono.
  • Combinaciones de letras y números.

7
Diseño de la base de datos Primer filtrado
  • Por estar ya cubiertas usando concatenación de
    mensajes pregrabados, eliminamos de su propuesta
  • Horas
  • Teléfonos
  • Combinaciones de letras y números
  • Nos quedamos con 19 frases y 3 tipos de campos
  • Nombres propios en enunciativas frases 1-7, 17 y
    19
  • Sintaxis sencilla en enunciativas frases 8-12 y
    14.
  • Sintaxis sencilla en interrogativas frases 13,
    15, 16 y 18
  • Establecemos que las grabaciones de los campos
    variables se harán entre-pausas y con prosodia no
    enfática
  • información clave y facilidad de modelado

8
Diseño de la base de datos Selección de los
textos
  • Partimos de los resultados de Onomástica
  • 30232 pueblos o ciudades
  • 8736 nombres de pila simples
  • 49431 apellidos simples
  • Usamos datos de la empresa
  • 255 entidades financieras
  • 246 puertos de montaña
  • datos varios 23 operaciones, 150 movimientos,
    etc.
  • Por consideraciones de tiempo y de dinero,
    decidimos grabar unas 600 frases de cada tipo
    (nosotros marcamos 2 tipologías y ellos marcan la
    tercera)

9
Diseño de la base de datos Nombres Propios
  • Frases 2 y 3 3 Campos Variables 100 frases
  • 150 puertos resumidos.
  • Frases 6, 7 y 17 3 CV 360 apellidos, 360
    frases
  • 150 apellidos simples resumidos,
  • 130 apellidos simples muy frecuentes (desde
    García hasta Montes)
  • 80 apellidos compuestos (80 apellidos simples muy
    frecuentes80 apellidos simples resumidos,
    algunos incluyen la preposición de)
  • Frases 1, 4, 5 y 19 5 CV 50 pueblos por campo,
    200 frases
  • 250 pueblos resumidos

10
Diseño de la base de datos Enunciativas
  • Frases 8 y 9 4 CV 74 frases (3638)
  • 150 movimientos bancarios (363x38)
  • Frase 10 1 CV, 23 frases.
  • 23 operaciones bancarias
  • Frase 11 1 CV 7 frases
  • 7 estados de cheques,
  • Frase 12 2 CV 172 frases (4343432815)
  • 43 tipos de cuentas y tarjetas,
  • 172 nombres de bancos (157 nombres castellanos
    resumidos 15 no castellanos elegidos manualmente
    por Emilia),
  • Frase 14 1 CV 31 fondos de inversión, 31 frases.

11
Diseño de la base de datos Interrogativas
  • Frase 13 1 CV 200 frases
  • 43 tipos de cuentas y tarjetas
  • 34 movimientos seleccionados
  • 123 apellidos resumidos
  • Frase 15 1 CV 200 frases
  • 31 fondos de inversión
  • 46 movimientos seleccionados
  • 123 apellidos resumidos
  • Frase 16 y 18 2 CV 200 frases
  • 10 divisas
  • 20 tipos de información
  • 48 movimientos seleccionados
  • 122 apellidos resumidos

12
Diseño de la base de datos Objetivo
  • Empleando pocas grabaciones, conseguir recoger
    gran parte de la riqueza de los casos posibles
    (balanced), según criterios
  • Prosódicos cubrir la mayoría de los fenómenos
    prosódicos que se podían dar, empleando un número
    reducido de ejemplos
  • Duraciones variedad fonética, silábica, de
    longitudes de palabra, etc.
  • Entonación variedad de tipos de acentuación y de
    distancia entre acentos.
  • Segmentales, tener variedad, ya que podía llegar
    a ser usada como fuente de unidades
  • nuevos difonemas, debido a que los iniciales no
    fuesen adecuados (así fue eran demasiado
    breves),
  • síntesis por selección de unidades por problemas
    de calidad segmental insuficiente, podríamos
    tener que recurrir a ella (como está siendo el
    caso la calidad no les es suficiente en algunos
    casos)

13
Diseño de la base de datos Criterios de
selección (I)
  • Posibilidades con interés
  • Fonema y su contexto (clase de los fonemas
    anterior y siguiente)
  • Debemos cubrir todos los posibles valores
    intentando reproducir la distribución de
    probabilidad de nuestra base de datos
  • Está en sílaba acentuada?
  • Pertenece a un diptongo?
  • Está en sílaba abierta?
  • Posición del fonema dentro de la sílaba
  • Debemos reproducir la distribución de
    probabilidad de nuestra base de datos

14
Diseño de la base de datos Criterios de
selección (II)
  • Número de fonemas de la sílaba
  • Posición del fonema dentro de la palabra
  • Número de fonemas de la palabra
  • Posición del fonema dentro del grupo fónico
  • Número de fonemas del grupo fónico
  • Está en posición inicial de grupo fónico?
  • Está en posición final de grupo fónico?
  • Tipo de acento de la palabra (aguda, llana,
    esdrújula o palabra función)
  • Distancia silábica entre acentos
  • Debemos cubrir todos los posibles valores
    intentando reproducir la distribución de
    probabilidad de nuestra base de datos

15
Diseño de la base de datos Criterios de
selección (III)
  • Tipo de grupo fónico
  • Enunciativo entre pausas con entonación
    ascendente
  • Enunciativo entre pausas con entonación
    descendente
  • Interrogativo
  • Es imposible cumplir tantas condiciones con un
    número reducido de grabaciones

16
Diseño de la base de datos Criterios de
selección (y IV)
  • 6 Criterios finales
  • Criterio fonético intentaremos conseguir un
    histograma fonético (probabilidad de aparición de
    cada fonema) que no se aleje más de un 5 (como
    máximo) de la distribución original de la base de
    datos de nombres propios de que disponemos.
  • Criterio silábico buscamos 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 (5 de desviación máxima)
  • Criterio acentual distribución adecuada de
    palabras acentuadas / palabras función, agudas /
    llanas / esdrújulas...
  • Criterio de palabras dado que los nombres pueden
    ser compuestos buscaremos reproducir la base de
    datos original en número de palabras por campo
    variable y número de sílabas por palabra.

17
Algoritmos voraces (I)
  • El problema de búsqueda presenta una complejidad
    exponencial
  • Pueblos la mejor de las combinaciones de 30232
    elementos tomados de 250 en 250.
  • Apellidos la mejor de las combinaciones de 49431
    tomados de 150 en 150.
  • La solución óptima (full search) es
    computacionalmente implanteable.
  • Aproximación un algoritmo voraz (van Santen 97)
  • En cada paso busca minimizar localmente una
    distancia (o maximizar un medida de bondad),
    confiando en que ello no le llevará muy lejos del
    máximo global (hipótesis optimista)

18
Algoritmos voraces (II)
  • Partimos de que sabemos cuántos ejemplos tenemos
    y cuántos queremos seleccionar (resumen)
  • qué distancia usar para seleccionarlos?
  • Energía
  • Correlación
  • Correlación normalizada
  • Distancia con penalización
  • Distancia a un objetivo parcial
  • Inicialmente el problema me pareció no muy
    complicado (en qué estaría yo pensando?) y muy
    interesante (ahí no me equivoqué) la mochila
    multidimensional (knapsack)

19
Algoritmos voraces (III)
  • La mejor distancia encontrada energía del error
    respecto a un objetivo parcial proporcional, con
    penalización para casos extremos
  • En cada iteración
  • CalculaDistribSegunPaso(numPaso, criterioGlobal,
    distribOptima)
  • En cada recorrido
  • distribLocal distribActual
  • Resta_Distrib_Probab32(distribLocal,
    distribPalabra)
  • coordenadaMINIMO_RELATIVO(distribLocal,
    criterioGlobal)
  • Resta_Distrib_Probab32(distribLocal,
    distribOptima)
  • if (coordenada.valorlt0)
  • result VALOR_CASTIGOcoordenada.valor
  • else
  • result -ACUMULA_ABS_DISTRIB_PROBAB32(distribLo
    cal)

20
Algoritmos voraces (IV) Ejemplo con 100 pueblos
  • criterio-cumple-criterios
  • PALABRAS 0 53 18 19 9 1 0 0 0 0 0
  • NUMSILABAS 0 53 48 56 25 5 0 0 0 0 0
  • FONEMAS 0 57 20 7 39 1 123 100 38 48 12 10 13 2
    5 24 35 6 17 36 30 7 10 18 66 22 18 13 3 54 1 7
    26 24 34 5 13 0 61 19 3 0 0
  • ACENTOS 41 34 110 2 0 0
  • NUMFONEMAS 0 1 34 17 14 27 27 25 18 13 7 3 1 0 0
    0 0 0 0 0 0 0 0 0 0 0
  • SILAB 26 24 82 56 1 2 4 5 15 19 39 23 1 2 1 3 11
    0 30 0 0 0 1 0 11 16 32 30 0 2 2 5 0
  • seleccionada-cumple-criterios
  • PALABRAS 0 54 18 19 9 0 0 0 0 0 0
  • NUMSILABAS 0 51 48 55 24 5 0 0 0 0 0
  • FONEMAS 0 56 20 7 37 1 121 98 35 47 12 10 12 2 5
    24 34 5 17 35 30 7 10 17 66 22 15 13 3 52 1 7 26
    24 33 3 13 0 60 18 3 0 0
  • ACENTOS 39 34 109 1 0 0
  • NUMFONEMAS 0 1 34 16 13 26 27 25 18 13 7 2 1 0 0
    0 0 0 0 0 0 0 0 0 0 0
  • SILAB 24 23 78 53 1 2 3 5 15 19 37 22 0 2 1 3 11
    0 31 0 1 0 1 0 11 16 33 31 1 2 2 5 0

21
Algoritmos voraces (V)Ejemplo con 100 pueblos
  • Error absoluto medio 0.028155
  • PALABRAS 2.000000 / 100.000000 0.020000
  • NUMSILABAS 4.000000 / 187.000000 0.021390
  • FONEMAS 26.000000 / 1027.000000 0.025316
  • ACENTOS 4.000000 / 187.000000 0.021390
  • NUMFONEMAS 4.000000 / 187.000000 0.021390
  • SILABAS 20.000000 / 443.000000 0.045147
  • PAL difMedia0.000000 difMax 1.000000 pearson
    0.999855
  • NUMSIL difMedia0.006121 difMax0.040000
    pearson 0.999724
  • FONEMdifMedia 0.002683 difMax 0.052632
    pearson 0.999587
  • ACENTdifMedia 0.008234 difMax 0.500000
    pearson 0.999839
  • NUMFONdifMedia0.002464 difMax 0.333333
    pearson 0.999464
  • SILABdifMedia 0.002427 difMax 1.000000
    pearson 0.998990

22
Algoritmos voraces (VI)Ejemplo con 150 pueblos
  • Error absoluto medio 0.01657
  • PALABRAS 4.000000 / 150.000000 0.026667
  • NUMSILABAS 2.000000 / 281.000000 0.007117
  • FONEMAS 16.000000 / 1540.000000 0.010390
  • ACENTOS 4.000000 / 281.000000 0.014235
  • NUMFONEMAS 8.000000 / 281.000000 0.028470
  • SILABAS 19.000000 / 665.000000 0.028571
  • PAL difMedia 0.000000 difMax 0.025000 pearson
    0.999582
  • NUMSILdifMedia-0.002006 difMax0.000000
    pearson0.999953
  • FON difMedia 0.000272 difMax 0.025000 pearson
    0.999861
  • ACENT difMedia-0.002725 difMax0.006061
    pearson0.999869
  • NUMFON difMedia-0.000808 difMax0.500000
    pearson0.999584
  • SIL difMedia -0.000319 difMax 1.000000
    pearson0.999402

23
Algoritmos voraces (VII)Ejemplo con 250 pueblos
  • Error absoluto medio 0.009005
  • PALABRAS 2.000000 / 100.000000 0.020000
  • NUMSILABAS 4.000000 / 187.000000 0.021390
  • FONEMAS 26.000000 / 1027.000000 0.025316
  • ACENTOS 4.000000 / 187.000000 0.021390
  • NUMFONEMAS 4.000000 / 187.000000 0.021390
  • SILABAS 20.000000 / 443.000000 0.045147
  • PAL difMedia 0.000000 difMax 0.666667 pearson
    0.999195
  • NUMSIL difMedia0.000000 difMax0.015873
    pearson0.999962
  • FON difMedia 0.000532 difMax 0.006623 pearson
    0.999975
  • ACENTdifMedia 0.000000 difMax 0.250000
    pearson0.999952
  • NUMFON difMedia0.000000 difMax0.000000
    pearson1.000000
  • SILAB difMedia0.000384 difMax 0.073171
    pearson0.999784

24
Algoritmos voraces (VIII)Ejemplos con apellidos
  • Error absoluto medio con 150 ejemplos 0.005934
  • PALABRAS 0.000000 / 150.000000 0.000000
  • NUMSILABAS 2.000000 / 151.000000 0.013245
  • FONEMAS 3.000000 / 996.000000 0.003012
  • ACENTOS 0.000000 / 151.000000 0.000000
  • NUMFONEMAS 4.000000 / 151.000000 0.026490
  • SILABAS 3.000000 / 423.000000 0.007092
  • Error absoluto medio con 60 ejemplos 0.021065
  • PALABRAS 0.000000 / 60.000000 0.000000
  • NUMSILABAS 0.000000 / 60.000000 0.000000
  • FONEMAS 11.000000 / 398.000000 0.027638
  • ACENTOS 0.000000 / 60.000000 0.000000
  • NUMFONEMAS 2.000000 / 60.000000 0.033333
  • SILABAS 4.000000 / 169.000000 0.023669

25
Algoritmos voraces (IX)Ejemplos con baja ratio
  • Cuando tenemos poco donde escoger y baja ratio de
    selección, el error es más alto
  • Bancos error absoluto medio con 150 ejemplos
    0.013738
  • PALABRAS 11.000000 / 153.000000
  • NUMSILABAS 4.000000 / 666.000000
  • FONEMAS 40.000000 / 3364.000000
  • ACENTOS 3.000000 / 668.000000
  • NUMFONEMAS 14.000000 / 668.000000
  • SILABAS 23000000 / 1399.000000
  • Puertos error absoluto medio con 150 ejemplos
    0.018307
  • PALABRAS 3.000000 / 151.000000
  • NUMSILABAS 5.000000 / 271.000000
  • FONEMAS 25.000000 / 1377.000000
  • ACENTOS 2.000000 / 272.000000
  • NUMFONEMAS 4.000000 / 274.000000
  • SILABAS 14.000000 / 550.000000

26
Algoritmos voraces (X)Errores graves
  • El error desciende con el número de ejemplos,
    pero no su gravedad
  • Apellidos y pueblos error absoluto medio con 100
    ejemplos 0.013738
  • Apellidos y pueblos error absoluto medio con
    300 ejemplos 0.008713
  • Apellidos y pueblos error absoluto medio con 600
    ejemplos 0.004558
  • Apellidos y pueblos error absoluto medio con
    1000 ejemplos 0.0031610
  • Apellidos y pueblos error absoluto medio con
    5000 ejemplos 0.0012886
  • Apellidos y pueblos errores con 100 ejemplos 18
    (2 del 100)
  • Apellidos y pueblos errores con 300 ejemplos 7
    (2 del 100)
  • Apellidos y pueblos errores con 600 ejemplos 6
    (1 del 100)
  • Apellidos y pueblos errores con 1000 ejemplos 5
    (1 del 100)
  • Apellidos y pueblos errores con 5000 ejemplos 5
    (3 del 100)

27
Algoritmos voraces (X)Búsqueda por pasos
  • Si en vez de buscar el objetivo directamente nos
    planteamos pasos intermedios, los resultados
    mejoran considerablemente, sobre todo si la ratio
    es baja
  • Pueblos
  • error con 100 ej. y 1 paso 60/21310.028155
  • error con 100 ej. y 100 pasos 27/21310.012760
  • error con 150 ej. y 1 paso 53/31980.016572
  • error con 150 ej. y 100 pasos 38/319800.011882
  • error con 250 ej. y 1 paso 48/53300.009005
  • error con 250 ej. y 100 pasos 44/53300.008255

28
MarcadoF0 y segmentación manuales
  • 2 becarios a media jornada, 2 meses
  • Formación inicial durante 2 semanas
  • Marcaron las frases 1, 2, 3, 4, 5, 6, 7, 8, 9
    incompleta, 10, 11, 12, 14, 17 y 19 658296
    ficheros
  • Tras las grabaciones de las frases 2, 3 y 4, se
    corrigieron defectos en las condiciones de
    grabación (sin re-grabar).
  • Durante las primeras semanas, se hacía una
    revisión del marcado de los ficheros para
    corregir defectos (JMM, JGA)
  • Natural Vox marcó las interrogativas 600
    ficheros (menos de 2 meses)

29
MarcadoSegmentación automática
  • Modelos HMM semicontinuos, independientes del
    contexto
  • Frecuencia de muestreo 8 KHz,
  • Desplazamiento de trama 10 ms,
  • Tamaño de trama 25 ms,
  • Pre-énfasis 1.00
  • Parametrización MFCC (101)
  • Parámetros 11 parámetros estáticos y 11
    dinámicos
  • Alfabeto de 28 alófonos y 1 silencio
  • Base de datos 16062 alófonos para entrenar y
    evaluar
  • Tasa de aciertos 89.12 (error por debajo de 20
    ms)
  • Error medio por marca 8.995290
  • Haremos pruebas de síntesis por selección

30
Modelado duraciones (I)
  • Usamos ANN, aunque hemos hecho un experimento con
    modelo multiplicativo
  • La toma inicial de contacto con el sistema de
    desarrollo fue larga y con modificaciones
    intermedias (el PFC no estaba acabado)
  • Finalmente, los parámetros para las red se
    generan con un conjunto de scripts y programas,
    compartidos con el PFC de síntesis por selección
    de unidades
  • extracción de duraciones
  • extracción de F0
  • extracción de difonemas
  • generación de la base de datos de unidades
  • Entrenamos en LINUX con MUME
  • Evaluamos en MATLAB (con el entorno de
    desarrollo)

31
Modelado duraciones (II)
  • 117 parámetros (como en PFC previo, salvo los
    tipos de grupos)
  • ventana de 5 fonemas 38 alófonos, 14 clases
  • fonema acentuado
  • ventana de 3 sílabas acentuadas
  • sílaba tónica
  • sílaba en diptongo
  • sílaba abierta
  • palabra acentuada
  • posición del fonema en la sílaba, en la palabra
    y en el grupo
  • número de fonemas en la sílaba, sílabas en la
    palabra, palabras en el grupo
  • 5 tipos de grupos ( , . - ?)

32
Modelado duraciones (y III)
  • Mejor experimento 560/32000 (17.5ms) 0.6363
  • Empleando los valores medios de los fonemas 25.1
    ms
  • Modelo multiplicativo 19.8 ms
  • El error en velocidad de elocución es importante
    (15.82) es necesario normalizar por la
    velocidad media de cada tipo de frase
  • El error es mayor en las frases 2, 7, 12, 13
  • Las interrogativas son más homogéneas
  • Modelando cada tipo por separado
  • propios 20.07 ms
  • sintagmas 16.68 ms
  • interrogativas falta realizar el experimento

33
Modelado F0 (I)
  • Usamos modelo de picos y valles, aunque hemos
    hecho experimentos con ANN
  • Se desarrolló un programa para generar la base de
    datos usando PERL (aunque finalmente se integró
    en el conjunto de scripts por homogeneidad y
    seguridad)
  • Entrenamos en LINUX con MUME
  • Evaluamos en MATLAB (con el entorno de
    desarrollo)
  • Usamos la parametrización propuesta por Vallejo
    en su tesis, pero reducida 43 parámetros
  • ventana de 11 sílabas (tónica, inicial, final)
  • Número de sílabas (5 niveles)
  • Grupos fónicos 5 tipos ( , . ? -)

34
Modelado F0 (II)
  • Valor medio 180 Hz (47 Hz - 283 Hz)
  • Desviación 32 Hz
  • Número de muestras 5582 sílabas
  • Variantes
  • Menos parámetros tarea más simple.
  • Normalización lineal (A.8/179, B13.5/179)
    16.47 Hz (0.6849)
  • Normalización con Z-score 16,12 Hz (0.6424)
  • Codificación logarítmicaZ-score 15.47 Hz
    (0.6982)
  • Limitando el rango a
  • gt130 Hz 15.91 Hz (0.6763)
  • gt150 Hz 14.55 Hz (0.6748)

35
Modelado F0 (III)
  • Distribución del error en general
  • 14.26 Hz en iniciales
  • 14.42 Hz en iniciales y finales
  • 16.21 Hz en finales
  • 19.74 Hz en intermedias (menos datos, más
    difíciles)
  • Distribución del error en las tónicas
  • 16.37 Hz en iniciales
  • 15.53 Hz en iniciales y finales
  • 16.04 Hz en finales
  • 16.55 Hz en intermedias

36
Modelado F0 (y IV)
  • Error por tipos de frases
  • Propios 16 Hz
  • Sintagmas 16.63 Hz
  • Interrogativas falta por realizar el experimento
Write a Comment
User Comments (0)
About PowerShow.com