Capítulo 1: Panorama de los sistemas de texto a voz
1.1¿Qué es un sistema Text to Speech?
La síntesis de voz es la producción artificial del habla humana. Se han diseñado diferentes
sistemas para este propósito llamados sintetizadores de voz y pueden ser implementados tanto en
hardware como en software. Un sistema TTS (text to speech) o sintetizador de voz convierte el
lenguaje escrito en habla. Otros sistemas convierten el texto en representaciones simbólicas
lingüísticas tales como transcripciones fonéticas [Allen, et al., 1987].
El habla sintetizada se genera concatenando segmentos de grabaciones que se encuentran
almacenados en una base de datos. Los sistemas text to speech difieren en diversos aspectos, uno
de ellos es el tamaño de las unidades de habla almacenados. Los sistemas que almacenen
fonemas y difonemas proveen el rango de salida más amplio, sin embargo es posible que su
calidad sea baja. Para una salida de alta calidad, se utiliza la técnica de dominios específicos; en
esta técnica el almacenamiento de palabras u oraciones pre-grabadas enteras permiten una salida
de alta calidad. Alternativamente, un sintetizador puede incorporar un modelo del tracto vocal y
otras características de la voz humana para generar una voz completamente “sintética” o
“electrónica” [Bircholz, 2007]
Un elemento para juzgar la calidad de la síntesis de voz es su parecido con la voz humana
y su potencialidad para ser entendida. Un sistema TTS puede lograr que personas con
discapacidad visual, de lectura o en actividades en las cuales ojos y manos están ocupadas puedan
escuchar instrucciones, textos leídos, entre otros textos. Muchos sistemas operativos han incluido
sintetizadores de voz desde principios de la década de los ochenta y su calidad ha variado mucho
6
de modelo en modelo, incluso actualmente hay TTS de muy variados tipos y calidades.
1.2 ¿Cómo funciona el procesamiento de texto a voz?
Existe una gran gama de diferentes sistemas para el procesamiento de texto con
complejidad muy variada. Sin embargo, muchos de estos sistemas comparten una arquitectura
general que ha demostrado ser muy útil en muchos casos. La figura 1.1 muestra esta arquitectura
común para los sistemas TTS [Furui,1989].
Figura 1.1: Estructura general de un sistema TTS
Podemos ver que existen dos bloques principales que forman el sistema: el bloque de
Procesamiento de Lenguaje Natural (Natural Language Processing o NLP) y el bloque de Proceso
de Síntesis. El bloque de NLP se encarga de producir una transcripción fonética del texto leído,
además de la entonación y el ritmo deseados para la voz de salida. Después, el bloque de Proceso
de Síntesis transforma la información simbólica que recibe del bloque anterior, en una voz de
salida.
El bloque NLP tiene dos tareas importantes. La primera tarea es convertir el texto en
7
crudo, conteniendo símbolos como números o abreviaciones, en su equivalente en palabras
escritas. Esto comúnmente es llamado “normalización de texto”, “pre-procesamiento” o
“señalización” (tokenization). Su segunda tarea es asignar transcripciones fonéticas a cada
palabra y dividirlas en unidades prosódicas tales como frases, cláusulas y oraciones. El proceso
de asignar transcripciones fonéticas en palabras es llamado conversión “texto a fonema” o
conversión “grafema a fonema” [Van Santen, 1997]. El bloque NLP tiene como salida una
representación lingüística, la cual está formada tanto por las transcripciones fonéticas como por la
información prosódica. El bloque de Proceso de Síntesis es el sintetizador en sí, aquí es dónde se
transforma la representación de la lógica lingüística en sonido.
1.3 Utilidad de los sintetizadores de voz
Los sintetizadores de voz se utilizan principalmente para dar accesibilidad a personas
discapacitadas visualmente, así como para actividades o situaciones en las cuales no se puede
usar la vista. Así, una aplicación clásica de esta tecnología son los lectores de pantalla donde
personas invidentes o de visión débil pueden escuchar todos los textos presentados en pantalla.
Los sistemas TTS se emplean con frecuencia para apoyar a personas con dislexia y otras
dificultades de lectura. También son aplicados para la educación de niños que todavía no saben
leer, para ayudar a personas con discapacidad de habla a través de un sistema VOCA (Voice-
Output Communication Aid), en sistemas de navegación (GPS), juegos, etc.
Otras aplicaciones de la tecnología text to speech son los servicios de noticias. Sitios
como [Link] utiliza síntesis de voz para convertir noticias textuales en contenido auditivo.
Esta posibilidad nos abre un gran campo en las tecnologías móviles. En la rama del
entretenimiento existen aplicaciones para generar audio a través de texto con la finalidad de
8
narración. Compañías como Animo Limited y CELSYS, Inc. utilizan un software basado en
FineSpeech que genera narración y líneas de diálogo de animaciones a través de texto asignado
por el usuario [ANIMO, 2007].
Una interfaz auditiva nos puede ayudar a la educación y al aprendizaje. Con dicha interfaz
es posible no solo leer la información, sino escucharla. De esta manera tendríamos una interfaz
multi modal donde el sentido del oído formaría parte esencial de la manipulación y asimilación
de la información.
1.4 Tipos de sintetizadores existentes
Los dos aspectos más importantes de la síntesis de voz son la naturalidad y la
inteligibilidad. La naturalidad describe qué tanto el sonido generado se asemeja al habla humana,
mientras que la inteligibilidad es la facilidad con la cual se entiende el significado del habla
generada. Un sintetizador de voz trata de maximizar ambas características [Barbosa, 1997].
Las dos tecnologías principales para generar una voz sintética son la síntesis
concatenativa y la síntesis formante. La síntesis formante no utiliza fragmentos de habla humana
al momento de generar una voz. En vez de esto utiliza un modelo acústico. Parámetros como
frecuencia fundamental, fonación (voicing) y niveles de ruido se analizan para crear una onda
acústica de habla artificial.
La síntesis concatenativa se basa en la unión de segmentos de habla grabados.
Generalmente la síntesis concatenativa produce el sonido más natural en la síntesis de una voz.
Sin embargo, las diferencias entre las variaciones naturales de la voz y la naturaleza de las
9
tecnologías para automatizar la fragmentación de las ondas sonoras resultan en una salida
imperfecta. Los tres tipos más comunes de síntesis concatenativa son:
-Selección de Unidades: Fonemas, sílabas, morfemas, palabras, frases y oraciones son las
unidades en las que se puede dividir un sintetizador de selección de unidades. Este tipo de
síntesis utiliza una gran base de datos de habla grabada. Durante la creación de la base de datos,
cada grabación es seccionada en una o más de las unidades antes mencionadas. La selección de
unidades provee gran naturalidad debido a que aplica muy poco procesamiento digital de señales
(DSP) a las grabaciones. El procesamiento digital de señales generalmente hace que la voz suene
menos natural, aunque algunos sintetizadores utilizan el procesamiento de señales marginalmente
en el punto donde se concatenan las grabaciones para suavizar la onda acústica [Kominek, 2003].
-Difonemas: La síntesis de difonemas utiliza una base de datos mínima, la cual contiene
todas las transiciones de sonido a sonido del lenguaje que se desee sintetizar. El número de
difonemas depende de las fonotácticas del lenguaje. Por ejemplo, el español tiene
aproximadamente 800 difonemas mientras que el alemán tiene 2500. En la síntesis por difonemas
solamente se almacena en la base de datos un ejemplo de cada difonema. Al momento de
ejecución, la información prosódica de una oración es impuesta sobre estas unidades mínimas por
medio de técnicas de procesamiento digital de señales tales como LPC (Linear Predictive
Coding), PSOLA o MBROLA [Dutoit, 1996].
-Dominio Específico: Estos sintetizadores concatenan palabras o frases pre-grabadas para
generar nuevas expresiones. Se utiliza en aplicaciones donde la variedad de textos de salida del
sintetizador se limita a un dominio en particular, como un reloj o una calculadora. El nivel de
10
naturalidad es muy elevado debido a que el número de oraciones almacenadas es muy reducido y
se asemejan mucho a la entonación y pronunciación de las grabaciones originales [Black, 2000].
Para el propósito de esta tesis elegí difonemas como método de síntesis. Este tipo de
sintetizador está documentado en el proyecto Festvox del grupo de habla de la universidad
Carnegie Mellon. Al ofrecer la síntesis por medio de difonemas una base de datos relativamente
limitada, facilita la experimentación, la familiarización y la documentación del proceso para
generar una voz sintética.
1.5 Sistemas TTS existentes
Apple: En 1984 el MacinTalk de Apple Computer's fue el primer sistema de síntesis de
voz integrado a un sistema operativo. Desde principios de los años ochenta, Macintosh
Computers ha ofrecido capacidades text to speech. Actualmente ha desarrollado el sistema
VoiceOver para personas con problemas de la vista [APPLE, 2008].
AmigaOS: El segundo sistema operativo con un sistema de síntesis de voz avanzado fue
el AmigaOS de 1985. Contenía un sistema de emulación completo, con voces tanto masculinas o
femeninas e indicadores de estrés [SOFTVOICE, 2007].
Microsoft Windows: El sistema de Windows moderno utiliza los sistemas de voz SAPI4 y
SAPI5. Estos incluyen un motor de reconocimiento de voz llamado SRE. Todos los programas
compatibles con Windows pueden utilizar las funciones de síntesis de voz, disponibles a través de
menús una vez instalados dentro del sistema. Microsoft Speech Server es un paquete completo
para reconocimiento y síntesis de voz para aplicaciones comerciales como centros de llamado
11
[SAPI, 2008].
En Internet se encuentran los sistemas de voz más interesantes. Por ejemplo Expressivo
Text Reader, Power Text to Speech Reader y TextAloud pueden leer mensajes directamente de un
cliente de correo electrónico y páginas de Internet a través de un navegador. RSS también puede
ser leído con software especializado como el Google gadget, RSS to speech o Expressivo Text
Reader. Los artículos RSS pueden ser transformados en archivos de audio podcast. Estos podcast
pueden ser añadidos a artefactos de audio portátiles y escuchar noticias mientras se camina, se
hace ejercicio o se viaja diariamente al trabajo. El proyecto Pediaphon provee de text to speech
generado dinámicamente para escuchar todos los artículos de Wikipedia en ingles, francés o
alemán.
Otros sistemas comerciales de síntesis de voz incluyen a: AT&T, Cepstral, IBM Via Voice,
IVONA TTS, Loquendo y SVOX [ATT, 2008; CEPSTRAL, 2008; IBM, 2008; IVONA, 2008;
LOQUENDO, 2008; SVOX, 2008].
1.6 ¿Por qué la utilización de Festival?
A diferencia de los sistemas previamente mencionados, Festival es open source, es decir,
su código es abierto. Es distribuido bajo una licencia de software libre similar a la licencia X11.
Las tecnologías open source mantienen una serie de principios y prácticas para promover el libre
acceso y el diseño de productos, en este caso software. Festival, siendo open source, permite
utilizar el software sin el pago de una licencia. También es posible leer y modificar su código y
diseño por completo. En caso de ser necesario, Festival autoriza recompilar su propio código para
adaptarse a las necesidades del investigador. Festival hace posible una investigación profunda de
12
la naturaleza de un sintetizador de voz. A diferencia de otras tecnologías de naturaleza cerrada
como Microsoft SAPI; desarrolladores alrededor del mundo colaboran por medio de Internet
desarrollando abiertamente sintetizadores de voz en Festival. Sus hallazgos enriquecen el
entendimiento de la naturaleza de la síntesis de voz. Debido a esto, existe una rica gama de
investigaciones alrededor del mundo en Festival: grupos de investigación como el Centro para la
Investigación de la Tecnología del Habla en la Universidad de Edimburgo, el Grupo de Habla y
de Tecnologías del Lenguaje de la Universidad Carnegie Mellon, el Instituto para el
Procesamiento del Lenguaje Natural de la Universidad de Stuttgart, y el Instituto de Tecnología
de Nagoya están entre muchas instituciones que investigan la naturaleza del habla sintética en
esta plataforma.
Por el lado técnico, Festival tiene aspectos muy importantes para ser tomados en cuenta.
Ofrece una estructura para síntesis de voz y ejemplos de varios de sus módulos. En total
proporciona un completo sistema text to speech a través de una integración de bajo nivel en
C/C++ y un intérprete de alto nivel para código Scheme.
Esta tesis utilizó la versión de Festival 1.96-beta. Esta versión es la más actual hasta el
momento de escribir el presente documento. Esta versión incluye:
z Motor de síntesis basado en modelos ocultos de Markov desarrollado por la universidad
de Nagoya.
z Motor de propósito general de selección de unidades desarrollado por la universidad de
Edimburgo.
z Respaldo para los compiladores gcc 3.2 y 3.3 así como para Intel 8.0
13
z Configuración externa e independiente para los siguientes módulos.
c Fonemas
c Léxicos
c Reglas letra a sonido
c Señalización (tokenization)
c Etiquetado del habla
c Entonación y duración
z Síntesis de onda acústica:
c Basado en difonemas: Excitación residual LPC
c Respaldo para base de datos MBROLA
c Portátil para su distribución Unix
c Respaldo para JSAPI
c Interfaces para SABLE markup, Emacs, cliente/servidor (incluido Java) e interfaces
para hacer scripting.
La creación de un sintetizador de voz nuevo en Festival no es una tarea fácil. Requiere un
amplio conocimiento de la materia. Para simplificar y sistematizar su desarrollo, el proyecto
Festvox presidido por el Dr. Alan W. Black de Carnegie Mellon, hace posible la construcción de
una voz sintética más documentada y sistematizada. Festvox ofrece una plataforma para el
desarrollo sistémico de una voz. Festvox soporta la lengua española, por lo tanto es posible
desarrollar una voz para el español mexicano. Festival ofrece las siguientes ventajas:
14
z Documentación, incluyendo varios scripts explicando los antecedentes y datos específicos
para la creación de una nueva voz.
z Scripts específicos para crear voces en idiomas respaldados, tal como es el caso del
lenguaje español.
z Auxiliares para construir una voz sintética de dominio limitado.
z Ejemplos de base de datos de habla para apoyar la construcción de voces nuevas.
z Ligas, demostraciones y repositorios de nuevas voces.
z Soporte para construir modelos acústicos para Sphinx y SphinxTrain
z Soporte para su configuración a la medida de Festival.
En este capítulo se ha dado una descripción de lo que es un sistema de texto a voz (TTS),
su funcionamiento y su utilidad. Además fueron descritos los diferentes tipos de TTS y fueron
mecionados varios TTS existentes. Por último se explicaron las razones por la cual fue elegido
Festival como sistema síntesis y Festvox como plataforma para el desarrollo de la voz. En el
próximo capítulo describiremos como instalar, compilar y configurar un sistema para el
desarrollo de una voz sintética utilizando Festival.
15