desarrollo de un prototipo de convertidor de texto a voz

104
Desarrollo de un prototipo de convertidor de texto a voz por medio de síntesis concatenativa para realizar análisis comparativo entre los métodos MBR-PSOLA y FD-PSOLA Vanessa Mususué Castro, [email protected] Julián Andrés Rodríguez Vásquez, [email protected] Trabajo de Grado presentado para optar al título de Ingeniero de Sonido Asesor: Santiago Ruiz Sánchez Universidad de San Buenaventura Colombia Facultad de Ingenierías Ingeniería de Sonido Medellín, Colombia 2017

Upload: others

Post on 28-Jul-2022

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desarrollo de un prototipo de convertidor de texto a voz

Desarrollo de un prototipo de convertidor de texto a voz por medio de síntesis concatenativa para

realizar análisis comparativo entre los métodos MBR-PSOLA y FD-PSOLA

Vanessa Mususué Castro, [email protected]

Julián Andrés Rodríguez Vásquez, [email protected]

Trabajo de Grado presentado para optar al título de Ingeniero de Sonido

Asesor: Santiago Ruiz Sánchez

Universidad de San Buenaventura Colombia

Facultad de Ingenierías

Ingeniería de Sonido

Medellín, Colombia

2017

Page 2: Desarrollo de un prototipo de convertidor de texto a voz

Citar/How to cite [1]

Referencia/Reference

Estilo/Style:

IEEE (2014)

[1] E. González Mejía, M. C. Home Collazos, y H. A. Lozano Valderrama,

“Desarrollo de un prototipo de convertidor de texto a voz por medio de síntesis

concatenativa para realizar análisis comparativo entre los métodos MBR-PSOLA

y FD-PSOLA.”, Trabajo de grado Ingeniería de Sonido, Universidad de San

Buenaventura Medellín, Facultad de Ingenierías, Seleccione año.

Bibliotecas Universidad de San Buenaventura

Biblioteca Fray Alberto Montealegre OFM - Bogotá.

Biblioteca Fray Arturo Calle Restrepo OFM - Medellín, Bello, Armenia, Ibagué.

Departamento de Biblioteca - Cali.

Biblioteca Central Fray Antonio de Marchena – Cartagena.

Universidad de San Buenaventura Colombia

Universidad de San Buenaventura Colombia - http://www.usb.edu.co/

Bogotá - http://www.usbbog.edu.co

Medellín - http://www.usbmed.edu.co

Cali - http://www.usbcali.edu.co

Cartagena - http://www.usbctg.edu.co

Editorial Bonaventuriana - http://www.editorialbonaventuriana.usb.edu.co/

Revistas - http://revistas.usb.edu.co/

Biblioteca Digital (Repositorio)

http://bibliotecadigital.usb.edu.co

Page 3: Desarrollo de un prototipo de convertidor de texto a voz

TABLA DE CONTENIDO

RESUMEN ....................................................................................................................................... 9

ABSTRACT……………………………………………………………………………………...10

I. INTRODUCCIÓN ...................................................................................................................... 11

II. PLANTEAMIENTO DEL PROBLEMA .................................................................................. 13

A. Preguntas de investigación .................................................................................................... 13

B. Antecedentes .......................................................................................................................... 13

III. JUSTIFICACIÓN ..................................................................................................................... 16

IV. OBJETIVOS ............................................................................................................................ 17

A. Objetivo general .................................................................................................................... 17

B. Objetivos específicos ............................................................................................................. 17

V. PROBLEMA DE INVESTIGACIÓN ....................................................................................... 18

VI. MARCO TEÓRICO ................................................................................................................. 20

A. Convertidor de texto a voz .................................................................................................... 20

1) Análisis lingüístico ............................................................................................................. 21

a) Analizador morfosintáctico ............................................................................................ 21

b) Transcriptor fonético ...................................................................................................... 22

2) Generador prosódico ........................................................................................................... 22

3) Bloque de síntesis ............................................................................................................... 23

a) Síntesis por formantes .................................................................................................... 23

b) Síntesis articulatoria ....................................................................................................... 23

c) Síntesis derivada de las técnicas de predicción lineal (LPC) ......................................... 24

d) Síntesis basada en los modelos ocultos de Markov (HMM).......................................... 24

e) Síntesis por concatenación ............................................................................................. 24

4) Algoritmos de la familia PSOLA ....................................................................................... 27

Page 4: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 4

a) TD-PSOLA (Time Domain Pitch Synchronous Overlap-Add)27b) FD-PSOLA

(Frequency Domain Pitch Synchronous Overlap-Add) ..................................................... 28

c) MBR-PSOLA (Multi-Band Re-synthesis Pitch Synchronous Overlap-Add) ................ 30

B. Matlab .................................................................................................................................... 31

C. Evaluación de un convertidor de texto a voz ......................................................................... 32

VII. METODOLOGÍA ................................................................................................................... 33

A. Creación del corpus de voz ................................................................................................... 33

B. Desarrollo del módulo de procesamiento de lenguaje ........................................................... 34

1) Tokenizador ........................................................................................................................ 34

2) Normalizador ...................................................................................................................... 35

3) Divisor de sílabas ................................................................................................................ 35

4) Pausador .............................................................................................................................. 36

5) Convertidor de fonemas ...................................................................................................... 36

6) Agrupador de fonemas ........................................................................................................ 37

C. Desarrollo del módulo de síntesis .......................................................................................... 38

1) TD-PSOLA ......................................................................................................................... 38

2) FD-PSOLA ......................................................................................................................... 39

3) MBR-PSOLA ..................................................................................................................... 40

4) Concatenación de difonemas .............................................................................................. 40

D. Diseño e implementación de la prueba subjetiva .................................................................. 41

1) Preparación del espacio de la prueba .................................................................................. 42

2) Inicio de la prueba .............................................................................................................. 43

3) Desarrollo de la prueba ....................................................................................................... 43

4) Fin de la prueba .................................................................................................................. 43

VIII. RESULTADOS ..................................................................................................................... 45

Page 5: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 5

A. Implementación de los algoritmos TD-PSOLA y FD-PSOLA.45B. Prueba subjetiva

.................................................................................................................................................... 56

IX. ANÁLISIS DE RESULTADOS .............................................................................................. 61

A. Implementación de los algoritmos TD-PSOLA y FD-PSOLA. ............................................ 61

B. Tiempo de ejecución .............................................................................................................. 63

C. Prueba subjetiva ..................................................................................................................... 63

1) Dificultades de comprensión .............................................................................................. 63

2) Esfuerzo de escucha ............................................................................................................ 63

3) Nitidez ................................................................................................................................ 64

4) Aceptación .......................................................................................................................... 64

4) Sección escrita .................................................................................................................... 65

X. CONCLUSIONES ..................................................................................................................... 66

REFERENCIAS ............................................................................................................................. 68

ANEXOS ........................................................................................................................................ 71

Page 6: Desarrollo de un prototipo de convertidor de texto a voz

LISTA DE TABLAS

Tabla I. Difonemas de la palabra “baile” ....................................................................................... 49

Tabla II. Difonemas de la palabra "espectro" ................................................................................. 50

Tabla III. Difonemas de la palabra "diccionario"........................................................................... 50

Tabla IV. Tiempo de ejecución de cada algoritmo ........................................................................ 56

Page 7: Desarrollo de un prototipo de convertidor de texto a voz

LISTA DE FIGURAS

Fig. 1. Mapa del conocimiento ....................................................................................................... 19

Fig. 2. Estructura convertidor texto a voz ...................................................................................... 21

Fig. 3. Análisis PSOLA. ................................................................................................................. 26

Fig. 4. Diagrama de Bloques del método PSOLA y sus dos variantes TD-PSOLA y FD-PSOLA.

........................................................................................................................................................ 27

Fig. 5. Funcionamiento del pitch shift con el TD-PSOLA ............................................................ 28

Fig. 6. Diagrama de flujo Filter Bank Approach ............................................................................ 30

Fig. 7. Diagrama de modelo MBE ................................................................................................. 31

Fig. 8. Funcionamiento del Tokenizador. ...................................................................................... 34

Fig. 9. Funcionamiento del normalizador. ..................................................................................... 35

Fig. 10. Funcionamiento del divisor de sílabas. ............................................................................. 36

Fig. 11. Funcionamiento convertidor de fonemas. ......................................................................... 37

Fig. 12. Funcionamiento del agrupador de fonemas. ..................................................................... 37

Fig. 13. Funcionamiento del módulo de síntesis. ........................................................................... 38

Fig. 14. Comparación de espectros de la palabra “baile”. a) Señal original. b) Método TD-PSOLA.

c) Método FD-PSOLA ................................................................................................................... 46

Fig. 15. Comparación de espectros de la palabra “espectro”. a) Método TD-PSOLA. b) Método

FD-PSOLA ..................................................................................................................................... 47

Fig. 16. Comparación de espectros de la palabra “diccionario”. a) Método TD-PSOLA. b) Método

FD-PSOLA ..................................................................................................................................... 48

Fig. 17. Espectrograma de la señal sintetizada con el TD-PSOLA. ............................................... 52

Fig. 18. Espectrograma de la señal sintetizada con el FD-PSOLA ................................................ 53

Fig. 19. Comparación formas de onda. a) Señal original. b) Método TD-PSOLA. c) Método FD-

PSOLA ........................................................................................................................................... 54

Fig. 20. a) Difonema original b) Difonema extraído del corpus .................................................... 55

Fig. 21. Resultados prueba escrita para ambos métodos ................................................................ 57

Fig. 22. Resultados pregunta 1. Dificultades de comprensión ....................................................... 57

Fig. 23. Resultados pregunta 2. Esfuerzo de escucha .................................................................... 58

Fig. 24. Resultados respuesta 3. Nitidez ........................................................................................ 59

Page 8: Desarrollo de un prototipo de convertidor de texto a voz

Fig. 25. Respuestas pregunta 4. Aceptación................................................................................... 59

Fig. 26. Diagramas de cajas y bigotes. a) Dificultades de comprensión. b) Esfuerzo de escucha. c)

Nitidez. ........................................................................................................................................... 60

Page 9: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 9

RESUMEN

En este trabajo se desarrolla un prototipo de convertidor texto a voz por medio del lenguaje de

programación MATLAB utilizando la síntesis por concatenación, para esto se realizan 4 etapas

importantes, las cuales son: definición de la unidad acústica, creación del corpus de voz para el

idioma español, creación del módulo de procesamiento de lenguaje natural, el cual se encargará de

todo el análisis del texto de entrada y por último la creación del módulo de procesamiento de señal,

donde se lleva a cabo todo el proceso de síntesis para obtener el audio final. En la etapa de

procesamiento de señal se agregará un módulo de síntesis que implemente los métodos FD-PSOLA

y MBR-PSOLA para mejorar la etapa de coarticulación. Teniendo ya hecho el convertidor texto a

voz se procede a realizar pruebas comparativas tanto subjetivas como subjetivas para evaluar la

calidad vocal de este sintetizador dependiendo del método utilizado.

Palabras clave: convertidor texto a voz, síntesis del habla, coarticulación, difonemas, naturalidad,

PSOLA, FD-PSOLA.

Page 10: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 10

ABSTRACT

In this work, a prototype of text to speech converter is developed through the MATLAB

programming language, which uses synthesis for concatenation. For this, four important stages are

performed: first, the definition of the acoustic, which depends on the type of concatenated synthesis

that is to be performed, second, the creation of the voice corpus for the Spanish language, third, the

creation of the natural language processing module, which performs the analysis of all input text

and finally the creation of the signal processing module, where the whole process of synthesis is

carried out to obtain the final audio. In the signal processing step, a module of synthesis is added,

which implement the FD-PSOLA and MBR-PSOLA methods, to improve the co-articulation step.

Having already done the converter from text to speech we proceed to perform comparative tests,

both subjective and objective, which will allow to evaluate the vocal quality of this synthesizer

depending on the method used.

Keywords: Text-to-speech converter, speech synthesis, co-articulation, diphoneme, naturalness,

PSOLA, FD-PSOLA.

Page 11: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 11

I. INTRODUCCIÓN

Al explicarse de manera general la síntesis del habla consiste en un “proceso de creación de habla

de manera artificial” [1, p. 7]. La síntesis del habla ha surgido por la necesidad de mejorar la

comunicación hombre-máquina, sin embargo, aunque actualmente se han desarrollado varios

métodos, como lo son la síntesis articulatoria, por formantes o por concatenación, para poder llevar

a cabo este proceso, todavía es necesario mejorar varios parámetros que contribuyen a proporcionar

la naturalidad de una voz sintetizada, como la coarticulación y el módulo de prosodia que

contribuyen directamente a esta naturalidad. Al desarrollar un convertidor texto-voz es de vital

importancia tratar de mejorar las áreas de análisis lingüístico, generación de prosodia y el modelo

de sintetizador de voz que se va a utilizar, el avance en estas tres áreas permitirá generar una voz

sintetizada de mayor calidad [2].

Actualmente existen varios modelos de síntesis de voz, pero esta investigación se centrará en la

síntesis por concatenación que consiste “en el almacenamiento de segmentos de voz que

posteriormente son concatenados para producir frases de cualquier longitud” [3, p. 217]. Este

modelo ha sido desarrollado para reducir la complejidad que presentan los otros modelos, sin

embargo, sigue presentando problemas con la naturalidad de la voz. Esta pérdida de calidad se

genera cuando se concatenan segmentos de voz que no iban juntos en la grabación original, esto es

conocido como coarticulación, dicho fenómeno genera discontinuidades que resultan en la pérdida

de naturalidad [1]. Debido a lo anterior se han desarrollado varias técnicas con el propósito de

buscarle solución a las problemáticas que actualmente se presentan en la síntesis de voz [4], entre

estas se encuentra la familia de algoritmos PSOLA (Pitch Synchronous Overlap-Add) como lo son:

FD-PSOLA (Frequency Domain Pitch Synchronous Overlap-Add) y MBR-PSOLA (Multiband

Re-synthesis Pitch Synchronous Overlap-Add), que intentan minimizar las discontinuidades en los

puntos de concatenación.

Este trabajo presenta el desarrollo de un convertidor texto-voz en español iniciando con la

extracción de difonemas para la creación del corpus de voz (base de datos) a partir de grabaciones

realizadas para la elaboración del convertidor texto a voz llamado “SEVEN“ en la universidad de

los Andes (Venezuela) [5], después se desarrolla el módulo de procesamiento de lenguaje natural

Page 12: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 12

y por último el módulo de procesamiento de la señal, en el cual se implementarán dos métodos del

algoritmo PSOLA los cuales se compararán realizando pruebas subjetivas de naturalidad e

inteligibilidad para evidenciar cuál de los dos permite una mejor calidad.

Page 13: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 13

II. PLANTEAMIENTO DEL PROBLEMA

A. Preguntas de investigación

¿Cuál es la unidad acústica más adecuada para generar un corpus en un convertidor de texto

a voz basado en los algoritmos de la familia PSOLA?

¿Cómo generar de forma eficiente el corpus de un convertidor texto a voz?

¿Cómo es la estructura básica de un convertidor texto a voz?

¿Cómo se evalúan los parámetros de naturalidad, fluidez e inteligibilidad de un convertidor

texto a voz?

¿Cómo influye en los parámetros de naturalidad, fluidez e inteligibilidad la aplicación de

los algoritmos MBR-PSOLA y FD-PSOLA en el módulo de síntesis del convertidor texto

a voz?

B. Antecedentes

La síntesis del habla se centra en utilizar los diferentes métodos que existen, como lo son la síntesis

por articulación, por formantes o por concatenación para poder recrear de manera artificial una voz

humana. A medida que han avanzado la investigación y el desarrollo de estos métodos, comenzaron

a surgir las tecnologías del habla.

Las tecnologías del habla incluyen todas las tecnologías cuyo elemento principal es el habla. Los

dos ejemplos de tecnologías más habituales son el reconocimiento automático del habla, que

consiste en transcribir el contenido de una señal de voz sin intervención humana, y la síntesis del

habla, que se puede definir como todo el proceso de creación de habla de manera artificial [6]

Page 14: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 14

De acuerdo a Martí “Los grandes progresos en el tratamiento del habla, tanto en el análisis como

en la síntesis, se han realizado a partir del momento en que se ha podido tratar la señal debidamente

digitalizada con métodos numéricos y con la ayuda del ordenador” [7, p. 150].

En la Escuela de Telecomunicación La Salle Bonanova, Martí y Niñerola del departamento de

acústica, desarrollaron un conversor texto a voz en castellano, el cual nombraron SINCAS,

consistía en llegar al sonido de voz sintetizado encadenando difonemas directos o inversos, a partir

de un texto ortográfico que era ingresado por teclado. El módulo de síntesis era realizado por el

circuito integrado MEA 8000 de Philips, el cual era un sistema de síntesis de voz por formantes

que podía ser controlado por un computador. Se concluyó que en algunos casos el proceso de

inversión temporal de los difonemas inversos podía generar pérdida en la calidad de la voz, el

sintetizador utilizado tenía sus propias limitaciones, por lo cual también se afectaba la calidad de

la voz y no se permitía superar la calidad de una voz telefónica [8].

En la Universidad Politécnica de Valencia se desarrolló un convertidor texto a voz para el

castellano utilizando la síntesis por concatenación, la innovación que se le introdujo a este

conversor fue utilizar el método PSOLA para controlar la duración y el tono de las unidades

fonéticas que eran reproducidas, este algoritmo permite modificar de manera simple la

representación temporal de la frecuencia fundamental, lo que contribuye a mejorar el módulo de

prosodia del TTS. El resultado obtenido fue considerado notablemente bueno, se realizaron unas

pruebas que consistían en lecturas aleatorias de textos extraídos de libros, en dichas pruebas se

obtuvo un elevado grado de comprensión, sin embargo, la mayoría de los oyentes señaló que la voz

se escuchaba claramente artificial, lo cual es debido al problema de la coarticulación [3].

En Colombia en la Universidad de Santander se llevó a cabo el desarrollo de un TTS para el español

de Colombia, dicho desarrollo se llevó a cabo en varias etapas: primero se creó el corpus de voz de

difonemas, luego se pasó al proceso de etiquetación y extracción, donde se delimitan las fronteras

de las unidades fonéticas, después se desarrolló todo el módulo de síntesis y por último se

realizaron pruebas para evaluar la calidad de la voz. Con los resultados de las pruebas se pudo

concluir que las señales de audio obtenidas por el TTS eran similares a las de un hablante natural,

Page 15: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 15

pero existen secciones en la cuales todavía se ven fallas debido a la coarticulación entre palabras,

lo cual afecta la naturalidad de la voz obtenida [9].

En la actualidad los convertidores de texto a voz están relacionados con sistemas de diálogos como

atención telefónica, donde se incluyen los servicios de información, sistemas de notificaciones etc.

También está relacionado a las aplicaciones de mando y de control como sistemas domóticos e

interacción vocal con máquinas. Otro campo donde se aplican los TTS es la ayuda a personas con

necesidades especiales, donde se encuentran los lectores de pantallas que han permitido que las

personas con dificultades visuales puedan acceder al mundo de la informática e internet, y para las

personas con dificultades para hablar se crearon dispositivos de construcción rápida de frases que

les permite sintetizar lo que quieren decir. Por último, uno de los campos en el que también se

utilizan los TTS es el aprendizaje de idiomas, debido a que se puede sintetizar cualquier palabra o

frase para saber cómo se pronuncia o cuál es su entonación [1] .

Page 16: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 16

III. JUSTIFICACIÓN

Cómo se menciona en el estado de arte “las tecnologías del habla incluyen todas las tecnologías

cuyo elemento principal es el habla” [6, p. 7]. En la actualidad la tecnología avanza a pasos

agigantados y para permitir que las tecnologías del habla continúen su avance es necesario

encontrar solución a sus problemas actuales, entre los cuales se encuentra con mayor prioridad la

pérdida de naturalidad.

Este trabajo se centrará específicamente en los convertidores texto a voz, debido a que tienen

múltiples utilidades, entre las cuales destacan, la ayuda para personas con necesidades especiales.

Un ejemplo de esto son los lectores de pantalla que permiten el acceso al mundo de la informática

a las personas con dificultades visuales y los dispositivos con teclados predictivos que permiten

que las personas con dificultades en la producción del habla puedan expresar lo que quieren decir

[1].

Como en la actualidad se han desarrollado varios métodos para mejorar la síntesis del habla,

específicamente hablando de la familia de algoritmos PSOLA, se considera necesario evaluar la

inteligibilidad y naturalidad que brinde cada uno de estos para tener conocimiento de la calidad de

la voz del TTS.

Hasta el momento en la universidad San Buenaventura Medellín no se ha desarrollado ningún tema

que aborde la síntesis del habla, por tal razón este proyecto de grado podría ser el comienzo de la

inclusión de esta temática, y el desarrollo de un convertidor texto a voz podría servir como base

para generaciones futuras que quieran seguir esta línea de investigación y que quieran abordar de

una forma más profunda las tecnologías del habla.

Page 17: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 17

IV. OBJETIVOS

A. Objetivo general

Desarrollar un prototipo de convertidor texto a voz por medio del lenguaje de programación

MATLAB implementando los algoritmos MBR-PSOLA y FD-PSOLA para realizar un análisis

comparativo entre estos dos métodos.

B. Objetivos específicos

Crear el corpus de voz utilizando difonemas a partir de las grabaciones realizadas para el

convertidor texto a voz “SEVEN”, para después ser utilizadas en el módulo de síntesis por

concatenación.

Desarrollar el módulo de procesamiento de lenguaje para poder realizar todo el análisis del

texto de entrada y entregar la lista de difonemas que se necesitan como entrada para el módulo

de síntesis.

Desarrollar el módulo de síntesis concatenativa implementando los algoritmos MBR-PSOLA

y FD-PSOLA.

Comparar los algoritmos MBR-PSOLA y FD-PSOLA por medio de una prueba subjetiva que

evalúa la calidad vocal del TTS (Text-To-Speech).

Page 18: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 18

V. PROBLEMA DE INVESTIGACIÓN

Inicialmente la síntesis de voz era generada por diferentes modelos, como la síntesis articulatoria

que imitaba el tracto vocal del ser humano para producir la voz, y la síntesis por formantes que

imitaba las características acústicas de una señal. Actualmente, la mayoría de los convertidores de

texto a voz o text-to-speech conversion system (TTS) están compuestos por una etapa de síntesis

por concatenación, debido que genera una mejor calidad de voz y es más simple respecto a los

otros 2 tipos de síntesis mencionados [1].

“La síntesis por concatenación consiste en poner, uno detrás de otro, trozos cortos de grabaciones

de un mismo locutor para reproducir la transcripción fonética con las características prosódicas

requeridas” [1, p. 14]. Para el desarrollo de un TTS es necesario tener en cuenta dos módulos, los

cuales son: el módulo de procesamiento de lenguaje natural y el módulo de procesamiento de la

señal. El primero está conformado por un analizador morfosintáctico, que es el encargado de

procesar el texto, un transcriptor fonético, que expande el texto en una secuencia de fonemas y un

generador prosódico, que se encarga de generar los patrones melódicos y de ritmo de la voz. El

segundo módulo es el encargado de transformar la información proporcionada por el módulo de

procesamiento de lenguaje natural en habla, es allí donde se aplica la síntesis por concatenación

[1].

El primer paso para poder comenzar a desarrollar los módulos descritos anteriormente, es escoger

la unidad acústica con la cual se va a trabajar, de acuerdo con [10] las unidades pequeñas ofrecen

una flexibilidad mayor, puesto que a partir de ellas se pueden formar unidades mayores, por tal

razón en este proyecto se utilizarán difonemas, los cuales son “una unidad que empieza en medio

de la zona estable de un fonema y acaba en medio de la zona estable del fonema siguiente” [6, p.

16]. En este punto es donde se encuentra uno de los principales problemas de la pérdida de

naturalidad, el cual es la coarticulación, de acuerdo a [6], este fenómeno provoca que se generen

discontinuidades en los puntos de concatenación, debido que se juntan dos segmentos de voz que

no eran adyacentes en la grabación original.

Page 19: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 19

A lo largo del tiempo que se ha tratado el tema de la síntesis del habla han surgido varios métodos

de procesamiento digital de señal, uno de los primeros fue el PSOLA que sirve para controlar el

tono y la duración de las unidades fonéticas en el momento que se emiten [3, p. 217]. A partir de

este algoritmo se han creado variaciones como es el caso del TD-PSOLA (Time Domain Pitch

Synchronous Overlap-and-add) con la finalidad de aplicarlo como técnica de suavización al

momento de realizar la concatenación de los difonemas.

En el desarrollo del TTS de este proyecto se pretende crear un módulo en el cual se implementarán

las técnicas FD-PSOLA y MBR-PSOLA, donde el usuario tendrá la posibilidad de escoger el

algoritmo con el cual desee realizar la síntesis de voz, esto con el objetivo de evaluar

subjetivamente cuál de estos algoritmos brinda una mayor calidad en el proceso de síntesis.

Fig. 1. Mapa del conocimiento

Page 20: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 20

VI. MARCO TEÓRICO

La síntesis del sonido consiste en generar sonidos “a partir de la combinación de elementos simples

(normalmente señales periódicas y funciones matemáticas)” [11, párr. 3], al avanzar el tiempo han

surgido varios métodos para generar síntesis digital del sonido, como: síntesis aditiva, basada en el

teorema de Fourier, el cual plantea que por muy complejo que sea un sonido periódico, éste es el

resultado de la suma de ondas sinusoidales simples que corresponden a los armónicos de sus

frecuencias bases; síntesis por modulación de frecuencia, esté método fue patentado en 1973 por

John Chowning, consiste en tener dos osciladores, el primero contiene la señal portadora y el

segundo la moduladora, cuando la señal portadora tiene una frecuencia dentro del rango audible,

se crean una cantidad de frecuencias adicionales, las cuales generan un sonido con mucho

contenido armónico; el sampler, que consiste en almacenar en una memoria sonidos digitalizados,

a los cuales se les puede modificar ciertas propiedades como la envolvente, el pitch y también

permite aplicar filtros, etc. [11].

A. Convertidor de texto a voz

El objetivo de este sistema es convertir cualquier entrada de texto en la respectiva representación

acústica del habla, asemejándose a lo que sería una lectura en voz alta de una persona. Se busca

lograr el mayor realismo en la voz sintetizada mejorando parámetros como inteligibilidad, la

fluidez, naturalidad, haciendo que estos sistemas varíen internamente por ejemplo con el tipo de

síntesis usado, lenguajes de programación, cantidad de procesamiento y reglas gramaticales, sin

embargo siguen un proceso como se puede observar en la figura 2 que generalmente consta de tres

bloques: el análisis lingüístico, el bloque generador de prosodia y el último donde se lleva a cabo

la síntesis de voz [4].

Page 21: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 21

Fig. 2. Estructura convertidor texto a voz

1) Análisis lingüístico

En este bloque se puede ser muy específicos, implementando análisis que van desde la

pronunciación, pasando por la estructura gramatical, el estudio de las expresiones y el análisis del

tipo de discurso que se desea generar. Para poder lograr lo anterior se implementan los siguientes

módulos:

a) Analizador morfosintáctico

Aquí se lleva a cabo el proceso de identificación y normalización de la cadena de caracteres

(palabras o frases) para asignarles su respectiva transcripción ortográfica. Básicamente este

analizador contiene los siguientes procesos:

El primer paso es el Tokenizador, es el proceso en el cual la cadena de caracteres ingresada por el

usuario es segmentada, pasa de ser una frase a convertirse en palabras aisladas llamadas “Tokens”,

la separación se realiza basada en los espacios en blanco (fonema silencio) que existen entre ellos

[9, p. 21].

El proceso de normalización detecta los problemas de escritura y el uso de abreviaturas,

secuencias numéricas, correos electrónicos, direcciones, fechas, horas, símbolos, signos, entre

Page 22: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 22

otros, para corregirlos y convertirlos en palabras que puedan ser procesadas mediante el transcriptor

fonético.

b) Transcriptor fonético

Este proceso consiste en dividir las palabras en fonemas que se basan en reglas propias de un

idioma, provenientes de diccionarios que incluyen alfabetos fonéticos, un fonema es una unidad

lingüística básica que sirve para analizar las palabras y descomponerlas en representaciones

simbólicas abstractas que se relacionan con el sonido que se produce pero que solamente brindan

información sobre características de éste. Los fonemas no tienen significado exacto ya que cuando

son enlazados o articulados, dependiendo de la lengua y de la ubicación en la palabra, estos pueden

tomar representaciones acústicas diferentes (alófonos). Los fonemas se reconocen porque siempre

están dentro de barras inclinadas, por ejemplo /rr/ o /s/.

Sin embargo, cuando se habla desde la parte acústica donde el fonema tiene ya definido un sonido

representativo, se define como “unidad sonora más pequeña con entidad propia. Acústicamente se

puede dividir en tres zonas: el comienzo, el medio y el final. En el centro, las características

acústicas son estables, mientras que el comienzo y el final son zonas de transición.” [6, p. 14].

En el idioma español se clasifican en fonemas consonánticos y vocálicos, los primeros parten de

aquellos sonidos en los cuales existe una barrera contra el aire que sale al exterior y por el contrario,

en los vocálicos esta barrera no está presente.

Consonánticos: /b/, /ch/, /d/, /f/, /g/, /j/, /k/, /l/, /m/, /n/, /ñ/, /p/, /r/, /rr/, /s/, /t/, /y/

Vocálicas: /a/, /e/, /i/, /o/, /u/

2) Generador prosódico

En el bloque generador de prosodia se analizan los rasgos o características sonoras que se quieren

lograr con el texto de entrada, el análisis se divide en segmentos de palabras y conexiones entre

Page 23: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 23

ellas, haciendo ajustes en la entonación mediante el tratamiento de la frecuencia fundamental de

cada parte y generando un ritmo congruente definido por la duración que deben tener tanto los

sonidos como las pausas. Las reglas gramaticales del idioma que se trabaje son elementales para

definir estas características prosódicas, a partir de los signos de puntuación, la acentuación de cada

palabra y el tipo de frase a generar (enunciativa, exclamativa e interrogativa) [12].

3) Bloque de síntesis

Se encarga de generar las representaciones acústicas que se vienen estableciendo en los bloques

anteriores, para esto existen diferentes métodos que intentan producir una voz sintetizada lo más

parecida posible a una real para que sea inteligible y natural. Algunos de estos son:

a) Síntesis por formantes

Se realiza por medio de un sistema de fuentes y filtros que modelan la voz humana, se realiza una

suma de frecuencias fundamentales con niveles de ruido variantes en el tiempo y que pasan a través

de filtros logrando un sonido generalmente robótico. La naturalidad no es grande en este tipo de

síntesis, pero tiene ventajas a nivel de inteligibilidad por el control que se tienen de las variables,

logrando producir fácilmente variaciones en el tipo de voz. Además, se usan pocos recursos

computacionalmente ya que no requiere tener almacenado un corpus como en la síntesis

concatenativa [13].

b) Síntesis articulatoria

Esta síntesis tiene como objetivo simular el tracto vocal por medio de modelamiento matemático,

en esto se incluye la participación determinante del tracto nasal para la creación natural de la voz,

debido al control de tantos parámetros y articulaciones que se deben tener en cuenta, el costo

computacional de este tipo de síntesis es alto [14].

Page 24: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 24

c) Síntesis derivada 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” [13, p. 9] en estos cilindros se producen ondas sonoras que viajan uno tras otro

hasta formar una voz coherente. La codificación de esta síntesis es compleja, pero tienen resultados

de buena calidad.

d) Síntesis basada en los modelos ocultos de Markov (HMM)

Se realiza un proceso estadístico donde se pretende encontrar los parámetros desconocidos del

sistema, empleando los que se conocen y observan, reconociendo patrones:

En este sistema, el habla, espectro de frecuencias (tracto vocal), frecuencia fundamental

(fuente vocal), y la duración (prosodia) se modelan simultáneamente por modelos ocultos

de Markov. Las formas de onda se generan desde estos modelos mediante el criterio de

máxima verosimilitud [14, p. 27].

e) Síntesis por concatenación

Este tipo de síntesis se basa en concatenar segmentos de voz grabados uno detrás del otro, este

método permite obtener una voz más natural, sin embargo, no se siente del todo real debido que se

presenta un fenómeno llamado coarticulación, el cual se refiere a la “adaptación del comienzo de

un sonido a los sonidos adyacentes para que la voz suene fluida” [1, p. 14], esto provoca que cuando

se concatenen segmentos de grabación que no eran adyacentes en la grabación original se

produzcan discontinuidades, éstas pueden ser: discontinuidades espectrales donde los formantes de

las unidades no coinciden en el punto de concatenación o discontinuidades prosódicas que se

generan cuando la frecuencia fundamental o el volumen de cada unidad no coinciden en el punto

de concatenación.

A continuación, se explican 3 tipos de síntesis por concatenación:

Page 25: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 25

Síntesis por selección de unidades: se utiliza un corpus de voz grabado, en el cual el habla se

puede segmentar en fonemas, sílabas, palabras, frases y oraciones.

Síntesis de difonos: utiliza un corpus que tiene una base de datos que está compuesta por

difonemas, “un difonema es la unidad acústica que empieza en medio de una zona estable de

un fonema y acaba en medio de la zona estable del fonema siguiente” [6, p. 17] la cantidad de

difonemas depende del lenguaje que se quiera utilizar para el TTS.

Síntesis específica para un dominio: se utilizan frases y palabras grabadas para generar

mensajes completos por medio de la concatenación, se utiliza en aplicaciones donde los textos

que el sistema necesita reproducir están limitados a un dominio en particular, como sucede con

los relojes y calculadoras que hablan, anuncios de los trenes, información meteorológica, etc.

[14]

Debido a los problemas que se presentan por la coarticulación en la síntesis por concatenación se

desarrolló el método PSOLA (Pitch Synchronous Overlap-Add), el cual se basa en descomponer

una señal en una serie de formas de onda elementales de tal manera, que cada forma de onda

representa uno de los periodos sucesivos de pitch de la señal y la suma de ellas (Overlap-Add)

genera la señal reconstruida [15].

El funcionamiento de este método se basa en 3 etapas fundamentales: la primera es un análisis de

la forma de onda original de la señal de entrada para producir una representación intermedia no-

paramétrica de dicha señal, en esta etapa se obtienen las señales ST (Short Term) por medio de la

descomposición de la señal 𝑠(𝑛) en una serie de formas de onda elementales 𝑠𝑚(𝑛), las cuales se

obtienen aplicando una ventana de análisis ℎ𝑚(𝑛) como se muestra en la ecuación (1).

𝑠𝑚(𝑛) = ℎ𝑚(𝑡𝑚 − 𝑛)𝑠(𝑛) (1)

La ventana de análisis ℎ𝑚(𝑛) es de tipo Hanning y se encuentra centrada en los instantes de tiempo

𝑡𝑚 llamados marcas de pitch, las cuales indican en que instante de tiempo comienza un periodo de

la señal. La ventana debe ser lo suficientemente corta para que las características de la señal de la

Page 26: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 26

voz no cambien drásticamente durante la duración de la ventana y lo suficientemente larga para

contener dos periodos de la señal [16, p. 27]. En Fig. 3 se puede observar cómo cada ventana está

centrada en cada marca de pitch de la señal.

Fig. 3. Análisis PSOLA.

La segunda etapa consiste en la modificación de las ST, en esta fase se pueden aplicar 3

operaciones: modificación en el número de señales ST, modificación en el retardo entre las señales

ST y una modificación en la forma de onda de cada una de las ST, después de realizar alguna de

esas operaciones se procede a la etapa de síntesis donde se superponen y suman las señales ST de

síntesis dando como resultado la señal sintetizada 𝑠′(𝑛). [4, p. 19] [17]. El proceso de síntesis puede

ser representado por la siguiente ecuación:

𝑠′(𝑛) =∑ ∝𝑞 𝑠′

𝑞(𝑛)ℎ′𝑞(𝑡′

𝑞 − 𝑛)𝑞

∑ ℎ′𝑞2

𝑞 (𝑡′𝑞 − 𝑛)

(2)

Donde 𝑠′𝑞(𝑛) es la ST de síntesis, es decir, la ST de análisis modificada, 𝑡′𝑞 es el conjunto de las

nuevas marcas de pitch, ℎ′𝑞 representa las ventanas de síntesis y ∝𝑞 un factor de compresión debido

a las variaciones de energía producidas.

Page 27: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 27

4) Algoritmos de la familia PSOLA

De acuerdo a como se manipulen las ST en la segunda etapa del PSOLA, surgen unas variantes

como lo son TD-PSOLA Y FD-PSOLA.

Fig. 4. Diagrama de Bloques del método PSOLA y sus dos variantes TD-PSOLA y FD-PSOLA.

Fuente: imagen adaptada del artículo de revista “Diphone Concatenation using a Harmonic plus Noise Model

of Speech”.

a) TD-PSOLA (Time Domain Pitch Synchronous Overlap-Add)

Es uno de los métodos de concatenación más populares, proporciona en general una síntesis del

habla de buena calidad y con buena naturalidad, de acuerdo a Bullón esta variante del PSOLA

requiere menor esfuerzo computacional y su objetivo es variar el grado de solapamiento de las

señales ST de síntesis para modificar la frecuencia fundamental de la onda resultante sin cambiar

su envolvente espectral [3]. Sin embrago su problema principal es la falta de coincidencia espectral

entre los segmentos que se van a concatenar debido a que trabaja en el dominio del tiempo [18].

Page 28: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 28

La etapa de análisis de esta variante es la misma que la explicada en el método PSOLA, después

de obtener las ST se procede a modificarlas de acuerdo al resultado que se quiere obtener: se

duplican o eliminan segmentos del ventaneo para modificar la duración de la señal o si lo que se

desea es modificar el pitch, se incrementa o disminuye el solapamiento entre las ST al momento

de reconstruir la señal, en la Fig. 5 se ilustra el funcionamiento de la modificación de pitch con el

TD-PSOLA.

Fig. 5. Funcionamiento del pitch shift con el TD-PSOLA

Cuando se quiere modificar el pitch, la distancia 𝑆𝑎 debe ser multiplicada por un factor ∝, el cual

determina si la frecuencia aumenta o disminuye, el resultado de esta operación es una nueva

distancia 𝑆𝑠 con la cual se realizará el proceso de síntesis utilizando solapamiento y suma de las

señales 𝑠′𝑞(𝑛) para obtener la señal final 𝑠′(𝑛).

b) FD-PSOLA (Frequency Domain Pitch Synchronous Overlap-Add)

Esta variante aplica en cada ST de análisis modificaciones espectrales en el dominio de la

frecuencia y después pasa al módulo de síntesis utilizado en el PSOLA. Primero se realiza una

Page 29: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 29

etapa de análisis en el dominio de la frecuencia, luego se procede a hacer modificaciones y por

último se vuelve a obtener la ST de síntesis aplicando la Transformada Inversa de Fourier. Este

método requiere una memoria grande, alto costo computacional y la complejidad de los cálculos

es elevada para implementarla en un sistema sencillo [4].

Para realizar modificaciones en el dominio de la frecuencia existen técnicas basadas en la

compresión-expansión del espectro y en la eliminación-repetición de algunas partes de este. Un

método comúnmente usado es el Phase Vocoder.

En un principio el Voice Coder (vocoder) fue diseñado para reducir el ancho de banda necesario

para transmitir satisfactoriamente la voz por líneas telefónicas. La idea fue pasar la señal de voz a

través de un conjunto de filtros pasa-banda, permitiendo que la salida combinada de esos filtros en

un punto dado en el tiempo sería una aproximación del espectro de la entrada. En teoría, mediante

la transmisión de unos pocos coeficientes de filtro, se podría lograr un ahorro en términos del ancho

de banda de transmisión requerido para transmitir una señal dada. En la práctica, se necesitaban

demasiados canales para preservar la calidad vocal y había un problema adicional, solamente la

amplitud o magnitud de la señal de cada filtro de salida estaba siendo transmitida [19].

El algoritmo Phase Vocoder nace desde la necesidad de mejorar el Vocoder para que no perdiera

la información de fase y así se lograra reconstruir una señal idéntica a la de entrada. Este algoritmo

tiene muchas aplicaciones, por ejemplo, la dispersión, Time Stretching, Pitch Shift, robotización,

Whisperization, Denoising.

La aplicación específica para el convertidor de texto a voz es el pitch Shift, este consiste en realizar

una multiplicación de cada una de las frecuencias por un factor de escalamiento, para luego

reconstruir la señal modificada. Existe un método básico para realizarlo llamado Filter Bank

Approach, el cual realiza una suma de señales sinusoidales creadas a partir de los valores de

magnitud y diferencias de fase entre los fragmentos que componen la señal original, así como se

observa en la Fig. 6.

Page 30: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 30

Fig. 6. Diagrama de flujo Filter Bank Approach

c) MBR-PSOLA (Multi-Band Re-synthesis Pitch Synchronous Overlap-Add)

Esta variante surge con la idea de solucionar los problemas de coarticulación presentados por el

TD-PSOLA, Su funcionamiento consiste en “analizar y re-sintetizar todos los segmentos sonoros

de la base de datos siguiendo el modelo Multi-Band Excited (MBE)” [2, p. 111], esto permite fijar

la misma frecuencia fundamental, hacer una corrección en la fase y reducir la discontinuidad de la

envolvente espectral.

El algoritmo MBR-PSOLA consta de dos niveles: el primero se encarga de volver a sintetizar la

base de datos entregada por la técnica TD-PSOLA siguiendo el modelo MBE y el segundo se

encarga de realizar “una interpolación lineal de tramas en el dominio temporal durante la fase de

síntesis” [4, p. 29]. En la figura 4 se muestra el proceso de re-síntesis con el modelo MBE.

Page 31: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 31

Fig. 7. Diagrama de modelo MBE

Tomada de: libro “An introduction to the phase vocoder”.

B. Matlab

Es un software matemático que se ha convertido en base para proyectos ingenieriles ya que cuenta

con herramientas que se integran de manera óptima y permite la extracción de información a partir

de gráficos, además incluye un entorno de desarrollo integrado el cual facilita las configuraciones

básicas previniendo errores y ayudando al flujo de trabajo. Matlab tiene un lenguaje de

programación propio del alto nivel basado en el uso de matrices lo cual mejora la naturalidad y

entendimiento a la hora de programar, además incorpora una librería llamada toolboxes con

algoritmos esenciales. Una importante característica de este software es la facilidad de integrarse

con otros lenguajes [20].

Matlab es usado para diversos proyectos que van desde el procesamiento digital de señales,

pasando por robótica y aprendizaje autónomo, hasta procesos de finanzas. Éste no es un software

libre, cuenta con diferentes licencias dependiendo del uso que se requiera.

Las funciones en Matlab son programas que trabajan dentro del mismo entorno de programación,

cuentan con variables de entrada que son necesarias para realizar tareas específicas y al final

Page 32: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 32

devuelve los resultados de estas en las variables de salida. Son muy útiles para sintetizar y agrupar

códigos que son usados constantemente. Matlab da la posibilidad de crear funciones propias que

pueden ser usadas en todo el espacio de trabajo.

C. Evaluación de un convertidor de texto a voz

Debido al avance que han tenido los convertidores texto a voz surgió la necesidad de tener

herramientas que permitan comparar los resultados de las diferentes formas de síntesis de voz y al

mismo tiempo estudiar de forma subjetiva la calidad de la voz sintetizada, normalmente

comparándola con la voz natural. Para esto se pueden plantear las siguientes cuestiones: “¿Con qué

grado de precisión se reconocen sonidos y palabras sintetizadas? ¿Con qué precisión se entiende el

sentido de una frase en habla sintetizada? ¿Qué dificultades plantea la percepción y la comprensión

del habla sintetizada? [21, p. 10]”

La inteligibilidad hace referencia a la capacidad de comprender de manera correcta un mensaje

generado por la voz, sea de forma natural o sintetizada. Esto se ha convertido en un problema

común y en un campo de estudio en la síntesis del habla, generalmente este factor es analizado

cuando se evalúa la eficacia de un TTS.

Los TTS buscan que, al realizar la reproducción del audio de salida, este sea lo más parecido a una

voz humana, haciendo que pueda transmitir estados de ánimo y que los tipos de oraciones sean

distinguibles, estas características corresponden a lo que se denomina naturalidad.

La unión Internacional de Telecomunicaciones diseñó la recomendación UIT – T P.85 para evaluar

subjetivamente la calidad de la voz de los dispositivos generadores de voz, entre los que se incluyen

los convertidores de texto a voz. En la recomendación se propone un método que permite comparar

varios sistemas entre sí, realizando pruebas con mensajes de forma oral que los participantes deben

evaluar expresando su opinión de acuerdo a escalas de calificación. En esta recomendación también

se proponen algunas formas de presentar los resultados y realizar análisis estadístico [22].

Page 33: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 33

VII. METODOLOGÍA

A. Creación del corpus de voz

Para esta fase es necesario tener colaboración de un locutor profesional para realizar las

grabaciones, sin embargo, se decide utilizar un audio proporcionado por los creadores del

convertidor texto a voz “SEVEN”, dicho audio se puede descargar de la base de datos de la Revista

del Centro de Investigación y Atención Lingüística (CIAL) de la universidad de los Andes

(Venezuela) bajo la Licencia Creative Commons Atribución-No-Comercial-Compartir Igual 3.0

Venezuela y viene con un diccionario de difonemas en un archivo en Excel [23].

La grabación tiene una duración de 1 hora y 29 minutos y una frecuencia de muestreo de 44.100

Hz, anexo a la grabación se cuenta con un listado en el software Microsoft Excel, por filas se

encuentra desglosado cada uno de los difonemas y se menciona la frase portadora de este, como se

muestra en el Anexo 1.

El locutor graba una secuencia de frases portadoras de los difonemas que se requieren extraer, estas

palabras son pronunciadas dos veces para mejorar la naturalidad de la grabación y para tener una

muestra extra por si ocurre algún problema como ruido o mala dicción.

La extracción de los difonemas se realizó en el software Pro Tools 10, con la herramienta de

selección se estableció el inicio y fin de cada difonema siguiendo su definición y la recomendación

de cortar en un punto donde la amplitud de la onda sea cero para evitar clips. Cuando se tuvo

seleccionada la región deseada se copió a otro canal para tener mejor control sobre ella y luego en

formato WAV (Waveform Audio File Format) se exportó el difonema. El nombre de cada uno de

los difonemas se estableció con la misma numeración que se encontraba en el listado de Excel.

En total son 787 difonemas que conforman el corpus para el convertidor de texto a voz, en el mismo

listado se enuncia si el difonema presenta algún inconveniente que podría afectar de manera

significativa el correcto entendimiento y funcionamiento del convertidor, un ejemplo de esto es

que no se alcanza a pronunciar correctamente la letra “j” ni la letra “t” cuando van al final de una

palabra o prefijo.

Page 34: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 34

B. Desarrollo del módulo de procesamiento de lenguaje

El desarrollo de este módulo se basó en la estructura propuesta por unos estudiantes de la

Universidad Industrial de Santander [9], a continuación, se muestran los procesadores que se

desarrollaron en este módulo:

1) Tokenizador

Este procesador se encarga de recibir el texto de entrada y dividirlo en “Tokens”. Se denominan de

esta forma debido a que el texto de entrada puede contener cualquier tipo de caracteres (palabras,

siglas, cifras, fechas, abreviaciones y otros elementos especiales).

Como existe una gran cantidad de estas unidades especiales, en este proyecto solo se trabajó con

palabras, no se admitieron abreviaciones, ni otros elementos especiales, si se quiere introducir un

número debe ser escrito como palabra. La Fig. 8 muestra el funcionamiento del Tokenizador.

Fig. 8. Funcionamiento del Tokenizador.

Para programar este módulo se creó una función denominada “token” la cual tiene cómo entrada

una frase, ésta puede contener palabras, espacios, puntos y comas. La función toma la frase y

entrega como salida cada palabra y signo de puntuación de la frase por separado como se muestra

en el Anexo 2.

Page 35: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 35

2) Normalizador

Esta unidad se encarga de recibir los Tokens entregados por el Tokenizador y debe analizarlos para

así identificar las estructuras especiales que no corresponden a palabras (cifras y abreviaturas) y

expandirlas, dando como salida el texto de cómo se leerían dichas estructuras. En la Fig. 9 se muestra

su funcionamiento, sin embargo, en este proyecto no se incluyó este módulo.

Fig. 9. Funcionamiento del normalizador.

3) Divisor de sílabas

El objetivo de este procesador es dividir las palabras en sílabas para poder realizar la asignación de

fonemas de una forma más sencilla, además permite identificar la acentuación de cada palabra de

acuerdo a las reglas gramaticales de las palabras graves, agudas, esdrújulas y sobreesdrújulas.

También reconoce la acentuación asignada ortográficamente. La Fig. 10 permite visualizar su

funcionamiento.

Page 36: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 36

Fig. 10. Funcionamiento del divisor de sílabas.

Para el desarrollo de este módulo se creó una función llamada “divisor_silaba”, la cual tiene como

entrada cada palabra entregada por el Tokenizador. Para poder realizar una correcta separación de

sílabas para el idioma español se realizó una programación teniendo en cuenta las reglas

gramaticales consultadas en [24], que se mencionan en el Anexo 3.

Al tener programadas todas estas reglas la función procede a realizar la separación de sílabas y

entrega como salida un arreglo que contiene en cada una de sus columnas un vector que

corresponde a cada sílaba de la palabra ingresada, como se muestra en el Anexo 4.

4) Pausador

Se encarga de analizar las pausas que debe haber entre cada palabra y las pausas asignadas

ortográficamente.

5) Convertidor de fonemas

Cuando las sílabas entran a este procesador, cada una de las letras que la conforman es sustituida

por su respectivo fonema como se muestra en la Fig. 11.

Page 37: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 37

Fig. 11. Funcionamiento convertidor de fonemas.

Para esta unidad se creó una función llamada “fonema” la cual tiene como entrada las sílabas que

entrega el divisor de sílabas. Para realizar la sustitución de los difonemas se tiene en cuenta la

información del Anexo 5, los fonemas de las letras que no se encuentren en dicho anexo

corresponden a la misma letra. La función entrega como salida las silabas de la palabra sustituidas

por los fonemas como se muestra en el Anexo 6 .

6) Agrupador de fonemas

En este módulo se agrupan los fonemas entregados por el convertidor de fonemas para poder

obtener el conjunto de difonemas que componen cada una de las palabras.

Fig. 12. Funcionamiento del agrupador de fonemas.

Page 38: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 38

C. Desarrollo del módulo de síntesis

Al tener la lista de difonemas que conforman cada palabra del texto de entrada se procedió a

comunicarse con la base de datos del corpus para realizar el proceso de concatenación. En esta

etapa se realizaron dos módulos de síntesis, el primero trabaja con el algoritmo FD-PSOLA y el

segundo trabaja con el algoritmo TD-PSOLA. El funcionamiento general de este módulo se

observa en la Fig. 13, el cual entrega como salida la voz sintetizada.

Fig. 13. Funcionamiento del módulo de síntesis.

1) TD-PSOLA

El primer algoritmo que se creó fue el TD-PSOLA, este método posee una etapa de análisis y una

etapa de síntesis. En la etapa de análisis es necesario saber cuál es el periodo del difonema que se

está procesando, por tal razón se creó una función llamada “periodo”, la cual se encarga de

encontrar el periodo de cada difonema utilizando auto-correlación y entrega como variables de

salida la frecuencia fundamental y el periodo en muestras. Se puede observar un funcionamiento

más detallado de esta función en el Anexo 7.

Page 39: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 39

Después se procede a calcular la frecuencia promedio de la palabra de entrada para obtener el factor

de compresión-expansión con el cual se ajusta la frecuencia fundamental de cada difonema. Luego

se ventanea cada difonema con una ventana Hanning con un tamaño de dos veces el periodo y un

solapamiento del tamaño de media ventana. Con el almacenamiento de la señal ventaneada se

finaliza la etapa de análisis.

La etapa de síntesis consiste en la reconstrucción de la señal, en esta fase la región de solapamiento

es multiplicada por un factor, si dicho factor es menor que 1 quiere decir que el difonema va a ser

comprimido y por lo tanto su frecuencia fundamental va a aumentar, en cambio, si el factor es

mayor que 1 quiere decir que el difonema va a ser expandido y por lo tanto su frecuencia

fundamental va a disminuir. Al final se utiliza la técnica de solapamiento y suma para obtener la

señal final.

Todo el proceso descrito anteriormente lo lleva a cabo una función llamada “p_sola_pitch”, la cual

se puede ver con más detalle en el Anexo 8.

2) FD-PSOLA

Este método a diferencia del TD-PSOLA posee tres etapas: una etapa de análisis que funciona

exactamente igual a la etapa de análisis descrita en el TD-PSOLA, una etapa de modificación donde

se realiza el proceso para cambiar el pitch de la señal y una etapa de síntesis que consiste en la

reconstrucción de la señal.

Para la etapa de modificación se utilizó el código de un phase vocoder que se encuentra en el libro

DAFX-Digital Audio Effects [25, pp. 278-279], dicho código fue adaptado con la etapa de análisis

del PSOLA que ya se había programado. Se decidió utilizar un Phase Vocoder, ya que este utiliza

un factor de escalamiento en el dominio de la frecuencia para modificar el pitch, y según [17] así

es como funciona el método de expansión-compresión para el FD-PSOLA.

La etapa de modificación comienza aplicando la transformada de Fourier a cada segmento que fue

almacenado en la etapa de análisis, de la transformada se extrae el valor absoluto que corresponde

a la magnitud del segmento y el ángulo que corresponde a la fase. Después se debe encontrar la

Page 40: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 40

diferencia de fases entre el segmento que se está modificando y el segmento anterior, esto da como

resultado un vector de fases, al cual se le debe aplicar un proceso denominado “Unwrap” para que

las fases de dicho vector no estén limitadas al rango de [-π π], después se crea otro vector

conformado por el vector de frecuencia y el vector de fase calculado en el paso anterior, luego es

multiplicado por un factor para realizar el escalamiento del segmento. Todo el proceso descrito

anteriormente se realiza para cada segmento entregado por la etapa de análisis. Por último, la etapa

de síntesis se realiza por medio de síntesis aditiva, es decir suma de señales sinusoidales. El

funcionamiento del código se encuentra en el Anexo 9.

3) MBR-PSOLA

Después de tener listo el algoritmo del TD-PSOLA, que era necesario para comenzar la

implementación del MBR-PSOLA se encontró que la re-síntesis aplicada a los segmentos

provenientes del TD-PSOLA se realiza de una forma similar al desarrollo del FD-PSOLA.

En este método se pasa del dominio del tiempo al dominio de la frecuencia para ajustar los cambios

de pitch deseados, y después se vuelve a sintetizar la señal generando un banco de señales

sinusoidales a partir de la magnitud y fase de las bandas de frecuencia importantes. La diferencia

del proceso radica en que el modelo MBR-PSOLA solo se aplica a los segmentos periódicos.

Teniendo en cuenta lo anterior, se consideró que sería redundante aplicar el mismo método para

ambos algoritmos y realizar su comparación. Como se menciona en el marco teórico, el algoritmo

MBR-PSOLA se fundamenta en el TD-PSOLA y tiene como objetivo mejorar algunos problemas

de este, por lo tanto, se decidió realizar la comparación principal entre los algoritmos FD-PSOLA

y TD-PSOLA, los cuales son diferenciables ya que cada uno trabaja en un dominio diferente:

frecuencia y tiempo respectivamente. Realizar esta modificación en los algoritmos a comparar, no

altera los parámetros de la prueba subjetiva que se lleva a cabo y tampoco interfiere en el análisis

objetivo.

4) Concatenación de difonemas

Page 41: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 41

Después de obtener cada difonema modificado por cualquier método, es necesario concatenarlos

de una forma adecuada. Por tal razón se creó la función “conct”, a dicha función le entran las

unidades acústicas que conforman la palabra que se va a sintetizar, lo primero que hace esta función

es buscar cual es la unidad de menor tamaño para crear una ventana Hanning de dicho tamaño.

Después se procede a aplicarle una envolvente de entrada y de salida a cada difonema, luego se

realiza una operación de solapamiento de la mitad del tamaño de la ventana en una matriz para

sumar todas sus filas y generar la señal final sintetizada. El código de esta función se encuentra en

el Anexo 10.

D. Diseño e implementación de la prueba subjetiva

Todo el diseño de la prueba subjetiva se basó en la Recomendación UIT – T P.85 [22], la cual

define un método para poder evaluar subjetivamente la calidad de una voz sintetizada. La prueba

diseñada contenía una parte escrita y un cuestionario, la parte escrita evaluaba que palabras el

participante podía identificar al momento de escuchar dos frases que habían sido procesadas con

uno de los algoritmos, la parte del cuestionario tenía como objetivo evaluar las siguientes

características: esfuerzo de escucha, dificultades de comprensión, nitidez y aceptación. Cada una

de estas características era evaluada con una escala que iba enumerada de 1 a 5, en el Anexo 11 se

encuentra la prueba que fue aplicada a los participantes.

Se desarrolló una prueba de hipótesis de dos colas para comparar la opinión de las personas

respecto a las palabras sintetizadas. Para ello se va a utilizó la siguiente ecuación [26]:

𝑛 =

(𝑍𝛼2

+ 𝑍𝛽)2 𝜎2

𝑑2 (3)

Donde,

d = promedio de las diferencias individuales entre los valores base.

𝜎2 = varianza de ambas distribuciones que se suponen iguales.

α (error tipo I) = probabilidad de rechazar una hipótesis nula siendo verdadera.

β (error tipo II) = probabilidad de no rechazar una hipótesis nula siendo falsa.

Page 42: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 42

𝑍𝛼

2 = es el valor del eje de las abscisas de la función normal estándar, en donde se acumula la

probabilidad de (1 – α) para un contraste de hipótesis bilateral.

𝑍𝛽 = es el valor del eje de las abscisas de la función normal estándar, en donde se acumula la

probabilidad de (1 – β).

Todas las preguntas de la prueba tienen 4 o 5 opciones de respuesta, lo que se espera es que las

diferencias en las respuestas sea en promedio una opción, es decir, si la opción 3 fue la que más

eligieron los participantes, entonces las otras respuestas deben estar entre las opciones 2 y 4. La

desviación estándar posiblemente sea de poco más de una opción, por lo tanto, se asume la varianza

con el valor de 1.5.

𝑍𝛼

2 𝑦 𝑍𝛽 se encuentran en la tabla de la distribución normal. En cuanto al error tipo I, los valores

típicos de esta probabilidad son entre 1 y 10%, por lo tanto, se establece el 5% de probabilidad de

que ocurra el error tipo I, es decir, α = 0.05. Generalmente se establece un 10% de probabilidad de

que el error tipo II ocurra, entonces β = 0.1.

Al reemplazar todas las variables en la ecuación (3) se obtuvo el tamaño de la muestra como se

observa a continuación:

𝑛 = (1,96 + 1,28)2 1,5

12 = 15,74 ≈ 16 (4)

La prueba se llevó a cabo en el Estudio B de la Universidad San Buenaventura – Seccional

Medellín. Los equipos utilizados fueron: un computador Samsung portátil NP270E4V, una interfaz

de audio Sound Devices USB Pre 2, un monitor Genelec y un sonómetro CESVA.

A continuación, se describe todo el proceso que se llevó a cabo para el desarrollo de la prueba:

1) Preparación del espacio de la prueba

Se retiraron todos los elementos innecesarios de la sala.

Page 43: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 43

Se situó el parlante en una posición central a un (1) metro de donde se sentaba el participante.

Se calibró el sistema con el sonómetro para que el audio reproducido tuviera un nivel de 60dBA

a un metro del parlante.

2) Inicio de la prueba

Por cada sesión participó 1 sola persona.

Se le entregó a cada participante la hoja con las instrucciones de la prueba, la hoja de respuestas

y el formato de consentimiento informado.

Se le explicó la prueba al participante y se resolvieron sus dudas.

El participante firmó el consentimiento informado.

El participante se acomodaba en el puesto designado para comenzar la prueba.

3) Desarrollo de la prueba

Primero se realizó la parte escrita de la prueba, en la cual, se reproducían dos frases sintetizadas

y el participante debía llenar la información que se le pedía en la hoja de respuestas.

Después se pasaba a la parte del cuestionario y la primera pregunta el participante la debía

contestar de acuerdo a las dos frases escuchadas para la parte escrita.

Para la segunda pregunta se ponía un audio de referencia con la voz original del locutor y

después se reproducía otro audio con la voz sintetizada, el participante debía contestar

comparando los audios.

Para la tercera pregunta se reproducía otro audio de referencia y después la misma frase con la

voz sintetizada, el participante debía contestar comparando los dos audios.

Finalmente, para la última pregunta se reproducían dos audios con la voz sintetizada y cada

participante respondía de acuerdo a su opinión.

4) Fin de la prueba

Page 44: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 44

Los participantes devolvían la hoja de la prueba, la hoja de respuestas contestada y el

consentimiento informado diligenciado.

Se les agradecía a los participantes por su colaboración.

Page 45: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 45

VIII. RESULTADOS

Como se explica en la metodología, la comparación final se realizó diferente a lo planteado en los

objetivos, por lo tanto, todos los resultados que se presentan a continuación serán comparaciones

basadas en los algoritmos TD-PSOLA y FD-PSOLA.

A. Implementación de los algoritmos TD-PSOLA y FD-PSOLA.

El objetivo de programar estos dos algoritmos era generar una frecuencia fundamental homogénea

en toda la palabra que iba a ser sintetizada. En la Fig. 14 se observa la comparación entre el espectro

de la señal original y la señal procesada por el algoritmo TD-PSOLA y FD-PSOLA de la palabra

“baile”. La señal original hace referencia al audio de la palabra “baile” grabado por el locutor que

grabó toda la lista de palabras portadoras para extraer los difonemas.

Page 46: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 46

Fig. 14. Comparación de espectros de la palabra “baile”. a) Señal original. b) Método TD-PSOLA. c) Método FD-

PSOLA

Page 47: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 47

En las Fig. 15 y Fig. 16 se realiza una comparación de los espectros de la señal procesada por los

dos algoritmos, para esta comparación se utilizaron las palabras “espectro” y “diccionario” que

tienen una dificultad mayor en términos de dicción.

Fig. 15. Comparación de espectros de la palabra “espectro”. a) Método TD-PSOLA. b) Método FD-PSOLA

Page 48: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 48

Fig. 16. Comparación de espectros de la palabra “diccionario”. a) Método TD-PSOLA. b) Método FD-PSOLA

La TABLA I,

Page 49: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 49

TABLA II y TABLA III muestran la frecuencia fundamental de cada difonema calculada con la

función “periodo” de cada palabra.

TABLA I. DIFONEMAS DE LA PALABRA “BAILE”

Difonema Frecuencia Fundamental (Hz)

_b 98,8789

ba 97,3509

aj 92,8421

jl 89,8167

le 105,2505

e_ 97,3509

Con esta información se logró obtener el promedio de la frecuencia fundamental de la palabra

“baile”, y con esta se calculó el alfa para ajustar cada frecuencia fundamental a la frecuencia

promedio.

𝐹0 𝑃𝑟𝑜𝑚𝑒𝑑𝑖𝑜 = 96.915 𝐻𝑧

En la Fig. 14 (b, c) se muestra la frecuencia fundamental de la palabra “baile” sintetizada por cada

algoritmo, el TD-PSOLA generó una frecuencia fundamental de 95.32Hz y el FD-PSOLA de

94.12Hz. Se procedió a calcular cual es el porcentaje de acierto tomando la frecuencia promedio

como un acierto del 100%.

% 𝐴𝑐𝑖𝑒𝑟𝑡𝑜 𝑇𝐷−𝑃𝑆𝑂𝐿𝐴 =95,32 𝐻𝑧∗100

96,915 𝐻𝑧= 98,35 % (5)

% 𝐴𝑐𝑖𝑒𝑟𝑡𝑜 𝐹𝐷−𝑃𝑆𝑂𝐿𝐴 =94,12 𝐻𝑧∗100

96,915 𝐻𝑧= 97,11 % (6)

Page 50: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 50

TABLA II. DIFONEMAS DE LA PALABRA "ESPECTRO"

Difonema Frecuencia Fundamental (Hz)

'_e' 104,0094

'ez' 108,0882

'zp' 139,1167

'pe' 88,9112

'ek' 109,4292

'kt' 98,0000

'tr' 102,5581

'ro' 100,4555

'o_' 106,7796

TABLA III. DIFONEMAS DE LA PALABRA "DICCIONARIO"

Difonema Frecuencia Fundamental (Hz)

'_d' 84,4827

'di' 99,7737

'ik' 79,4594

'ks' 98,0000

'sj' 101,6129

'jo' 95,6616

'on' 98,4375

'na' 88,2000

'ar' 88,5542

'rj' 84,1603

'jo' 95,6616

'o_' 106,7796

Con la información de la

Page 51: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 51

TABLA II y TABLA III se calcularon las frecuencias fundamentales promedio y los porcentajes

de acierto de las palabras “espectro” y “diccionario” de la misma forma como se calcularon para

la palabra “baile”.

La frecuencia fundamental promedio de la palabra “espectro” fue de 106.37Hz y de acuerdo a la

Fig. 15 (a, b) el TD-PSOLA ajustó la frecuencia fundamental a 107.6Hz y el FD-PSOLA la ajustó

a 104.2Hz, por lo tanto, el porcentaje de acierto para el TD-PSOLA fue de 98.35% y para el FD-

PSOLA fue de 97.95%. La frecuencia fundamental promedio de la palabra “diccionario” fue de

93.39Hz y de acuerdo a la Fig. 16 (a, b) el TD-PSOLA ajustó la frecuencia fundamental a 88.36Hz

y el FD-PSOLA la ajustó a 88.66Hz, por lo tanto, el porcentaje de acierto para el TD-PSOLA fue

de 94.61% y para el FD-PSOLA fue de 94.93%.

La Fig. 17 y Fig. 18 muestran el espectrograma de la palabra “baile” sintetizada por los dos

algoritmos, estos espectrogramas se realizaron para poder observar lo que pasa en frecuencia a

través del tiempo y poder visualizar si se introducen o modifican frecuencias. En el Anexo 12

también se pueden observar los espectrogramas de otras palabras como “cliente”, “diccionario” y

“espectro”.

Page 52: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 52

Fig. 17. Espectrograma de la señal sintetizada con el TD-PSOLA.

Page 53: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 53

Fig. 18. Espectrograma de la señal sintetizada con el FD-PSOLA

Page 54: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 54

A continuación, se presenta en la Fig. 19 una comparación entre la representación temporal de la

señal original, la señal sintetizada por el TD-PSOLA y por el FD-PSOLA.

Fig. 19. Comparación formas de onda. a) Señal original. b) Método TD-PSOLA. c) Método FD-PSOLA

Page 55: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 55

También se presenta una comparación de amplitud entre el difonema “ba” de la señal original y el

difonema “ba” que fue extraído para el corpus, como se muestra en la Fig. 20.

Fig. 20. a) Difonema original b) Difonema extraído del corpus

Es importante calcular el costo computacional que generan los algoritmos ya que en ciertas

aplicaciones es determinante para elegir cual implementar. Para poder obtener los tiempos de

ejecución de cada algoritmo se utilizaron las funciones de Matlab “tic” y “toc”, las cuales entregan

Page 56: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 56

en segundos el tiempo que se tarda en ejecutar el código que se quiere evaluar, estos tiempos se

calcularon para cada algoritmo utilizando 6 frases, cada frase contenía un número diferente de

letras, en la TABLA IV se muestran los resultados obtenidos.

TABLA IV. TIEMPO DE EJECUCIÓN DE CADA ALGORITMO

B. Prueba subjetiva

Después de realizar la prueba subjetiva a 32 personas, se procedió a tabular los datos y a realizar

las gráficas de los resultados para poder realizar la comparación. A continuación, se enuncian las

preguntas correspondientes a la parte del cuestionario de la prueba y se muestran las gráficas de

los resultados.

En la parte escrita de la prueba cada participante tenía la oportunidad de acertar 10 palabras, al

contar con la participación de 16 personas por método, se establece que el 100% de aciertos de

cada método corresponde a 160 palabras bien escritas, teniendo en cuenta esto se presentan los

resultados en la

Fig. 21.

Las palabras que contribuyeron a los porcentajes de error fueron “vía G”, “andén tres”.

N° Letras Frase 𝐓𝐢𝐞𝐦𝐩𝐨𝐅𝐃−𝐏𝐒𝐎𝐋𝐀 (s) 𝐓𝐢𝐞𝐦𝐩𝐨𝐓𝐃−𝐏𝐒𝐎𝐋𝐀 (s) Diferencia (s)

5 Baile 1,262 0,684 0,578

8 Hola Juan 2,120 0,802 1,317

13 Ya estoy atento 2,539 0,981 1,558

19 El televisor funciona 3,272 1,144 2,128

25 La calificación esperada fue 4,369 1,310 3,059

29 Son quinientos pesos para

comprar

4,604 1,431 3,172

Page 57: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 57

Fig. 21. Resultados prueba escrita para ambos métodos

Teniendo como base las frases sintetizadas para la parte escrita, los participantes respondieron si

encontraron palabras difíciles de entender. Las respuestas de esta primera pregunta se encuentran

en la

Fig. 22.

Fig. 22. Resultados pregunta 1. Dificultades de comprensión

83,125

16,875

83,75

16,25

0

10

20

30

40

50

60

70

80

90

100

Aciertos Desaciertos Aciertos Desaciertos

TD-PSOLA FD-PSOLA

Po

rcen

taje

Resultados prueba escrita

6,25

12,5

50

25

6,25

0

12,5

50

25

12,5

0

10

20

30

40

50

60

Nunca RaramenteDe vez en cuando A menudo Todo el tiempo

Po

rcen

taje

Dificultades de comprensión TD-PSOLA

FD-PSOLA

Page 58: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 58

Se muestra en la

Fig. 23 la comparación entre las respuestas de la segunda pregunta, la cual evaluó el esfuerzo de

escucha para entender la esencia del mensaje.

Fig. 23. Resultados pregunta 2. Esfuerzo de escucha

La tercera pregunta consistió en valorar la nitidez de las palabras que escuchaban, las respuestas a

esta pregunta se comparan en la Fig. 24.

0

37,5

56,25

6,25

00

50

37,5

12,5

00

10

20

30

40

50

60

Descansoabsoluto

Atenciónnecesaria

EsfuerzoModerado

Esfuerzoconsiderable

Incomprensible

Po

rcen

taje

Esfuerzo de escucha TD-PSOLA

FD-PSOLA

Page 59: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 59

Fig. 24. Resultados respuesta 3. Nitidez

La última pregunta evaluada fue si la voz sintetizada podría utilizarse para algún tipo de servicio

comercial como una contestadora automática o servicios de ayuda para personas con dificultades

en el habla. Las respuestas se encuentran comparadas en la

Fig. 25.

0

18,75

50

31,25

0

6,25

12,5

56,25

25

00

10

20

30

40

50

60

Si, muy claros Suficientementeclaros

Medianamenteclaros

No muy claros No, en absoluto

Po

rcen

taje

NitidezTD-PSOLA

FD-PSOLA

0

6,25

68,75

25

6,25 6,25

37,5

50

0

10

20

30

40

50

60

70

80

SI, para cualquierservicio

si, solo en servicioscomerciales

si, solo ayuda adiscapacitados

No, para ningunservício

Po

rcen

taje

Aceptación

TD-PSOLA FD-PSOLA

Page 60: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 60

Fig. 25. Respuestas pregunta 4. Aceptación

De acuerdo a los resultados obtenidos en las pruebas, se procede a realizar los diagramas de caja y

bigotes para cada pregunta, como se muestra a continuación:

Fig. 26. Diagramas de cajas y bigotes. a) Dificultades de comprensión. b) Esfuerzo de escucha. c) Nitidez.

Page 61: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 61

d) Aceptación.

IX. ANÁLISIS DE RESULTADOS

A. Implementación de los algoritmos TD-PSOLA y FD-PSOLA.

Para realizar el análisis comparativo entre los algoritmos TD-PSOLA y FD-PSOLA se escogió

como ejemplo el audio de la palabra ‘baile”. De acuerdo al funcionamiento de cada algoritmo

descrito en la metodología, se hace un promedio de las frecuencias de los difonemas que conforman

la palabra, de acuerdo a la TABLA I la frecuencia fundamental promedio es de 96.915 Hz. Fig. 14

(b) muestra que la frecuencia fundamental de la palabra fue ajustada por el TD-PSOLA y dio como

resultado una frecuencia de 95.32 Hz, con un porcentaje de acierto de 98,35 %. La Fig. 14 (c)

muestra que la frecuencia fundamental de la palabra fue ajustada por el FD-PSOLA y dio como

resultado una frecuencia de 94.12 Hz, con un porcentaje de acierto de 97,11 %. Ambos métodos

realizaron un ajuste muy aproximado a la frecuencia promedio que se requería y esto se ve reflejado

en los valores obtenidos al calcular los porcentajes de acierto. Lo anterior se puede confirmar

realizando el mismo análisis comparativo con los espectros de las palabras “diccionario” y

“espectro”, las cuales tienen mayor dificultad en términos de dicción y de acuerdo a los resultados

obtenidos se concluye que los porcentajes de acierto de ambos algoritmos están por encima del

94%.

Se decidió analizar el comportamiento de las frecuencias en el tiempo de los dos algoritmos, ya

que auditivamente se puede apreciar que el FD-PSOLA modifica de alguna forma en frecuencia la

señal sintetizada respecto al TD-PSOLA, en el cual no se aprecia esto auditivamente. En la Fig. 14

(c) se observa que el algoritmo FD-PSOLA introduce frecuencias en un rango aproximado de 20-

80Hz y al comparar la Fig. 17 y Fig. 18, se observó que el FD-PSOLA introduce armónicos por

encima de 15kHz en algunos instantes de tiempo como lo muestra la región 1 de la Fig. 18, mientras

que en otros instantes de tiempo atenúa frecuencias también por encima de los 15kHz como se

muestra en la región 2 de la misma figura. Este comportamiento también se puede apreciar en los

espectrogramas del Anexo 12. Espectrogramas, de las palabras “cliente”, “espectro” y

“diccionario”, al comparar los espectrogramas del TD-PSOLA con los del FD-PSOLA se puede

ver cómo en algunas regiones por encima de los 15kHz se introducen o atenúan frecuencias.

Page 62: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 62

Se evidencia en la Fig. 19 que existen variaciones de amplitud entre las señales sintetizadas y la

señal original. Esto puede ocurrir por varias razones, una de ellas es el hecho de que cada difonema

se extrajo de una palabra portadora diferente, es decir, por más que se quiera comparar con la señal

original, los audios de los difonemas que la componen son diferentes a los audios de los difonemas

con los cuales se reconstruye la señal, esto se observa comparando los valores de amplitud de los

picos de la señales que se encuentran en la Fig. 20.

Otra razón que contribuye y que afecta por igual al TD-PSOLA y al FD-PSOLA, es la función de

concatenación ‘conct’ la cual crea un cross-fade a partir de una ventana Hanning para concatenar

los difonemas que contiene la palabra que se está procesando. En dicha función se hace un

solapamiento del 50%, sin embargo, como cada difonema fue extraído de una palabra diferente, al

realizar la suma del solapamiento no se realizará una correcta compensación de amplitud, pero si

se evitará un cambio brusco de ésta entre cada difonema.

De acuerdo a la Fig. 19, se observa que la duración de la señal sintetizada es diferente respecto a

la señal original, en el TD-PSOLA es de 0.4407s y tiene una diferencia con la original de 0.1982s.

Esto ocurre porque la modificación del pitch de cada difonema se está haciendo en el dominio

temporal aplicando un factor de compresión o expansión según el pitch deseado, lo cual afectará

la duración de cada difonema y por lo tanto la duración de la palabra final al concatenar los

difonemas.

En el caso del FD-PSOLA la modificación de pitch se realizó escalando la frecuencia y la fase en

el dominio de la frecuencia, sin embargo, esta operación se está viendo reflejada en el dominio

temporal, de acuerdo a [17], esto puede ocurrir debido a que el método de modificación de pitch

por medio de compresión – expansión, puede verse como equivalente de un método en el dominio

del tiempo. Además, en [25] se explica que el pitch shifting de un phase vocoder está directamente

relacionado con el método del time Stretching.

Sin embargo al comparar la Fig. 19 (b) y (c), se puede observar que cada señal sintetizada tiene

una duración de 0.4407s y 0.4569s respectivamente, la diferencia entre estas duraciones es muy

Page 63: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 63

pequeña, lo que da a entender que los dos algoritmos afectan de forma muy similar el dominio

temporal, esto también se ve reflejado en las forma de onda de las dos figuras.

B. Tiempo de ejecución

Observando los resultados obtenidos en la TABLA IV se concluye que en general el algoritmo FD-

PSOLA consume más recursos computacionales que el TD-PSOLA, debido a las operaciones que

se realizan en el dominio de la frecuencia. Lo anterior se hace más evidente cuando se aumenta el

número de letras en la frase, ya que se observa que el tiempo de ejecución del FD-PSOLA llega a

duplicar y hasta triplicar el tiempo de ejecución del TD-PSOLA con la misma cantidad de letras.

C. Prueba subjetiva

1) Dificultades de comprensión

De acuerdo a la

Fig. 22 para ambos algoritmos, el mayor porcentaje de población correspondiente al 50% respondió

que “de vez en cuando” se encontraron palabras difíciles de entender. En base a la Fig. 26 (a) se

comparan las cajas asociadas a los dos algoritmos, se evidencia que para ambos las respuestas están

concentradas entre las opciones 3 y 4. Aunque la forma de las cajas es igual, se puede observar que

existen respuestas atípicas para el algoritmo TD-PSOLA y por lo tanto son más dispersas. Con esto

también se puede afirmar que las respuestas del FD-PSOLA tienden a la opción 3 donde se

encuentra el 50% de las respuestas.

2) Esfuerzo de escucha

Teniendo en cuenta la

Fig. 23, se observa que hay un mayor porcentaje de participantes que indicaron la respuesta

“esfuerzo moderado” en el TD-PSOLA, lo que indica que los participantes tuvieron que esforzarse

un poco más que en el FD-PSOLA para entender el mensaje, ya que en éste el mayor porcentaje

de participantes indicó que solo se requirió “atención necesaria” para entender el mensaje.

Page 64: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 64

Lo anterior también se evidencia en la Fig. 26 (b) donde se observa que la mediana de la caja del

FD-PSOLA es menor a la del TD-PSOLA, esto indica que el 50% de las respuestas del FD-PSOLA

están concentradas en opciones más bajas, donde se establece que hay un menor esfuerzo de

escucha para comprender la esencia del mensaje. También se visualiza que las respuestas están

entre las opciones 2 y 4 para ambos algoritmos, lo que revela que con cierto grado de esfuerzo se

logran entender todas las palabras sintetizadas.

3) Nitidez

Observando la Fig. 24 se entiende que el mayor porcentaje de población en ambos algoritmos,

indicaron que los sonidos eran “medianamente claros”, sin embargo, hay una diferenciación en la

tendencia de las respuestas que se puede observar en la Fig. 26 (c), donde las respuestas para el

algoritmo TD-PSOLA se concentran en las opciones de nitidez intermedia, pero en el algoritmo

FD-PSOLA existen valores atípicos en las opciones 1 y 2, lo que hace que la concentración de las

respuestas esté dirigida hacia las opciones de baja nitidez.

4) Aceptación

Para el TD-PSOLA se obtuvo un porcentaje predominante en la opción 3, como se muestra en la

Fig. 25, el 68.8% de los participantes indicaron que este método podría ser usado en servicios de

ayuda para personas con dificultades visuales o en el habla. Mientras que en el FD-PSOLA el

porcentaje mayor de los participantes no aceptó el método para ningún tipo de servicio, sin

embargo, un porcentaje significativo también indicó la misma respuesta del TD-PSOLA.

En la Fig. 26 (d), con el tamaño de la caja se evidencia la concentración de las respuestas en la

opción 3 para el método TD-PSOLA como se habló anteriormente, pero también se observa una

mayor variabilidad en las respuestas obtenidas para el método FD-PSOLA debido al tamaño de la

caja y a que se tienen valores atípicos en la opción 1. No se cuenta con un bigote superior ya que

la mayoría de las respuestas están concentradas en el valor máximo que sería la opción 4.

Page 65: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 65

4) Sección escrita

De acuerdo a la

Fig. 21, el porcentaje de aciertos en el TD-PSOLA fue de 83% y en el FD-PSOLA fue de 84%, esto

indica que las personas podían identificar de forma casi satisfactoria todas las palabras que se

pedían escribir. Debido a que los porcentajes de errores fueron tan bajos, se puede decir que con

los dos algoritmos es posible transmitir de forma correcta un mensaje.

Page 66: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 66

X. CONCLUSIONES

Al comparar los algoritmos TD-PSOLA y FD-PSOLA objetivamente, se puede concluir que

realizan el cambio de la frecuencia fundamental con mucha exactitud, por esto es que presentan

porcentajes de aciertos superiores al 94%, esto quiere decir que sus diferencias son poco

significativas al realizar este proceso.

El TD-PSOLA modifica el dominio temporal de forma similar al FD-PSOLA, esto se evidencia de

varias formas, la primera es que se obtienen diferencias de tiempo pequeñas al comparar la longitud

de las señales sintetizadas. La segunda es que al comparar las formas de onda se observan

comportamientos similares de la envolvente de amplitud.

Las diferencias significativas que tienen los dos algoritmos se ven reflejadas en el tiempo de

ejecución, ya que el FD-PSOLA al trabajar en el dominio de la frecuencia incrementa

considerablemente el costo computacional respecto al TD-PSOLA, llegando a duplicar y hasta

triplicar el tiempo de ejecución.

Otra diferencia significativa entre los algoritmos es que el FD-PSOLA puede introducir o atenuar

frecuencias que no se ven alteradas en el TD-PSOLA, esto puede afectar de forma negativa la

calidad vocal del sintetizador.

Los participantes respondieron tres de cuatro preguntas de manera similar para ambos algoritmos

y en la prueba escrita también acertaron de igual manera para ambos, esto evidencia que en

términos generales, aunque las palabras no fueran tan claras y se dificultara su entendimiento, las

personas entendían el mensaje básico y diferenciaban las palabras con ambos algoritmos. Sin

embargo, se refleja una preferencia por el algoritmo TD-PSOLA en cuanto a la aceptación para el

uso de este en dispositivos que ayuden a personas discapacitadas.

La implementación de los algoritmos FD-PSOLA y TD-PSOLA para la concatenación de

difonemas, no son suficientes para proporcionar una buena calidad vocal del sintetizador, esto se

debe a que estos algoritmos brindan homogeneidad en la frecuencia de la palabra sintetizada, sin

Page 67: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 67

embargo, la voz aún sigue careciendo de entonación e intención, por tal razón se ve absolutamente

necesario la implementación del módulo de prosodia en el sintetizador para que pueda mejorar esta

carencia.

Page 68: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 68

REFERENCIAS

[1] H. Duxans Barrobés y M. Ruiz Costa-jussá, «Síntesis del habla,» de Procesamiento de audio,

Barcelona, Eureca Media, 2012.

[2] I. Iriondo, J. Martí, J. Oliver, R. Guaus y H. Moure, «Hacia una síntesis concatenativa de alta

calidad para aplicaciones de conversión texto-habla,» Procesamiento del lenguaje natural,

vol. 25, pp. 109-114, 1999.

[3] J. C. Pérez Cortés y J. L. Bullón Miró, «Conversión de texto a voz en castellano aplicando el

algoritmo PSOLA,» Procesamiento del lenguaje natural, vol. 14, pp. 217-231, 1994.

[4] R. A. Garcia Ocampo, Sintesis de voz en español (Trabajo de Grado ), México D. C.: Unidad

Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas, 2005.

[5] N. Rojas, M. A. Blondet y E. Mora, «Diccionario de difonos de sintetizador de voz "SEVEN".

Manual de instalación y de uso,» Lengua y Habla, vol. 16, pp. 172-185, 2012.

[6] H. Duxans Barrobés y M. Ruiz Costa-jussá, «Introducción al habla,» de Procesamiento de

audio, Barcelona, Eureca Media, 2012, pp. 7-17.

[7] J. Marti Roca, «Situación actual de la síntesis de voz,» Estudios de Fonética Experimental,

vol. 4, pp. 148-166, 1990.

[8] J. Martí Roca y D. Niñerola Chifoni, «SINCAS: un conversor texto-voz en castellano,»

Procesamiento del lenguaje natural, vol. 05, pp. 111-112, 1987.

[9] C. Correa, H. Rueda y H. Argüello, «Síntesis de voz por concatenación de difonemas para el

español de Colombia,» Sistemas, cibernética e informática, vol. 7, nº 1, pp. 19-24, 2010.

[10] J. Listerri, «La síntesis del habla: Estado de la cuestión,» Procesamiento del Lenguaje

Natural, vol. 6, pp. 17-41, 1988.

[11] S. Jordá Puig, «Síntesis y generación digital del sonido,» de Audio digital y MIDI, Madrid,

Anaya Multimedia, 1997.

[12] J. M. Conejo, «Desarrollo de un conversor de texto a voz en español dentro de una

arquitectura multilingüe,» Procesamiento del lenguaje natural, vol. 11, pp. 221-227, 1991.

[13] J. M. Montero Martinez, «Speech Technology Group,» 2015. [En línea]. Available:

https://goo.gl/ZSnFoU.

Page 69: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 69

[14] A. Jaén Gómez, Adaptación del sistema Texto a Voz "Festival" al Catalán, Cataluña:

Universidad Politécnica de Cataluña, 2007.

[15] N. Schnell, G. Peeters, S. Lemouton, P. Manoury y X. Rodet, «Synthesizing a choir in real-

time using Pitch Synchronous Overlap Add (PSOLA),» de Proceedings of the INternational

Computer Music Conference, San Francisco, 2000.

[16] D. J. Hejna, Real-Time Time-Sacale Modification of Speech via the Synchronized Overlap-

Add Algorithm (Tesisi de Maestría), Massachusetts: Massachusetts Institute of Technology.

Dept. of Electrical Engineering and Computer Science, 1990.

[17] E. Moulines y F. Charpentier, «Pitch-Synchronous waveform processing techniques for text-

to-speech synthesis using diphones,» Speech Communication, vol. 9, pp. 453-467, 1990.

[18] Y. Stylianou, J. Schroeter y T. Dutoit, «Diphone Concatenation using a Harmonic plus Noise

Model of Speech,» de Eurospeech, Rodas, 1997.

[19] J. Gordon y J. Strawn, An introduction to the phase vocoder, Stanford: CCRMA, 1987.

[20] MathWorks, «Matlab,» [En línea]. Available: https://goo.gl/N3QfyK.

[21] J. Llisterri y D. Poch, Caracterización fonética del bilingüismo, análisis acústico del habla

espontánea y evaluación de sistemas de síntesis de habla, Barcelona, 1991.

[22] Unión Internacional de Telecomunicaciones, Método para la evaluación subjetiva de la

calidad vocal de los dispositivos generadores de voz, UIT, 1994.

[23] N. Rojas, M. A. Blondet y E. Mora, «Lengua y Habla,» Revista del centro de investigación

y atención lingüística C.I.A.L, 2012. [En línea]. Available: https://goo.gl/WGW1z6.

[24] O. Cáceres Ramírez, «Cómo separar en sílabas,» About, Inc, [En línea]. Available:

https://goo.gl/tsfJu5.

[25] J. Wiley & Sons, Dafx-Digital Audio Effects, West Sussex: Jhon Wiley & Sons, Ltd, 2002.

[26] J. a. García, A. Reding y L. Juan Carlos, «Cálculo del tamaño de la muestra en investigación

de educación médica,» Metodología de Investigación en Educación Médica, vol. 8, pp. 217-

224, 2013.

[27] Diferenciaentre.info, «Diferencia entre hiato y diptongo,» 2014. [En línea]. Available:

https://goo.gl/9PNHvz.

Page 70: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 70

[28] J. L. Bullón y J. C. Pérez, «Conversión de texto a voz en castellano aplicando el algoritmo

PSOLA,» pp. 217-231, 1994.

[29] L. Demri, L. Falek, H. Teffahi y A. Djeradi, «Determination of Variation Ranges of the Psola

Transformation Parameters by Using Their Influence on the Acoustic Parameters of Speech,»

Lecture Notes on Information Theory, vol. 2, nº 1, pp. 61-67, 2014.

[30] L. Aguilar, J. M. Fernámdez, J. M. Garrido y J. Llisterri, «Diseño de pruebas para la

evaluación de habla sintetizada en español y su aplicación a un sistema de conversión de

texto a habla,» de Actas del X Congreso de la Sociedad Española para el Procesamiento del

lenguaje Natural, Córdoba, 1994.

[31] T. Dutoit y H. Leich, «MBR-PSOLA text-to-speech synthesis based on an MBE re-synthesis

of the segments database,» Speech Communication, vol. 13, pp. 435-440, 1993.

Page 71: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 71

ANEXOS

Anexo 1. Lista de difonemas con su frase portadora.

Difonema Frase portadora

_a atento

_A apto

aa laatajada

AA estarahabidadeemociones

aA albahaca

Aa vaalacasa

ae laestrella

Ae trae tres veces

aE poesiaépica

AE obtendráéxito

aI distraído

AI sevaipsofacto

Aj baile

aj laidea

ao lahormiga

Ao cacao tres veces

aO caoba

AO comeráostras

aU aúlla

AU comeráuvas

Aw Paula

aw auxilio

aB lavanda

AB acaba

ak aquí

Ak paca

aC fachada

AC empacho

aD pradera

AD cuidado

af fotografía

Af bibliográfico

aG esófago

AG estrago

ah lagitana

Ah bajo

al circunvalación

Al carnavaltaurino

aL lalluvia

AL calle

am camarón

Am samba

an candado

An santo

aJ cañada

AJ aledaño

ap amapola

Ap capa

ar caravana

Ar cara

aR agarró

AR catarro

as pasado

As tasa

az castrado

Az catastro

at platería

At informática

a_ anécdota tres veces

A_ el dirá tres veces

_e elemental

_E ébano

ee leexplicó

EE compraréébano

eE dehecho

Ee comeréespinacas

ea leavisó

Ea jalea tres veces

eA lehabla

EA lodiréalgo

eI comehigos

EI buscaréhigos

ej aceite

Ej reido

eo leocultalaverdad

Eo camafeo tres veces

eO seodian

EO busquéoro

ew rehusar

eU esdeusocomún

EU diagnostiquéúlcera

Ew deuda

eB abreviatura

EB zebra

ek reconstruir

Ek récord

eC cosechó

EC flecha

eD tediosa

ED cede

ef preferencia

Ef benéfica

eG alegó

EG agrega

eh ejecuta

Eh abeja

el celoso

El célebre

eL apellido

EL creyendo

em memorable

Em académico

en envenenar

En abolengo

eJ señalé

EJ merideño

ep reparar

Ep intrépido

er perol

Er pera

eR derrumbarse

ER perro

es sesenta

Es queso

ez Jueves temprano

Ez orquesta

et detectó

Et machete

e_ siguiente tres veces

E_ terminé tres veces

_i iracundo

_I Íngrimo

ia díadejúbilo

IA cogíalgo

iA diario

Ia viajero

ie fríe tres veces

Ie adiestrado

iE grieta

IE díéxito

Page 72: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 72

ii antihigiénico

II chiíta

Ii unjabalíibérico

io vacío tres veces

jo incendio tres veces

jO antibiótico

IO ledíoro

ju ciudadanía

jU viuda

Iu vivíurbanamente

IU cogíuvas

iB caribeño

IB almibar

ik acuático

Ik chico

iC chichero

IC bicho

ID accidente

iD aburrido

if amplifica

If frigorífico

iG figura

IG bígamo

ih quijada

Ih baratija

il estilístico

Il pabilo

iL piyama

IL hebilla

im homónima

Im primo

in suministró

In espina

iJ aliñó

IJ tiña

ip múltiple

Ip disipa

ir abriré

Ir aspira

iR irreal

IR pírrica

is misión

Is adoradísima

iz historia

Iz abismo

it gitano

It dermatitis

i_ Magaly tres veces

I_ alhelí tres veces

_o orígen

_O orbe

oo cooperar

OO tomóocholibros

oO comoostras

Oo rezóoraciones

oa digoaleluya

Oa anchoas tres veces

oA Anzoátegui

OA tomóagua

oe tengohelados

Oe oboe tres veces

OE medioevo

oE oyóecos

oj hagohistorias

OI volóícaros

oI egoísmo

Oj voy tres veces

ow comproutensilios

oU tuvoúlcera

OU regalóuvas

ow bou

oB gobierno

OB acróbata

ok época

Ok boca

oC bochando

OC bizcocho

oD acomodado

OD podan

of bofetón

Of alcachofa

oG filmografía

OG ahoga

oh aflojándola

Oh cojo

ol malgastándola

Ol melancólico

oL abollado

OL cebolla

om acomete

Om abomba

on condena

On pone

oJ otoñal

OJ carroña

op soplando

Op sopa

or poroso

Or mejoras

oR borracho

OR recorre

Os primorosa

oz loscuatro

Oz costa

ot escotado

Ot botas

o_ canto tres veces

O_ cantó tres veces

_u universidad

_U único

Ua acentúa tres veces

wA acuario

wa acuarela

UA bambúapto

Ue efectúe tres veces

we acueducto

wE elocuencia

UE tabúépico

Uj tepuy tres veces

wI ruido

Uo flúor

wo individuo tres veces

wO evaluó tres veces

UO hindúobra

uu tribuusurpada

uU tribuúnica

Uu Perúurbano

UU bambúúnico

uB cubano

UB cuba

uk eucarístico

Uk peluca

uC escuché

UC cartucho

UD judío

uD acude

uf bufón

Uf trufa

uG lugar

UG arruga

uh empujón

Uh aguja

ul adulador

Ul adúltero

uL puyero

UL apabulla

um presumida

Um resumen

un lunar

Un segúncontaron

Page 73: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 73

uJ cuñado

UJ puño

up Upata

Up lupa

ur mesurado

Ur fritura

uR aburrido

UR discurre

us gusano

Us abuso

uz gustar

Uz acústica

ut irrefutable

Ut astuta

u_ tribu tres veces

U_ bambú tres veces

_b balcón

ba unvacío

bA unbarco

Ba aprueba

BA acabar

BB obvio

Bk clubcostabrava

BD abdominal

be unvenezolano

Be adobe tres veces

BE esbelto

BG subglacial

bi unvisionario

Bi aeróbicos

bI alambique

BI abismo

Bh objetiva

bl unblandocolchón

Bl biblioteca

BL abyecto

Bm submarino

Bn clubnaútico

bo bombonera

bO unbólido

Bo abogado

BO futbol

Bp subproducto

br alfombrado

Br abrigo

Bs subsecretario

Bz obstruye

Bt obtuso

bu ambulancia

Bu abultada

bU bambúgrueso

sU abuso

_k canto

ka uncamino

kA un cántico

kD anécdota

kl pasóclandestinamente

kn técnica

ko lacolita

kO Cocacola

kr acremar

ks acción

kt abstracto

ku acumular

kU lacuna

k_ coñac tres veces

_C choza

Ca muchapena

CA achaca

Ce afiche grande

CE desmanchétodo

Ci eschiquito

CI vendochicha

Co unchocolate

CO aprovechótodo

Cu enchufado

CU pechuga

_d dorado

da mandarina

dA ahondarendetalles

Da atodaprisa

DA verdadamedias

DB inadvertido

de undedal

De verdeclaro

dE merendétarde

DE academia

Df ciudadfantástica

DG verdadgallega

di undinero

Di arrodillar

dI vendítodo

DI pedido

Dh adjetivo

Dl ciudadlarense

DL nimiedadllamativa

Dm administrar

Dn verdadnegada

dJ DavidÑuño

do acelerandopoco

Do acabadodeprimera

dO undogma

DO rodóporlaescalera

Dp sociedadpermisiva

Dk adquiere

dr almendrasabrosa

Dr edredón

DR caridadrara

Ds adsorbe

Dz adstrato

Dt variedadtabacalera

du undulcero

Du adulador

dU conducto

DU acueducto

D_ verdadtresveces

_f foto

fa factor

fA fácil

fk Kafka

fe aferrado

fE afecto

fG afgano

fi final

fI afino

fl flaco

fo fósforo

fO fósil

fr frasco

ft oftalmólogo

fu bifurcación

fU furia

_g gato

ga vengan

gA bengala

Ga agachada

GA pegaba

Gd Magdalena

ge unguerrero

gE enguerra

Ge laguerrilla

GE laguerra

gi conguitarra

gI unguiso

Gi aguijón

GI esguince

gl unglosario

Gl aglomeración

Gm diafragma

Gn digno

Page 74: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 74

go mangodelárbol

gO congoja

Go agobiado

GO despegótemprano

gr cangrejo

Gr emigrante

Gs gángster

Gt Washington

gu ungusano

gU ninguno

Gu argumento

GU aguja

_h Japón

ha cajaclara

hA acobijarelcuerpo

hB relojblanco

hk relojcasio

hD relojdorado

he enJerusalen

hE mijefe

hf carcajfino

hg carcajgrande

hi unajirafa

qI ajíverde

hh bojgigante

hl carcajlargo

hL relojllamativo

hm carcajmarrón

hn relojnacarado

ho ajomolido

hO jojoto

hp carcajpesado

hR carcajrojo

hs relojseiko

ht carcajtrenzado

hu eljudaísmo

hU julio

h_ relojtresveces

_l lámpara

la caladora

lA unlazo

lB albañil

lk alcabala

ld caldo

le deletrear

lE caletre

lf alfabeto

lG colgar

li religioso

lI melisa

lh eljueves

ll ellunes

lL árbolllamativo

lm almacén

ln balneario

lJ elñame

lo abuelopaterno

lO pelota

lp alpargata

lR alrededor

ls balsa

lt cultura

lu voluptuosa

lU alúde

l_ pañaltresveces

_L llamativo

LA hallaca

La payasada

Le allegado

LE atropellétarde

Li onomatopéyico

LI apellido

Lo mayoría

LO rayoso

Lu ayudándola

LU lalluvia

_m mártir

ma camaleón

mA temático

mb chimbo

me dametres

mE Mérida

mi contaminada

mI lamisa

ml Kremlin

mL albúmllamativo

mm gamma

mn alumna

mo sémola

mO terremoto

mp desempeño

ms albumsencillo

mt albumtirado

mu inmuniza

mU acumula

m_ albùmtresveces

_n natural

na panadero

nA neonato

nb bienvenida

nk encapotado

nd colgando

ne panetón

nE panela

nf anfibio

ng acongojado

ni botánico

nI canícula

nh ajonjolí

nl circunloquio

nL conlleva

nm comúnmente

nn innato

nJ unñoqui

no panorama

nR enredo

ns ansiedad

nS2 inscribir

nt canto

nu enumera

nU anuda

_J ñapa

Ja diseñadora

JA añada

Je gruñesiempre

JE añejo

Ji reñidor

JI añicos

Jo niñopequeño

JO seadueñótodo

Ju amuñuñar

JU greñuda

_p parásito

pa capataz

pA apático

pe copetuda

pE tapete

pi salpicado

pI papitas

pl acoplado

pn hipnótico

po popular

pO adiposo

pr aprecia

ps colapso

pt abrupta

pu cúpula

pU apuro

ra araguaney

rA carato

Page 75: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 75

rB absorber

rk mercado

rD verdoso

re marejada

rE careta

rf huérfana

rG encargan

ri caribeño

rI jurídico

rh conserje

rl arlequín

rL jugaryoyo

rm ermitaño

rn adornar

rJ comerñame

ro perorata

rO perola

rp cuerpo

rR tomarron

rs dispersa

rt abortar

ru cirujano

rU Carúpano

r_ dormirtresveces

_R ramo

Ra sinrazón

RA arrasa

Re alrededor

RE agarrétres

Ri enriquece

RI sonrisa

Ro cigarrocubano

RO alrojovivo

Ru carrusel

RU arruga

_s santo

sa pasadera

sA asado

za lasagujas

zA tomasagua

zB esbelto

zk asqueroso

zD desde

se cacerola

sE acusérecibo

ze vaselegante

zE juegaséstas

zf asfalto

zG arriesga

xi adversidad

sI abusivo

zi dosimágenes

zI treshijos

zh desjuntar

zl traslado

zL desyerbar

zm turismo

zn cisne

zJ losñames

so insonoro

zO losocho

zp áspera

zR Israel

zs loszapatos

zt instante

su apresurado

sU casucha

zu lasubique

zU lasurge

z_ vivimostresveces

_t taladro

ta cántaro

tA incontestable

tB fútbol

tD postdata

te cantería

tE sestero

tG postgrado

ti articulado

tI abatido

tl atlántico

tm aritmética

tn etnólogo

to historietas

tO católico

tp postpalatal

tr introduce

tu tarántula

tU soltura

wk eucalipto

pj piedad

pw puerto

p_ Merenaptresveces

bE unbeso

bj colombiana

bw buenosdias

Bf subfiador

Bj agobiado

Bw abuelo

tj tierno

tw tuerto

t_ Conicittresveces

dj undiario

dw duerme

Dd Madriddedía

DC ardidchiflado

Dj odian

Dw adueño

ke asqueroso

kE busquétresveces

ki quijada

kI aquítresveces

kG elConacguía

kC elConacchantajea

kf elConacfía

kh elConacjamás

km Acmé

kL elConacllama

kR elConacruega

kj quieto

kw cuero

gj guia

gw guaro

Gj meestabaguiando

Gw laguardia

Cj Chiapas

Cw chueco

C_ Estruchtresveces

fj confianza

fw fuego

sO sopa

sj losiento

sw suerte

zo tienesocumo

zC loschorros

zj lashierbas

zw loshuevos

hC relojchico

hw juego

md albumdecoroso

mk albumcaro

mg albumglorioso

mC albumchamuscado

mf albumfino

mh albumjamás

mR albumraro

mj miente

mw muévase

nO nodo

np panprimero

Page 76: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 76

nC panchoreado

nj nieto

nw nuera

n_ me duermo (pan)

kp elConacpuede

kB elConacbrinda

kk elConacconoce

_w huevos

_j hiede

lj lienzo

lw luego

Lw llueve

Rj riega

Rw ruega

lC elchocolate

rC archifonema

jp naipe

jB Maracaibo

jt gaitera

jD traidor

jk arcaica

jG arraigado

js paisano

jz aislado

jh azerbaijano

jm caimán

jn envainar

jl bailaba

jL maillot

jr LaGuaira

j_ reytresveces

wp aupar

wB chauvinista

wt flauta

wD fraudulento

wG inaugura

wC reencauchado

ws nauseas

wz austero

wh Araujo

wm traumático

wn sauna

wl jaula

wL maullido

wf eudórico

wr europeo

wR aurragada

w_ miautresveces

pp chipplástico

pB chipbasado

II Camurííba

wi ajuiciar

rj caries

rw ciruela

Iw kiwi

iw casihuele

uj elímpetuhiere

Anexo 2. Código Tokenizador

function [ FraseCell ] = token(frase)

sz=1;%Contador del tamaño del cell Array

c=0;%Variable para recorrer las filas de cada vector del Cell Array

%Ciclo para almacenar cada palabra en una columna del Cell Array

for i=1:length(frase)

%Corta el ciclo para no crear columnas adicionales al final

if i == length(frase)

break

end

%Almacena las palabras cuando hay puntos y comas

if frase(1,i)== 44 || frase(1,i)== 46

FraseCell(1,sz)={frase(c+1:i-1)};

FraseCell(1,sz+1)={frase(i)};

FraseCell(1,sz+2)={frase(i+1)};

c=i+1;

sz=sz+3;

%Almacena las palabras cuando solo hay espacios

else if frase(1,i)== 32 && (frase(1,i-1))~=44 && (frase(1,i-1))~=46

FraseCell(1,sz)={frase(c+1:i-1)};

FraseCell(1,sz+1)={frase(i)};

c=i;

Page 77: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 77

sz=sz+2;

end

end

end

%Almacena la última columna dependiendo si es un signo de puntuación o una

%palabra

if frase(1,length(frase))==44 || frase(1,length(frase))==46

FraseCell(sz)={frase(c+1:i-1)};

FraseCell(sz+1)={frase(i)};

else

FraseCell(sz)={frase(c+1:i)};

end

end

Anexo 3. Reglas gramaticales para dividir en sílabas

Reglas básicas

Regla 1: todas las vocales pueden formar sílabas por sí mismas.

Ejemplo: a-ten-to, u-no

Regla 2: todas las sílabas deben estar compuestas al menos por una vocal.

Ejemplo: ca-mi-se-ta, pa-la-bra

Regla 3: una consonante o más escrita al inicio de una palabra forma sílaba con la vocal posterior.

Ejemplo: bo-ta, pre-sa

Regla 4: toda consonante o secuencia de consonante que se encuentre al final de una palabra se

une con la vocal anterior para formar sílaba.

Ejemplo: co-la-bo-rar, a-zul

Regla 5: cuando una consonante se encuentra entre dos vocales, forma sílaba con la vocal

siguiente.

Ejemplo: é-po-ca, i-ni-cio

Reglas en casos especiales

Page 78: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 78

Regla 6: los grupos constituidos por br, cr, dr, gr, fr, kr, tr y bl, cl, gl, fl, tl, pl, son siempre

inseparables y forman sílaba con la vocal que les sigue.

Ejemplos: co-fre, la-drón, pla-to, fran-cés

Regla 7: los grupos consonánticos que son diferentes a los mencionados en la regla 6 pertenecen

a sílabas distintas.

Ejemplos: hip-no-sis, ac-to, pes-car.

Hiato

Se habla de un hiato cuando dos vocales contiguas pertenecen a distintas sílabas, es decir, los hiatos

sí se separan. Un hiato se forma cuando se presenta una unión entre dos vocales abiertas (a, e, o),

dos vocales cerradas iguales (ii, uu) o cuando hay una combinación entre una vocal abierta y una

cerrada, pero la cerrada se encuentra tildada [27].

Ejemplos: ma-re-o, si-co-lo-gí-a, baúl.

Diptongo

Se habla de un diptongo cuando hay dos vocales seguidas y éstas no se separan. Se forma cuando

las dos vocales son una vocal abierta y una vocal cerrada, sin importar su orden, sin embargo la

vocal cerrada no debe estar tildada. También se presenta un diptongo cuando hay dos vocales

cerradas diferentes seguidas y ninguna de ellas lleva tilde. La “y” al final de una palabra también

forma un diptongo ya que es pronunciada como un “i”.

Ejemplos: pai-sa-je, ma-gia, pau-sa, muy, in-di-vi-duo, ciu-dad [27].

Anexo 4. Código divisor de sílabas

function [ cell_silaba ] = divisor_silaba( palabra )

%divisor_silaba Esta función se encarga de separar en sílabas la palabra de

%entrada.

vocal=[97 101 105 111 117 225 233 237 243 250];

letra=[98 99 100 102 103 104 106 107 108 109 110 112 113 114 115 116 118 119 120 121

122 241];

caso4={'bl','br','dr','cr','cl','fl','fr','gl','gr','tr','pl','pr','ch'};

hiato={'ae','ao','ea','eo','oa','oe',[237,97],[237,101],[237,111],[97,237],[101,237],[1

11,237],[250,97],[250,101],[250,111],[97,250],[101,250],[111,250],[237,117],[105,250],[

250,105],[117,237],[225,101],[225,111],[97

Page 79: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 79

233],[97,243],[233,97],[233,111],[101,225],[101,243],[243,97],[243,101],[111,225],[111,

233]};

diptongo={'ia','ie','io','iu','ua','ue','ui','uo','ai','au','ei','oi','ou',[105,225],[1

05,233],[105,243],[117,225],[117,233],[117,243],[225,105],[225,117],[233,105],[243,105]

,[243,117]};

%Contadores para revisar casos

cs=1; in=0; cv=0; c4=0; ch=0; vh=0; cd=0; vd=0; cf=0; v4=0;

if length(palabra) == 1 && palabra=='y'

cell_vocal{1,1} =1;

end

%Contador de vocales

for i=1:length(vocal)

n=vocal(1,i);

pv=findstr(palabra,n);

if length(pv)~= 0

cv=cv+1;

cell_vocal{1,cv}=pv(1:length(pv));

end

end

for p=1:length(palabra)

if palabra(1,p)==44 || palabra(1,p)==46 || palabra(1,p)==32

v_vocal=0;

else

v_vocal=sort(cell2mat(cell_vocal));

end

end

%Revisa si existe el caso 5

for j=1:length(caso4)

p4=findstr(palabra,caso4{1,j});

if length(p4)~= 0

c4=c4+1;

cell_caso4{1,c4}=p4(1:length(p4));

v4=1;

end

end

%Revisa si existe hiato

for k=1:length(hiato)

h=findstr(palabra,hiato{1,k});

if length(h)~= 0

ch=ch+1;

cell_hiato{1,ch}=h(1:length(h));

vh=1;

end

end

%Revisa si hay diptongo

for q=1:length(diptongo)

d=findstr(palabra,diptongo{1,q});

Page 80: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 80

if length(d)~= 0

cd=cd+1;

cell_diptongo{1,cd}=d(1:length(d));

vd=1;

end

end

for w=1:length(v_vocal)

%Separa sílabas cuando después de la vocal hay una letra

for l=1:length(letra)

if v_vocal(1,w)+1 < length(palabra) && palabra(1,v_vocal(1,w)+1)== letra(1,l)

%Reconoce si después de la vocal hay una letra y después otra vocal

for v=1:length(vocal)

if v_vocal(1,w)+2 <= length(palabra) && palabra(1,v_vocal(1,w)+2)==

vocal(1,v)

cell_silaba{1,w}= palabra(in+1:v_vocal(1,w));

in=v_vocal(1,w);

break

end

end

%Reconoce si después de la vocal hay 2 letras

for l2=1:length(letra)

if (palabra(1,v_vocal(1,w)+2)== 108 || palabra(1,v_vocal(1,w)+2)== 114

...

|| palabra(1,v_vocal(1,w)+2)== 104) && v_vocal(1,w)+2 <=

length(palabra) && v4 == 1

cell_silaba{1,w}= palabra(in+1:v_vocal(1,w));

in=v_vocal(1,w);

break

else if v_vocal(1,w)+2 <= length(palabra) && palabra(1,v_vocal(1,w)+2)==

letra(1,l2)

cell_silaba{1,w}= palabra(in+1:v_vocal(1,w)+1);

in=v_vocal(1,w)+1;

break

end

end

end

break

%Almacena la última sílaba

else if w == length(v_vocal)

cell_silaba{1,w}= palabra(in+1:length(palabra));

end

end

end

%Separa sílabas cuando después de la vocal hay otra vocal

if v_vocal(1,w)+1 <= length(palabra) && vh==1

Page 81: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 81

%Separación de sílaba cuando existe hiato

if palabra(1,v_vocal(1,w)+1)== 97 || palabra(1,v_vocal(1,w)+1)== 101 ||

palabra(1,v_vocal(1,w)+1)== 111 ...

|| palabra(1,v_vocal(1,w)+1)== 250 || palabra(1,v_vocal(1,w)+1)== 237 ||

palabra(1,v_vocal(1,w)+1)== 225 ...

|| palabra(1,v_vocal(1,w)+1)== 233 || palabra(1,v_vocal(1,w)+1)== 243

cell_silaba{1,w}= palabra(in+1:v_vocal(1,w));

in=v_vocal(1,w);

end

%Almacena última sílaba de la palabra

else if w == length(v_vocal)

cell_silaba{1,w}= palabra(in+1:length(palabra));

end

end

end

if vd==1 && cd==1

for c=1:length(cell_silaba)

if c > length(cell_silaba)-length(cell_diptongo)

break

end

if isempty(cell_silaba{1,c})==1

cf=cf+1;

for c2=c:length(cell_silaba)-length(cell_diptongo)

cell_silaba(1,c2)= cell_silaba(1,c2+1);

end

cell_silaba=cell_silaba(1:length(cell_silaba)-length(cell_diptongo));

end

end

end

if vd==1

for c=1:length(cell_silaba)

if c > length(cell_silaba)-length(cell_diptongo)+1

break

end

if isempty(cell_silaba{1,c})==1

cf=cf+1;

for c2=c:length(cell_silaba)-length(cell_diptongo)+1

cell_silaba(1,c2)= cell_silaba(1,c2+1);

end

cell_silaba=cell_silaba(1:length(cell_silaba)-length(cell_diptongo)+1);

end

end

end

end

Anexo 5. Lista de fonemas para casos especiales

Page 82: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 82

Caso Ejemplo Fonema

ch choza /C/

gue

gui

guerra

guiso /G/

Cuando hay una vocal con

tilde

lápiz

aéreo

ladrón

música

/A/, /E/, /I/, /O/, /U/

“j” jarra /h/

y

ll

yuca

llano /L/

Si “y” está al final de la

palabra o conforma una

sola palabra

y, hay, muy, hoy /i/

io, iu, ai, ei, oi baile, ciudad /j/

ñ niña, piña /J/

Cuando “r” está al inicio

de la palabra o cuando hay

“rr”

ratón, ruina, ruido

arroz, arroyo

/R/

ua, ue, uo, au, eu, ou fuego, huerto, agua /w/

z

ci

ce

azul

cielo

césped

/s/

qu

ca

co

cu

casa

cuna

coco

queso

/k/

v vaso, vida, viaje /b/

Anexo 6. Código convertidor de fonemas.

Page 83: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 83

function [silaba] = fonema(silaba)

letra=[98 99 100 102 103 104 106 107 108 109 110 112 113 114 115 116 118 119 120 121

122 241];

for i2=1:length(silaba)

for k2=1:length(silaba{1,i2})

%Fonema /C/ para el caso 'ch'

if k2+1 <= length(silaba{1,i2}) && silaba{1,i2}(1,k2)== 'c' &&

silaba{1,i2}(1,k2+1)=='h'

silaba{1,i2}= ['C' silaba{1,i2}(1,3:length(silaba{1,i2}))];

break

end

%Cuando hay 'h'

if k2+1 <= length(silaba{1,i2}) && silaba{1,i2}(1,k2)== 'h'

silaba{1,i2}= [silaba{1,i2}(1,k2+1) silaba{1,i2}(1,3:length(silaba{1,i2}))];

end

%Fonema /G/ para el caso 'gue' 'gui'

if k2+2 <= length(silaba{1,i2}) && silaba{1,i2}(1,k2)== 'g' &&

silaba{1,i2}(1,k2+1)== 'u' && (silaba{1,i2}(1,k2+2)== 'i' || silaba{1,i2}(1,k2+2)==

'e')

silaba{1,i2}= ['G' silaba{1,i2}(1,3:length(silaba{1,i2}))];

break

end

end

end

%Acentuaciones

for i3=1:length(silaba)

for k3=1:length(silaba{1,i3})

%Fonemas /A/ para 'a' acentuada

if silaba{1,i3}(1,k3)== 'á' || silaba{1,i3}(1,k3)== 'Á'

silaba{1,i3}(1,k3)= 'A';

end

%Fonemas /E/ para 'e' acentuada

if silaba{1,i3}(1,k3)== 'é' || silaba{1,i3}(1,k3)== 'É'

silaba{1,i3}(1,k3)= 'E';

end

%Fonemas /I/ para 'i' acentuada

if silaba{1,i3}(1,k3)== 'í' || silaba{1,i3}(1,k3)== 'Í'

silaba{1,i3}(1,k3)= 'I';

end

%Fonemas /O/ para 'o' acentuada

if silaba{1,i3}(1,k3)== 'ó' || silaba{1,i3}(1,k3)== 'Ó'

Page 84: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 84

silaba{1,i3}(1,k3)= 'O';

end

%Fonemas /U/ para 'u' acentuada

if silaba{1,i3}(1,k3)== 'ú' || silaba{1,i3}(1,k3)== 'Ú'

silaba{1,i3}(1,k3)= 'U';

end

%Fonema /h/ para los casos 'j'

if silaba{1,i3}(1,k3)== 'j'

silaba{1,i3}(1,k3)='h';

end

end

end

for i=1:length(silaba)

for k=1:length(silaba{1,i})

if silaba{1,i}(1,k)== ' '

silaba{1,i}(1,k)= '_';

end

%Fonema /b/ para 'v'

if silaba{1,i}(1,k)== 'v'

silaba{1,i}(1,k)= 'b';

end

%Fonema /k/ para 'c'

if silaba{1,i}(1,k)== 'c'

silaba{1,i}(1,k)= 'k';

end

%Fonema /h/ para los casos 'ge' y 'gi'

if silaba{1,i}(1,k)== 'g' && k+1 <= length(silaba{1,i})

if silaba{1,i}(1,k+1)=='e' || silaba{1,i}(1,k+1)=='i' ||

silaba{1,i}(1,k+1)=='E' || silaba{1,i}(1,k+1)=='I'

silaba{1,i}(1,k)='h';

end

end

%Fonema /L/ para el caso 'll'

if k+1 <= length(silaba{1,i}) && silaba{1,i}(1,k)== 'l' &&

silaba{1,i}(1,k+1)=='l'

silaba{1,i}= ['L' silaba{1,i}(1,3:length(silaba{1,i}))];

break

end

%Fonema /L/ para el caso 'Y'

if silaba{1,i}(1,k)== 'y' && length(silaba{1,i})>1 && k~= length(silaba{1,i})

silaba{1,i}(1,k)='L';

end

%Fonema /i/ para el caso 'Y'

Page 85: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 85

if silaba{1,i}(1,k)== 'y' && length(silaba{1,i})==1

silaba{1,i}(1,k)='i';

end

%Fonema /j/ para el caso 'Y' al final de la palabra

if silaba{1,i}(1,k)== 'y' && i==length(silaba) && k == length(silaba{1,i})

silaba{1,i}(1,k)='j';

end

%Fonema /j/ para el caso 'io' 'iu'

if k+1 <= length(silaba{1,i}) && silaba{1,i}(1,k)== 'i'

if silaba{1,i}(1,k+1)=='o' || silaba{1,i}(1,k+1)=='u'

silaba{1,i}(1,k)='j';

end

end

%Fonema /j/ para el caso 'ai' 'ei' 'oi'

if k+1 <= length(silaba{1,i}) && silaba{1,i}(1,k+1)== 'i'

if silaba{1,i}(1,k)=='a' || silaba{1,i}(1,k)=='e' || silaba{1,i}(1,k)=='o'

silaba{1,i}(1,k+1)='j';

end

end

%Fonema /J/ para el caso 'ñ'

if silaba{1,i}(1,k)== 'ñ'

silaba{1,i}(1,k)='J';

end

%Fonema /R/ para el caso 'r' al principio de la palabra

if silaba{1,1}(1,1)== 'r'

silaba{1,i}(1,k)='R';

end

%Fonema /R/ para el caso 'rr'

if k+1 <= length(silaba{1,i}) && silaba{1,i}(1,k)== 'r' &&

silaba{1,i}(1,k+1)=='r'

silaba{1,i}= ['R' silaba{1,i}(1,3:length(silaba{1,i}))];

break

end

%Fonema /R/ cuando en la sílaba anterior hay una consonante

if silaba{1,i}(1,1)== 'r'

for l=1:length(letra)

if silaba{1,i-1}(1,length(silaba{1,i-1}))== letra(1,l)

silaba{1,i}(1,1)='R';

end

end

end

%Fonema /w/ para el caso 'ua' 'ue' 'uo'

if k+1 <= length(silaba{1,i}) && silaba{1,i}(1,k)== 'u'

Page 86: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 86

if silaba{1,i}(1,k+1)=='a' || silaba{1,i}(1,k+1)=='e' ||

silaba{1,i}(1,k+1)=='o' || silaba{1,i}(1,k+1)=='A' || silaba{1,i}(1,k+1)=='E' ||

silaba{1,i}(1,k+1)=='O'

silaba{1,i}(1,k)='w';

end

end

%Fonema /w/ para el caso 'au' 'eu' 'ou'

if k+1 <= length(silaba{1,i}) && silaba{1,i}(1,k+1)== 'u'

if silaba{1,i}(1,k)=='a' || silaba{1,i}(1,k)=='e' || silaba{1,i}(1,k)=='o'

|| silaba{1,i}(1,k+1)=='A' || silaba{1,i}(1,k+1)=='E' || silaba{1,i}(1,k+1)=='O'

silaba{1,i}(1,k+1)='w';

end

end

%Fonema /s/ para los casos 'ci' 'ce'

if silaba{1,i}(1,k)== 'k' && k+1 <= length(silaba{1,i})

if silaba{1,i}(1,k+1)=='i' || silaba{1,i}(1,k+1)=='e' ||

silaba{1,i}(1,k+1)=='í' || silaba{1,i}(1,k+1)=='é'

silaba{1,i}(1,k)='s';

end

end

%Fonema /z/ cuando 's' está al final de la sílaba

if silaba{1,i}(1,length(silaba{1,i}))== 's'

silaba{1,i}(1,length(silaba{1,i}))='z';

end

%Fonema /k/ para el caso 'qu'

if k+1 <= length(silaba{1,i}) && silaba{1,i}(1,k)== 'q' &&

silaba{1,i}(1,k+1)=='u'

silaba{1,i}= ['k' silaba{1,i}(1,3:length(silaba{1,i}))];

break

end

%Fonema /b/ y /B/

if silaba{1,i}(1,k)== 'b'

if i-1 > 0 && silaba{1,i-1}(1,length(silaba{1,i-1}))~='n' && silaba{1,i-

1}(1,length(silaba{1,i-1}))~='m' && silaba{1,i-1}(1,length(silaba{1,i-1}))~='_'

silaba{1,i}(1,k)='B';

end

end

%Fonema /d/ y /D/

if silaba{1,i}(1,k)== 'd'

if i-1 > 0 && silaba{1,i-1}(1,length(silaba{1,i-1}))~='n' && silaba{1,i-

1}(1,length(silaba{1,i-1}))~='m' && silaba{1,i-1}(1,length(silaba{1,i-1}))~='_'

silaba{1,i}(1,k)='D';

end

end

%Fonema /g/ y /G/

Page 87: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 87

if k+1 <= length(silaba{1,i}) && silaba{1,i}(1,k)== 'g' && silaba{1,i}(1,k+1)~=

'e' && silaba{1,i}(1,k+1)~= 'i'

if i-1 > 0 && silaba{1,i-1}(1,length(silaba{1,i-1}))~='n' && silaba{1,i-

1}(1,length(silaba{1,i-1}))~='m' && silaba{1,i-1}(1,length(silaba{1,i-1}))~='_'

silaba{1,i}(1,k)='G';

end

end

end

end

Anexo 7. Código de la función “periodo”

function [ p,Fo ] = periodo(cell_difonemas)

fs = 44100;

%Realiza la autocorrelacion

[r lags]= xcorr(cell_difonemas);

%Busca los picos de la señal

pks = findpeaks(r);

%Ordena los picos de la señal

orden = sort(pks);

%Segundo valor más grande de correlación

v = orden(1,length(orden)-1);

%Busca la posición de v en r

l=find(r==v);

%Periodo en muestras

p = abs(lags(l));

%Condicional para que no tome los picos que están seguidos

if p < 0.015*(length(cell_difonemas)*2)

for j=2:length(orden)/2

v = orden(1,length(orden)-j);

l=find(r==v);

p = abs(lags(l));

if p > 0.015*(length(cell_difonemas)*2)

break

end

end

end

if p<300

p=450;

Page 88: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 88

end

%Periodo en tiempo

t=p(1,1)/fs;

%Frecuencia fundamental

Fo=1/t;

end

Anexo 8. Código TD-PSOLA

function [cell_difonemas] = p_sola_pitch( cell_difonemas )

%

%p_sola_pitch Esta función permite ajustar la frecuencia fundamental de

%cada difonema a una frecuencia fundamental promedio de la palabra.

%

%VARIABLES DE LA FUNCIÓN

%

%L = Promedio de la frecuencia

%dif = Vector señal

%N = Tamaño ventana

%Sa = Hop size

%alfa = Factor de compresion o extensión

%Ss = Hop size para reconstruir la señal

%W = Ventana hanning

%Wov = Tamaño de la región de overlap

%It = Número de iteraciones

%

L=mean([cell_difonemas{1:size(cell_difonemas,1),4}]);

%Calcula el alfa para cada difonema

for m2=1:size(cell_difonemas,1)

cell_difonemas{m2,5}=cell_difonemas{m2,4}/L;

end

%Aplica el PSOLA a cada difonema

for t=1:size(cell_difonemas,1)

dif=cell_difonemas{t,2};

%Función para buscar el periodo y la Fo del difonema

[P,Fo]=periodo(dif);

N=2*P(1,1);

Sa=P(1,1);

alfa=cell_difonemas{t,5};

Ss=round(alfa*Sa);

Page 89: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 89

W=hann(N)';

Wov=N-Ss;

%Busca la posición del pico más grande de la señal en un intervalo de tiempo

[pks,pos]=findpeaks(dif(1:P(1,1)),'SortStr','descend');

It = floor(((length(dif)-pos(1,1)-N)/Sa)+1);

signal_sintesis=zeros(It+2,round(alfa*length(dif)));

%Contadores

i=0;

i2=0;

%Análisis

for k=pos(1,1):Sa:((It)*Sa)

A=dif(1,1+k:N+k);

C=W.*A;

i=i+1;

matriz_bloques{i,1}=C;

end

%Síntesis

signal_sintesis(1,1:pos(1,1)+P(1,1))=dif(1:pos(1,1)+P(1,1)).*W(N+1-

(P(1,1)+pos(1,1)):N);

for i2=1:It

signal_sintesis(i2+1,(Ss*(i2-1))+pos(1,1):N+(Ss*(i2-1))+pos(1,1)-

1)=matriz_bloques{i2,1};

end

signal_sintesis(It+2,(Ss*It)+pos(1,1):length(dif((P(1,1)*It)+pos(1,1):end))+(Ss*It)+pos

(1,1)-1) = ...

dif((P(1,1)*It)+pos(1,1):end).*W(1:length(dif((P(1,1)*It)+pos(1,1):end)));

%Suma de la matriz para obtener la señal final

signal_final=0;

for f=1:It+2

signal_final=signal_final + signal_sintesis(f,:);

end

cell_difonemas{t,6}=signal_final;

end

end

Anexo 9. Código FD-PSOLA

function [ cell_difonemas ] = fd_psola( cell_difonemas )

%

%fd_sola Esta función permite ajustar la frecuencia fundamental de

%cada difonema a una frecuencia fundamental promedio de la palabra por medio del método

FD-PSOLA.

Page 90: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 90

%

%VARIABLES DE LA FUNCIÓN

%

%prom_freq = Promedio de la frecuencia

%dif = Vector señal

%N = Tamaño ventana

%N2 = Mitad del tamaño de la ventana

%Sa = Hop size

%alfa = Factor de compresion o extensión

%W = Ventana hanning

%L = Tamaño de la señal original

%

%Promedio de la frecuencia

prom_freq=mean([cell_difonemas{1:size(cell_difonemas,1),4}]);

%Calcula el alfa para cada difonema

for m2=1:size(cell_difonemas,1)

cell_difonemas{m2,5}=(prom_freq-cell_difonemas{m2,4})/cell_difonemas{m2,4};

if cell_difonemas{m2,5} > 0

cell_difonemas{m2,5}=1+cell_difonemas{m2,5};

end

if cell_difonemas{m2,5} < 0

cell_difonemas{m2,5}=1+cell_difonemas{m2,5};

end

if cell_difonemas{m2,5} > 1.2

cell_difonemas{m2,5}=1.075;

end

if cell_difonemas{m2,5} < 0.8

cell_difonemas{m2,5}=0.925;

end

end

for d=1:size(cell_difonemas,1)

dif=cell_difonemas{d,2};

dif=dif';

Fs=44100;

%Función para buscar El periodo y la Fo del difonema

[P,Fo]=periodo(dif');

N=2*P(1,1);

N2=N/2;

L = length(dif);

Sa=P(1,1);

alfa=cell_difonemas{d,5};

W=hann(N);

dif = [zeros(N, 1); dif; zeros(N-mod(L, Sa),1)];

out_signal = zeros(length(dif),1);

%Contadores

i=0;

i2=1;

Page 91: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 91

i3=0;

%Inicialización de variables

omega = 2*pi*Sa*(0:N2-1)'/N;

phi0 = zeros(N2, 1);

r0 = zeros(N2, 1);

psi = zeros(N2, 1);

res = zeros(Sa, 1);

pin = 0;

pout = 0;

pend = length(dif)-N;

while pin<pend

%Multiplicación de cada segmento de la señal por la ventana

grain = dif(pin+1:pin+N).*W;

%FFT, magnitud y fase

fc =fft(fftshift(grain));

f = fc(1:N2);

r = abs(f);

phi = angle(f);

%Unwrap fase para obtener el incremento de la fase

delta_phi = omega + princarg(phi - phi0-omega);

delta_r = (r-r0)/Sa;

%Multiplicación de la fase por el alfa

delta_psi = alfa*delta_phi/Sa;

%Síntesis

for k = 1:Sa

r0 = r0 + delta_r;

psi = psi + delta_psi;

res(k) = r0'*cos(psi);

end

%Actualización de variables

phi0 = phi;

r0 = r;

psi = princarg(psi);

out_signal(pout+1:pout+Sa) = out_signal(pout+1:pout+Sa)+res;

pin = pin + Sa;

pout = pout + Sa;

i2=i2+1;

end

%out_signal = out_signal./max(out_signal);

cell_zeros{1,d}=find(out_signal'==0);

for i3=1:length(cell_zeros{1,d})

resta=cell_zeros{1,d}(1,i3+1)-cell_zeros{1,d}(1,i3);

if resta > 1

break

end

end

Page 92: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 92

cell_difonemas{d,7}=out_signal(cell_zeros{1,d}(1,i3):cell_zeros{1,d}(1,i3+1),1)';

end

end

Anexo 10. Código concatenación de difonemas

function [ signal_final ] = conct( cell_difonemas )

%conct Esta función permite concatenar todos los difonemas

for i7=1:size(cell_difonemas,1)

vector_tam(1,i7)=length(cell_difonemas{i7,7});

end

vector_tam=sort(vector_tam);

Fs=44100;

N=round((vector_tam(1,1)-5)/2);

N=N*2;

w=hann(N)';

fade_in=w(1:N/2);

fade_out=w((N/2)+1:N);

signal_sintesis=zeros(size(cell_difonemas,1),60000);

tam=0;

%Matriz cross-fade

cell_fade{1,1}= [ones(1,length(cell_difonemas{1,7}(1:end-(N/2)))) fade_out];

for d=2:size(cell_difonemas,1)-1

centro=ones(1,length(cell_difonemas{d,7}(((N/2)+1):end-(N/2))));

cell_fade{d,1}= [fade_in centro fade_out];

end

cell_fade{size(cell_difonemas,1),1}= [fade_in

ones(1,length(cell_difonemas{size(cell_difonemas,1),7}((N/2)+1:end)))];

signal_sintesis(1,1:length(cell_difonemas{1,7}))=cell_difonemas{1,7}.*cell_fade{1,1};

for i2=2:size(cell_difonemas,1)-1

signal_sintesis(i2,tam+length(cell_difonemas{i2-1,7})-

(N/2)+1:length(cell_difonemas{i2,7})+tam+length(cell_difonemas{i2-1,7})-(N/2))=...

cell_difonemas{i2,7}.*cell_fade{i2,1};

tam=tam+length(cell_difonemas{i2-1,7})-(N/2);

end

signal_sintesis(size(cell_difonemas,1),tam+length(cell_difonemas{size(cell_difonemas,1)

-1,7})-

(N/2)+1:length(cell_difonemas{size(cell_difonemas,1),7})+tam+length(cell_difonemas{size

(cell_difonemas,1)-1,7})-(N/2))=...

cell_difonemas{size(cell_difonemas,1),7}.*cell_fade{size(cell_difonemas,1),1};

Page 93: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 93

signal=0;

for f=1:size(cell_difonemas,1)

signal=signal + signal_sintesis(f,:);

end

C=find(signal==0);

for i=1:length(C)

if i+4 > length(C)

break

end

if C(1,i+1) == C(1,i)+1 && C(1,i+2) == C(1,i)+2 && C(1,i+3) == C(1,i)+3 && C(1,i+4)

== C(1,i)+4 && C(1,i+5) == C(1,i)+5 && C(1,i+6) == C(1,i)+6 && C(1,i+7) == C(1,i)+7 &&

C(1,i+8) == C(1,i)+8

signal_final= signal(1,1:C(1,i));

break

end

end

end

Anexo 11. Prueba subjetiva

Evaluación de calidad vocal de una voz sintetizada

Este trabajo se centrará específicamente en los convertidores texto a voz, debido que tienen

múltiples utilidades, entre las cuales destacan, la ayuda para personas con necesidades especiales.

Un ejemplo de esto son los lectores de pantalla que permiten el acceso al mundo de la informática

a las personas con dificultades visuales y los dispositivos con teclados predictivos que permiten

que las personas con dificultades en la producción del habla puedan expresar lo que quieren decir.

Page 94: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 94

Se desarrolla un prototipo de convertidor texto a voz, el cual se diseña con el objetivo de comparar

dos métodos que se utilizan en la etapa final del proceso, estos tienen una influencia directa en la

naturalidad de la voz final, logrando que suene con un tono más uniforme y evitando sonidos

molestos que dificulten el entendimiento.

Usted va a participar en un experimento para evaluar la calidad de voz sintetizada del convertidor,

estará expuesto a una secuencia de audios que escuchará a través de un monitor situado a un metro

de distancia frente a usted y se reproducirán a un nivel de presión sonora de 60 dB(A), este nivel

no es perjudicial para el ser humano y corresponde a un nivel de voz de conversación normal. Esta

prueba se realiza en el estudio B de la universidad de San Buenaventura - seccional Medellín. Los

participantes no requieren de ninguna característica especial, simplemente que no hayan estado

expuestos a fuerte ruido en la última hora. Serán 32 personas que realizarán la prueba entre

estudiantes y docentes de la universidad.

Con los resultados de esta prueba se realizará un análisis estadístico sobre cuál de los dos métodos

tiene mejores características que aportan calidad vocal.

Hasta el momento en la universidad San Buenaventura Medellín no se ha desarrollado ningún tema

que aborde la síntesis del habla, por tal razón este proyecto de grado podría ser el comienzo de la

inclusión de esta temática, y el desarrollo de un convertidor texto a voz podría servir como base

para generaciones futuras que quieran seguir esta línea de investigación y que quieran abordar de

una forma más profunda las tecnologías del habla.

Las características que se evaluarán están descritas a continuación:

Esfuerzo de escucha: su respuesta debe indicar el grado de esfuerzo que se requeriría para

comprender la esencia del mensaje.

Nitidez: evalúe la claridad que encuentra en la pronunciación (si puede distinguir bien los

sonidos).

Aceptación: indique si la voz que escucha sería aceptable para algún tipo de servicio

comercial (contestadora automatica, ayuda para personas con dificultades en el habla,

ayuda para personas con dificultades visuales, entre otros).

Page 95: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 95

Dificultades de comprensión: indique en qué medida las palabras del mensaje eran

difíciles de entender.

La prueba comenzará con dos mensajes de práctica, para que se familiarice con la escucha y con

el cuestionario de contestación. Habrá un descanso después de estos dos mensajes, para permitirle

solicitar ayuda si tiene algún problema.

La prueba consiste en dos etapas, la primera es una prueba escrita donde escuchará dos frases y a

medida que avance el audio deberá escribir en la hoja de respuestas la información que se solicita

para comprobar la comprensión del mensaje. Solo tendrá una oportunidad de escuchar cada frase,

por lo tanto, debe estar atento a la información solicitada.

Escuchará dos tipos de mensajes: mensajes relacionados con el pedido que realiza una persona con

discapacidad y mensajes relacionados con la información del tráfico ferroviario. Un ejemplo de

cada tipo de mensaje es el siguiente:

Buenos días Andrés, necesito zapatos negros de talla 39 y un pantalón talla S, solo cuento

con $ 150.000 para la compra.

El tren número 4119 procedente de Vitoria tiene su hora de llegada a las 12:23, andén 8,

vía H.

En la segunda parte, deberá responder unas preguntas indicando una sola respuesta. La primera

pregunta se responde en base a los audios escuchados para la parte escrita. Luego para la segunda

y tercera pregunta, escuchará una secuencia de palabras que corresponden a la voz grabada de un

locutor, dicha secuencia será un audio de referencia, luego escuchará otra secuencia de palabras

pero sintetizadas por el convertidor texto a voz. Después de escuchar estas dos secuencias deberá

contestar la pregunta comparando el audio del método con el audio de referencia. Para la cuarta

pregunta no deberá escuchar un audio de referencia, solamente escuchará el audio sintetizado y

responderá de acuerdo a su opinión.

Nota: recuerde que debe contestar de acuerdo a los parámetros que se pide evaluar, por favor no

tenga en cuenta la entonación, ni la intención en la voz del audio de referencia, ya que este

convertidor no contempla estos parámetros.

Gracias por su participación.

CUESTIONARIO

Page 96: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 96

1. Dificultades de comprensión

¿Ha encontrado algunas palabras difíciles de entender?

1. Nunca

2. Raramente

3. De vez en cuando

4. A menudo

5. Todo el tiempo

2. Esfuerzo de escucha

¿Cómo describiría usted el esfuerzo de escucha para entender el mensaje?

1. Descanso absoluto (ningún esfuerzo)

2. Atención necesaria (esfuerzo requerido no apreciable)

3. Esfuerzo moderado

4. Esfuerzo considerable

5. Significado incomprensible a pesar de todos los esfuerzos posibles

3. Nitidez

¿Eran nítidos los sonidos? (recuerde que la nitidez evalúa la claridad que encuentra en la

pronunciación, es decir, si puede distinguir bien los sonidos)

1. Si, muy claros

2. Si, suficientemente claros

3. Medianamente claros

4. No, no muy claros

5. No, en absoluto

4. Aceptación

¿Piensa que esta voz podría utilizarse para algún tipo de servicio comercial como una

contestadora automática o servicios de ayuda para personas con dificultades en el habla?

1. Si, para cualquiera de los servicios.

Page 97: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 97

2. Sí, pero solo podría usarse en servicios comerciales.

3. Sí, pero solo podría usarse en servicios de ayuda para personas con dificultades

en el habla o dificultades visuales.

4. No, para ninguno de los servicios.

Prueba escrita para el método ____

Frase No. 1 Frase No. 2

Tren No. Nombre

Origen o destino Color

Horario Talla zapatos

Andén Talla pantalón

Vía Dinero

Tabla de respuesta método ___

Page 98: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 98

Marque con una “X” la respuesta que corresponde a cada pregunta.

Escala PREGUNTA

1 2 3 4

1

2

3

4

5

Anexo 12. Espectrogramas

Page 99: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR… 99

Page 100: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR…

100

Page 101: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR…

101

Page 102: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR…

102

Page 103: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR…

103

Page 104: Desarrollo de un prototipo de convertidor de texto a voz

DESARROLLO DE UN PROTOTIPO DE CONVERTIDOR…

104