UNIVERSIDADE DE PERNAMBUCO
FACULDADE DE CIÊNCIA E TECNOLOGIA DE CARUARU
BACHARELADO EM SISTEMAS DE INFORMAÇÃO
INTEGRAÇÃO DO SISTEMA TEXTO-FALA DO MARYTTS AO FIVE
TRABALHO DE GRADUAÇÃO
SISTEMAS DE INFORMAÇÃO
DANILO DE SOUSA BARBOSA
Caruaru, 2014
DANILO DE SOUSA BARBOSA
INTEGRAÇÃO DO SISTEMA TEXTO-FALA DO MARYTTS AO FIVE
Trabalho de Graduação oferecido ao curso de
Sistemas de Informação da Universidade de
Pernambuco, Faculdade de Ciência e
Tecnologia de Caruaru, como requisito parcial
à obtenção do grau de Bacharel em Sistemas
de Informação.
Orientador: Prof. Dr. Alexandre Magno Andrade Maciel
Caruaru, 2014
À minha família
AGRADECIMENTOS
Primeiramente agradeço a Deus, por seu amor, sua proteção e por está sempre guiando a
minha vida.
A minha mãe, Rosete de Sousa, pelo apoio incondicional em todos os momentos, sempre
incentivando, apoiando e acreditando no meu potencial.
Ao meu pai, Damião José, pelo apoio em todos os momentos, sempre ajudando quando
precisava.
A minha tia Rosalva, por ajuda na concretização dessa fase da minha vida.
Ao professor Alexandre Maciel pelas orientações, revisões do texto, incentivo e apoio
motivacional.
Aos meus amigos de graduação, pela amizade е pelo apoio constante.
Enfim, agradeço a todos que contribuíram para a minha formação acadêmica, profissional,
pessoal.
RESUMO
A relação de comunicação entre o homem e a máquina tem se tornado cada vez mais
relevante nos sistemas computacionais devido a sua fácil interação. Em virtude dessa
facilidade muitos trabalhos têm sido realizados a fim de proporcionar a geração de voz
sintetizada com maior naturalidade em diversos idiomas. Várias técnicas tem ganhado
destaque na conversão de texto em fala sintetizada sendo uma das mais relevantes as baseadas
nos Modelos Ocultos de Markov. O FIVE Framework for an Integrated Voice Environment é
uma ferramenta desenvolvida para auxiliar a construção e instanciação dos motores de síntese
de fala por meio de HMM. Apesar dos bons resultados obtidos com esse framework, existe
uma falha de portabilidade que não permite a instanciação dos motores de síntese em
dispositivos móveis. Este trabalho tem como objetivo propor a integração do sistema textofala do sistema MARY TTS ao Framework FIVE para torná-lo portável em ambiente de
dispositivos móveis. Para isso, foi realizado um levantamento da área de síntese de voz, com
uma abordagem no sistema de conversão texto-fala e um estudo das plataformas FIVE e
MARY TTS, assim como o treinamento de duas vozes no idioma português e um teste de
integração para dispositivos móveis. A partir disso, o FIVE passou a dispor das ferramentas
texto-fala do MARY para a realização do treinamento e sintetização das vozes masculina e
feminina com sua execução em ambiente de dispositivos móveis.
Palavras-chave: Síntese de voz, Sistema texto-fala, FIVE, MARY TTS.
ABSTRACT
The communication relationship between man and machine has become increasingly relevant
in computational systems due to its easy interaction. Because of this facility many studies
have been done to provide the generation of synthesized speech more naturally in multiple
languages. Several techniques have gained prominence in the conversion of text into
synthesized speech being one of the most relevant based on Hidden Markov Models. The
FIVE Framework for an Integrated Voice Environment is a tool developed to support the
construction and instantiation of speech synthesis using HMM engine. Despite of the good
results obtained with this framework, exists a failure of portability that does not allow the
instantiation of synthesis engines on mobile devices. This paper aims to propose the
integration of text-to-speech system of the MARY TTS system Framework FIVE to make it
portable across mobile devices environment. For this, was performed a survey the area of
speech synthesis, with an approach to the text-to-speech conversion system and a study of
platform FIVE and MARY TTS, as well as training of two voices in Portuguese language
and integration tests for mobile devices. From addition, the FIVE now has text-to-speech
tools in MARY for conducting voice training and synthesis of male and female voices with
their execution on mobile environment.
.
Keywords: Voice Synthesis, text-to-speech System, FIVE, MARY TTS.
.
LISTA DE FIGURAS
Figura 2.1 - Diagrama funcional de um sistema TTS ( MAIA, 2006). .................................... 19
Figura 2.2 - Esquema de sistema de síntese baseado em HMM (TOKUDA et al., 2000).. ..... 22
Figura 3.1 - Módulos da arquitetura do FIVE (MACIEL e CARVALHO, 2010).. ................. 30
Figura 3.2 – Código fonte para instanciação de um sintetizador (MACIEL, 2012)................. 32
Figura 4.1 – Interface do Transcription GUI (MARY, 2014). ................................................. 34
Figura 4.2 – Interface do Voice Import (MARY , 2014). ........................................................ 34
Figura 4.3 – Diagrama funcional para criação do suporte adaptado ( MARY, 2014). ............ 35
Figura 4.4 – Diagrama funcional da construção da voz adaptado (MARY , 2014). ................ 41
Figura 4.5 – Estruturação dos pacote do FIVE ......................................................................... 43
Figura 4.6 – Teste de portabilidade no emulador do Android. ................................................. 44
Figura 4.7 – Teste de portabilidade no dispositivo móvel Nexus 4 ......................................... 44
LISTA DE TABELAS
Tabela 2.1 - Geração de informação (MAIA, 2006). ............................................................... 25
Tabela 2.2 - Conjunto de fonética SAMPA ( MAIA, 2006). ................................................... 25
Tabela 3.1 - Funções de síntese implementadas pela API (MACIEL, 2012). .......................... 32
Tabela 4.1 - Tabela com as transcrições. .................................................................................. 36
Tabela 4.2 - Tabela com os parâmetros de configuração do HMM. ........................................ 40
Tabela 4.3 - Estruturação das classes do Motor HTS. .............................................................. 42
LISTA DE SÍMBOLOS E SIGLAS
API – Application Programming Interface
DFKI – Deutsche Forschungszentrum für Künstliche Intelligenz
F0 – Fundamental Frequency
FIVE – Framework for an Integrated Voice Environment
GUI – Graphical User Interface
HMM – Hidden Markov Models
HTK – Hidden Markov Models Toolkit
HTS – HMM-based Speech Synthesis System
IDE – Integrated Development Environment
INPI – Instituto Nacional de Propriedade Intelectual do Brasil
JDK– Java Development Kit
JDT – Eclipse Java Development Tools
JRE – Java Runtime Environment
MARY – Modular Architecture for Reseach on speech sYnthesis
MFCC – Mel Frequency Cepstral Coefficient
MLSA – Mel Log Spectrum Approximation
MVC – Model View Controller
PDS – Processamento Digital de Sinal
PLN – Processamento de Linguagem Natural
POS – Part Of Speech
PSOLA – Pitch Synchronous Overlap and Add
SAMPA – Speech Assessment Methods Phonetic Alphabet
SPTK – Speech Signal Processing Toolkit
TTS – Text-To-Speech
VODER – Voice Operating Demonstrator
SUMÁRIO
1.
INTRODUÇÃO........................................................................................................... 12
1.1.
Descrição do Problema ................................................................................................. 14
1.2.
Objetivo ........................................................................................................................ 14
1.3.
Motivação ..................................................................................................................... 15
1.4.
Organização .................................................................................................................. 15
2.
SÍNTESE DE VOZ ..................................................................................................... 16
2.1.
Arquitetura .................................................................................................................... 18
2.1.1 Processamento de Linguagem Natural ......................................................................... 19
2.1.2. Processamento de Sinal Digital .................................................................................... 20
2.2.
Síntese Baseada em HMM............................................................................................ 22
2.2.1. Treinamento .................................................................................................................. 23
2.2.2. Síntese ........................................................................................................................... 23
2.3.
Requisitos de um Sistema TTS em Português do Brasil .............................................. 24
2.3.1. Geração de Informação ................................................................................................. 24
2.3.2. Conjunto de Fonéticas .................................................................................................. 25
2.4.
Sistemas TTS em Português do Brasil .......................................................................... 26
2.4.1. Sistema MARY TTS..................................................................................................... 27
3.
FRAMEWORK FIVE ................................................................................................ 29
3.1.
Arquitetura .................................................................................................................... 29
3.2.
Motor de Síntese ........................................................................................................... 30
3.2.1. Criação do Motor .......................................................................................................... 31
3.2.2. Instanciação do Motor .................................................................................................. 32
4.
INTEGRAÇÃO ........................................................................................................... 33
4.1.
Estudo das Ferramentas ................................................................................................ 33
4.2.
Treinamento da Voz ..................................................................................................... 35
4.2.1. Suporte Para o Português do Brasil .............................................................................. 35
4.2.2. Construção do Modelo de Voz ..................................................................................... 37
4.2.2.1.Preparação dos Dados ................................................................................................... 37
4.2.2.2.Treinamento dos HMMS .............................................................................................. 40
4.3.
Processo de Integração ................................................................................................. 42
4.4.
Teste de Portabilidade ................................................................................................... 43
5.
CONSIDERAÇÕES FINAIS ..................................................................................... 45
5.1.
Dificuldades Encontradas ............................................................................................. 46
5.2.
Atividades Paralelas ...................................................................................................... 46
5.3.
Trabalhos Futuros ......................................................................................................... 47
6.
REFERÊNCIAS .......................................................................................................... 48
APÊNDICE A ......................................................................................................................... 52
ANEXO A ................................................................................................................................ 63
12
1. INTRODUÇÃO
Nos últimos anos, a área de interface de voz tem recebido grande atenção por parte dos
acadêmicos, devido a duas razões: primeiro relacionado a melhorias no desempenho dos
sistemas automáticos de processamento de voz, incluindo o reconhecimento de voz, tradução
de expressões idiomáticas e síntese de voz; segundo, relacionado à convergência de
dispositivos e da grande produção de conteúdo multimídia, que requer mais rápido e eficiente
meio de interação com o usuário. Além desses avanços, a construção de aplicações com
interface de voz que são capazes de reconhecer a fala, entender comandos de voz de seus
usuários e fornecer respostas para eles continua sendo um desafio, devido a sua
interdisciplinaridade e complexidade do seu desenvolvimento (FARINAZZO et al., 2010).
De acordo com HUANG et al.(2001), a arquitetura típica para o desenvolvimento
deste tipo de interface de voz possui três componentes principais: o primeira representa o
conjunto de motores que são responsáveis pela síntese de voz; o segunda consiste em uma
API (Application Programming Interface) que normalmente é usada para facilitar a
comunicação entre os motores e a aplicação; e o último consiste em um conjunto de
aplicações que podem ser desenvolvidas. Esta arquitetura tem orientado diversos trabalhos
nesta área ao longo dos anos e vários recursos foram criados com o objetivo de ajudar este
difícil processo.
A construção do mecanismo de síntese de voz é fundamental no processo de
reconhecimento de padrões que normalmente segue uma arquitetura comum para qualquer
padrão: aquisição padrão, extração de características, classificação de padrões e análise dos
resultados (RICHARD; PETER; DAVID, 2001). Por outro lado, a instanciação desses
motores em camada de aplicação deve seguir um conjunto de configurações padrão
especificada na API, dependendo da linguagem de programação ou plataforma. As aplicações
podem ser tão diversas quanto às necessidades dos desenvolvedores e de seus clientes.
A síntese de voz possui muitos estudos na área acadêmica que proporciona uma
melhoria na qualidade da fala sintética, no entanto, pouco esforço tem sido feito para trazer
esses avanços ao nível da aplicação. Os recursos disponíveis de hoje atende as aplicações
específicas, tem curva de aprendizagem lenta e apresentam sérios problemas de integração,
extensibilidade e portabilidade.
Diante desse cenário, foi projetado o FIVE (Framework for an Integrated Voice
Environment) com o propósito de auxiliar o processo de construção e instanciação de
13
mecanismos de fala em diferentes ambientes tecnológicos (telefone, celular, TV digital), de
uma forma integrada e escalável em várias técnicas (MACIEL e CARVALHO, 2010). O
FIVE é uma ferramenta open-source "em desenvolvimento", que requer a colaboração
acadêmica para auxiliar o desenvolvimento de novas funcionalidades e melhorias dos atuais
processos.
Em MACIEL e CARVALHO (2012) foi apresentado um processo de integração de
um sistema TTS (Text-To-Speech) baseado em HMM para o FIVE. Nesse trabalho, os
recursos como SPTK (SPTK, 2014), HTS (HTS, 2014) e motor HTS (HTSENGINE, 2014)
foram utilizados para a extração de características, treinamento e testes, respectivamente.
Além da análise de voz que adquiriu resultados extremamente relevantes, em comparação
com o sintetizador Loquendo, que foi implementado para fazer execução desses recursos
através do comando shell. Esta solução é contra a proposta de independência da plataforma
FIVE e um desenvolvimento semelhante em Java foi sugerido como trabalho futuro.
Vários trabalhos vêm sendo realizados para melhorar o sistema TTS em português do
Brasil com a utilização da técnica concatenativa (ALBANO, 1997); com a utilização de um
corpus de voz treinado por um motor de síntese baseado em HMM (SEARA, 2007) e com a
utilização de um sistema HMM para o português do Brasil da Universidade Federal do Rio de
Janeiro (UFRJ) (MAIA, 2006).
Existem diversas ferramentas relacionadas à construção de sintetizadores de voz que
visam o idioma português do Brasil, como a LIANE TTS da UFRJ (LIANE, 2014); o sistema
Festival TTS criado pela Universidade de Edimburg (FESTIVAL, 2014), além do sistema
MARY TTS desenvolvido pelo centro de pesquisa alemã (DFKI) (MARYTTS, 2014). Diante
dos inúmeros sintetizadores de voz foi escolhido o sistema MARYTTS pelo fato de possui
características de extensibilidade e portabilidade, utiliza uma codificação do motor HTS em
JAVA e realiza um processo de criação e treinamento de voz mais otimizado.
Esta monografia fornecerá detalhes significativos sobre como será realizada a
integração do sistema TTS do MARY ao FIVE, mostrando os benefícios, obstáculos e
desafios associados com um ambiente efetivo para a construção de motores e a instanciação
deles em suas aplicações, proporcionando por um lado, eficiência em tempo de execução e
por outro lado, um modo de implementação com modularidade, fraco acoplamento e
independência de plataforma.
14
1.1. Descrição do Problema
O módulo de síntese de voz do framework FIVE utiliza uma extensão HTK
desenvolvido na linguagem C (HTK, 2014). Por causa desse recurso limita-se a portabilidade
do framework FIVE, visto que, para executá-lo é necessário a recompilação dos recursos.
Além disso, restringe o treinamento da voz, pois não possui nenhuma funcionalidade para a
realização desse processo.
Como o FIVE foi desenvolvido no padrão de projeto de framework, uma forma de
solucionar este problema seria a substituição do mecanismo de síntese de voz desenvolvido
em C para algum em Java, visto que é a linguagem original do FIVE e não seria necessária
nenhuma recompilação. Uma alternativa interessante é a utilização do framework MARY
(Modular Architecture for Reseach on speech sYnthesis ), um sistema TTS completo que
possui uma ferramenta de treinamento de voz, escrito totalmente em Java.
1.2. Objetivo
Este trabalho tem como objetivo geral a integração do sistema texto-fala do
MARYTTS ao FIVE.
Este objetivo pode ser desdobrado nos seguintes objetivos específicos:

Levantar o estado de arte da síntese de voz com uma abordagem no sistema
texto-fala baseado em HMMs;

Analisar o projeto, arquitetura e implementação do framework FIVE;

Analisar o sistema MARY TTS e as suas ferramentas de treinamento de voz;

Realizar a integração do sistema texto-fala do MARYTTS ao FIVE;

Treinar um conjunto de vozes na adaptação do sistema texto-fala do FIVE;

Testar a portabilidade das vozes produzidas no sistema operacional Android.
15
1.3. Motivação
A motivação maior deste trabalho está no avanço da utilização dos sistemas textofala para o português do Brasil em diversas áreas profissionais da nossa sociedade, sendo
usado como auxílio à fala dos portadores de necessidades especiais, em equipamentos de voz
que utilizam interações de voz sintética e em atividades que necessitam de mãos e visão livre
para realizar suas tarefas.
Outros fatores relevantes, inerentes aos sistemas texto-fala, servem como motivação
para este trabalho. A seguir apresentamos alguns deles:

Portabilidade: Existem diversos ambientes tecnológicos que podem realizar a
portabilidade dos sistemas de voz e ser instanciados em múltiplas plataformas
(dispositivos móveis, PC e TV digital).

Acessibilidade: diversas aplicações utilizam sistemas texto-fala, como modo de
aumentar a acessibilidade dos sistemas computacionais usados pelas pessoas com
necessidades especiais.

Naturalidade: a voz é considerada a forma mais natural de comunicação entre os
homens, no entanto, ainda busca uma melhoria das vozes geradas em português.

Mercado: o mercado de aplicação dos sistemas TTS está em franca expansão, apesar
disso, as vozes geradas em português por essas empresas possuem muitas limitações.
1.4. Organização
Este trabalho está organizado da seguinte maneira:
O Capítulo 2 apresenta um levantamento do estado da arte da área da síntese de voz, com a
utilização do sistema texto-fala baseada em HMMs e as ferramentas de sistema texto-fala,
com destaque para o sistema MARY TTS.
O Capítulo 3 descreve a estruturação do motor de síntese de voz utilizado no framework
FIVE, relatando a sua arquitetura.
O Capítulo 4 apresenta a integração com as seguintes etapas realizadas: estudo das
ferramentas, treinamento da voz, processo de integração e teste de portabilidade.
O Capítulo 5 apresenta as conclusões juntamente com as dificuldades enfrentados durante o
seu desenvolvimento, as atividades paralelas e os trabalhos futuros.
.
16
2. SÍNTESE DE VOZ
Síntese de voz é o processo de criação da réplica sintética de um sinal de fala para
transmitir a informação contida na mensagem de uma máquina para uma pessoa (TABET,
2011). Segundo BARROS (2002), a síntese de voz deve ser vista como um modelo
computacional que permite a geração automática da fala, a partir de uma representação
simbólica que é fornecido como entrada.
Na literatura, existem várias classificações para os sistemas de síntese de voz.
LIBERMAN (1994) classifica a síntese de voz quanto ao método utilizado para a produção do
sinal sonoro, no qual possui uma construção de sinal que pertence as seguintes categorias:

Por concatenação de fala armazenada digitalmente, com modificações na duração e
entoação original.

Por concatenação de fala armazenada digitalmente, com geração por regra do contorno
da frequência fundamental e regas da duração de segmento.

Por meio das funções temporais sintéticas para os parâmetros acústicos gerados por
regras.

Por meio dos modelos simplificados do mecanismo fonador humano, com regras para
o controle dos seus parâmetros.

Pela modelação realista dos processos fisiológicos e físicos de produção da fala
humana, incluindo o controle dinâmico dos articuladores e o fluxo de ar ao longo do
trato vocal.
Já para SIMÕES (1999), existem diferentes estratégias que podem ser utilizados para
a construção dos sistemas que envolvem síntese de voz, essa escolha depende
fundamentalmente das características do sistema de voz a ser treinado.
Existem duas características importantes na implementação deste treinamento: a
qualidade do sinal de fala com aplicações inteligíveis, já outras necessitam que os
sinais aproximem o máximo possível da fala natural e o tamanho do vocabulário
seja simples com vocabulários fixos e de tamanho reduzido, já no caso dos sistemas
de conversão de texto-fala, trabalham com vocabulários bastante extensos
(SIMÕES, 1999).
Desse modo, SIMÕES (1999) classifica os sistemas seguindo três estratégias: a
maneira mais elementar de produzir um sinal de fala é reproduzindo trechos de mensagem
pré-gravados. Neste caso para gerar uma sentença é necessário selecionar e reproduzir uma
sequência de mensagem previamente armazenada (SIMÕES, 1999).
17
Esse tipo de estratégia possui uma vantagem de ser extremamente simples de
implementar. Possuindo como tarefa a seleção da mensagem a ser reproduzida e a
boa qualidade de voz gerada por um sinal de fala natural. Sendo utilizada em
aplicações mais simples como, por exemplo, um sistema de acesso a saldo bancário.
(SIMÕES, 1999)
Outra estratégia para a geração de sinais de fala sintetizada é a síntese paramétrica,
que possui uma biblioteca de palavras armazenadas na forma parametrizada. Essa
parametrização consiste em extrair texto no intervalo de tempo fixo, valores dos parâmetros
do trato vocal, bem como o valor de pitch do sinal de fala (SIMÕES, 1999).
Por fim, a terceira estratégia utilizada é a conversão automática do texto para fala, a
partir de uma mensagem escrita. Esse sistema é extremamente abrangente pelo fato de
qualquer tipo de mensagem pode ser sintetizado, além disso, possui uma qualidade de voz
sintetizada reduzida, devido ao seu módulo de processamento linguístico não fornece a
transcrição fonética correta das palavras de texto.
Os sistemas de conversão texto para fala (Text-To-Speech - TTS) são sistemas de
informação capaz de gerar voz parecida com a fala humana, através da sintetização de um
texto. Segundo SIMÕES (1999) sistemas texto-fala são capazes de gerar fala sintetizada a
partir de uma mensagem escrita. A utilização desse sistema é extremamente abrangente, pelo
fato de qualquer tipo de mensagem pode ser representado na forma textual e,
consequentemente, qualquer tipo de mensagem pode ser sintetizada.
O conceito de sistema TTS é constantemente confundido com síntese de voz.
Conforme DUTOIT (1997), os sistemas TTS não devem ser confundidos com outras
máquinas falantes, tais como sistemas de resposta de voz que geram falas artificiais através da
concatenação de palavras isoladas ou parte de sentenças. Esses sistemas estão limitados por
um vocabulário de cem palavras e as sentenças são pronunciadas de forma restrita, sendo
assim, em sistemas TTS é inviável armazenar todas as palavras que serão ditas, pois a sua
função e realizar treinamento de novas sentenças.
Segundo GOMES et al. (1998), esses sistemas possuem inúmeras aplicações reais e
sua primeira utilização foi vinculada a solução de leitura para cego, onde o programa
analisava o texto de um livro e realizava sua conversão para áudio. Inicialmente esses
sistemas eram totalmente mecânicos e possuíam suas necessidades relacionadas à leitura de
braile e análise do texto em tempo real, com o avanço da tecnologia passaram a realizar
interação do homem com a máquina através dos computadores e dispositivos móveis. As
aplicações típicas dos sistemas texto-fala que auxiliam os deficientes visuais e os indivíduos
18
sem capacidade de falar, assim como aplicações relacionadas à leitura de textos literários,
possuem resistências por parte dos usuários (GOMES et al. ,1998).
De acordo com RABINER e SCHAFER (2007) a maior tarefa de um sistema textofala é produzir um sinal de fala com alta inteligibilidade, para que sua síntese seja útil na
comunicação entre o homem e a máquina, e a sua naturalidade seja tão perto da voz real. A
qualidade da voz é considerada limitada no sistema TTS, apesar do avanço, na maioria das
vozes, não é necessário ser especialista para identificar uma voz sintetizada.
A definição de naturalidade é bastante ampla e subjetiva (TAYLOR, 2009). Segundo
LATSCH (2011) a naturalidade é a capacidade de um sistema produzir a fala sintetizada o
mais próximo possível da fala humana. Já a inteligibilidade está relacionada ao sistema ler
claramente um texto. De acordo com LATSCH (2011) a inteligibilidade é a capacidade de
compreensão do conteúdo linguístico da fala sintetizado, de modo que tenha significado para
um falante natural da língua. Já a qualidade da voz é a capacidade do sistema em reproduzir o
sinal correspondente aos sons que caracterizam a linguagem falada.
2.1. Arquitetura
O sistema TTS utiliza uma arquitetura composta por duas etapas distintas realizada
em sequência: a primeira etapa corresponde à análise do texto, que consiste na obtenção
fonológica da mensagem a partir de sua forma ortográfica; já a segunda etapa consiste no
motor de síntese, que é responsável pela geração do sinal acústico associado à representação
fonológica que foi obtida na etapa anterior (SIMÕES, 1999).
A Figura 2.1 representa um diagrama funcional de um sistema texto-fala genérico;
esse sistema é representado por um módulo de Processamento de Linguagem Natural (PLN)
que realizar uma transcrição fonética do texto a ser lido a depender do ritmo desejado, e um
módulo de Processamento Digital de Sinais (PDS), que transforma a informação simbólica
que recebe em voz próxima ao natural. Os módulos PLN e PDS são, respectivamente,
módulos de análise de texto e motor de síntese (COUTO, 2010).
19
Figura 2.1 - Diagrama funcional de um Sistema TTS ( MAIA, 2006).
2.1.1 Processamento de Linguagem Natural
O módulo processamento de linguagem natural ou análise de texto também chamado
de front-end é responsável por traduzir o texto de entrada em uma respectiva linguagem de
representação fonética, que inclui informações a respeito das unidades acústicas de fonemas e
sílabas a serem produzidas, juntamente com características textuais de determinação de
tonicidade, indicadores de fronteiras das frases e palavras. Além disso, dependendo da
abordagem utilizada para sintetizar a fala, informações a respeito da duração dos modelos
acústicos, frequência fundamental (F0) e o contorno das locuções a serem sintetizadas podem
também ser requeridas para compor a informação contextual, tornando a tarefa do PLN mais
complexa.
O PLN possui duas fases de acordo com os procedimentos correspondentes a serem
realizados: O pré-processamento e o processamento de texto. A primeira fase o préprocessamento também chamado de normalização de texto é responsável pela conversão dos
números, abreviações, siglas, além de outras tarefas, de maneira que sua saída contenha
apenas palavras escritas. Segundo SIMÕES (1999), esse pré-processamento consiste em
substituir certos elementos do texto por seus equivalentes textos por extenso.
20
A segunda fase o processamento de texto é responsável por receber o texto como
entrada sem números e abreviações e retornar informações das palavras para o processamento
das informações de locução.
Neste pré-processamento ocorre à conversão do grafema em fonema (G2P) que
atribui transcrição fonética a cada palavra; a silabação que divide as sílabas em unidades
menores e a marcação da sílaba tônica que determina a parte da transcrição fonética (COUTO,
2010). As tarefas realizadas neste pré-processamento tendem ao enquadramento dos requisitos
técnicos empregados pela síntese de voz para os sistemas de texto-fala. Segundo MAIA
(2006), alguns procedimentos do pré-processamento são:

Conversão grafema-fonema: transforma cada caractere do texto de entrada em
símbolos acústicos de fonemas, de acordo com as regras idiomáticas.

Divisão silábica: divide cada palavra em subunidades, que podem ser sílabas, no caso
dos idiomas ocidentais.

Determinação de tonicidade: atribui níveis de proeminência para sílabas dentro das
palavras ou das palavras dentro das frases.

Duração: determina, com base em informações linguísticas obtidas até o momento, a
duração apropriada para cada unidade acústica.

Frequência Fundamental: Descrição do contorno da frequência fundamental F0.
2.1.2. Processamento de Sinal Digital
O módulo processamento de sinal digital ou motor de síntese também chamado de
back-end é responsável por receber as informações da locação e gerar uma voz sintetizada.
Possuindo como entradas para a execução deste módulo as transcrições fonéticas (G2P) e a
prosódia fonética com silabação e tonicidade (COUTO, 2010).
Esse módulo pode ser dividido em duas subfases. A primeira é responsável pelo
processamento das informações de locução e pela geração de um conjunto específico de
parâmetros acústicos, com informação prosódica necessária para o sinal de fala, já a segunda
é responsável pelo procedimento de melhoria da fala e pelo pós-processamento da voz
sintetizada (MAIA, 2006).
21
Segundo MAIA (2006), Existe diferentes técnicas que podem ser utilizadas para os
sistemas TTS, a partir da geração de informação. As mais usadas hoje em dia são: a técnica
baseada em regra que consiste em selecionar um parâmetro a partir de um banco de dados,
com regra pré-determinada na geração de voz sintetizada; técnica baseada em concatenação
que seleciona a informação da voz, de acordo com as suas características linguísticas e a
técnica baseado em HMM que possui um discurso de boa qualidade e realizar modificação em
suas características.
Já para TAYLOR (2009), essas técnicas de voz são historicamente apresentadas em
três gerações: primeira, segunda e terceira geração. A técnica da primeira geração apesar de
oferecerem fala inteligível, são limitadas no que concernem ao mapeamento dos parâmetros e
a alta complexidade de implementação.
As técnicas de primeira geração dominaram a área de síntese até o final dos anos 80,
contudo, atualmente, são raramente utilizadas e servem apenas como base para
conhecimento histórico. Duas técnicas prevaleceram naquela época: a Síntese por
Formantes cujas regras são capazes de determina a frequências de ressonância
existente no trato vocal e a Síntese Articulatória cujas regras simulam o trato vocal
humano e geram a voz ao produzir ressonância e articulação (TAYLOR, 2009).
Já as técnicas da segunda geração supriram essas dificuldades à medida que utilizam
dados dos componentes linguísticos para determinar os parâmetros. Especificações compostas
por uma sequência de itens contendo a descrição, o valor de frequência fundamental e a
duração dos fonemas permitem a geração de voz de forma mais simples e com maior
naturalidade (TAYLOR, 2009). As principais técnicas da segunda geração são concatenativa e
prosódica formadas pelo algoritmo Pitch Synchronous Overlap and Add (PSOLA) e suas
variações em que o maior desafio passou a ser a definição do tamanho das unidades fonéticas.
A partir do trabalho inicial de TOKUDA et al.(1995) que utilizou os Modelos
Ocultos de Markov para síntese de voz, uma nova geração de sintetizadores foi criada, a
terceira geração. As técnicas de síntese de terceira geração são baseadas em HMMs e estão
sendo constantemente utilizadas para a geração da voz.
Em 2006, foi apresentada a aplicação de MAIA (2006) com uma abordagem para o
idioma português do Brasil; já em 2010 os trabalhos baseados em HMM de COUTO (2010)
com sistema TTS stand-alone para o português do Brasil, puramente na plataforma Java, no
qual possuía uma integração com outros sistemas e o de SOUZA (2010) com o
desenvolvimento de um sintetizador de fala para o idioma português, baseado em HMM; por
fim em 2012 o trabalho de COSTA et al.( 2012) um sintetizador de voz baseado em HMMs
Livre.
22
2.2. Síntese Baseada em HMM
Os sintetizadores baseado em modelos escondidos de Markov (HMMs) estão sendo
bastante utilizados, devido à possibilidade de obter uma fala de boa qualidade em bases de
dados pequenas e pela característica da sua voz pode ser facilmente modificada.
Os métodos utilizados pelos sintetizadores baseada em HMM são formados pelos
parâmetros espectrais, como por exemplo, coeficientes de predição linear ou linhas de
frequência espectral; juntamente com os parâmetros de excitação, como o F0 que são gerados
a partir de uma sequência de modelos acústicos por maximização, entre outros fatores, da
probabilidade de saída de uma sequência de observações. Esses parâmetros são eventualmente
usados para construir fala sintetizada de acordo com o modelo de filtro-origem para produção
de fala (TOKUDA et al. , 2000) A Figura 2.2 apresenta a estruturação do sistema baseado em
HMM.
Figura 2.2 – Estruturação do sistema baseado em HMM (TOKUDA et al., 2000).
Uma das vantagens para utilizar o modelo escondido de Markov e que sua parte de
síntese é consolidada por um processo treinável, sendo mais flexível que a abordagem
concatenativa. Além disso, essa flexibilidade implica na possibilidade de realizar alterações
da sua voz sem recorrer a grande base de dados. De acordo com MAIA et al. (2003), outra
vantagem seria a obtenção de voz com uma base de dados reduzida, ou seja, em torno de
oitenta sentenças. Essa técnica é dividida em duas etapas: a parte de treinamento e síntese.
23
2.2.1. Treinamento
Segundo TOKUDA et al.(1995) o módulo de treinamento é um conjunto de HMMs
derivado da amostra de áudio, com uma locução que possui sua informação correspondente.
Esse módulo divide-se em três fases: extração dos parâmetros acústicos, geração dos rótulos
contextuais e treinamento dos HMMs.
Parâmetros acústicos: A extração dos parâmetros acústicos utilizam ferramentas de
processamento de sinais para retirar informações do som. Esses parâmetros possuem diversas
características, porém, as mais utilizadas são a frequência fundamental, pitch, os coeficientes
Mel-cepstrais (MFCC) e parâmetros não periódicos.
Rótulos contextuais: esta etapa utiliza as informações sobre a sentença, que são
passadas pelo módulo de análise de texto que realizam a conversão grafema-fonema,
silabação, determinação da sílaba tônica e etiquetagem gramatical para criar os rótulos
contextuais. Tais rótulos captarão todas estas relações em torno do fonema e servão para
realizar uma reprodução mais natural da prosódia
Treinamentos das HMMs: Durante a etapa de treinamento é utilizada uma técnica
chamada de agrupamento por contexto. Nela os streams de MFCC, F0, parâmetros não
periódicos e modelos de duração são separadas de acordo com as informações captadas pelos
rótulos contextuais. Com esses streams das HMMs treinados ocorrerá posteriormente uma
seleção no processo de síntese.
2.2.2. Síntese
De acordo com TOKUDA et al. (1995), o módulo de síntese é o momento onde
ocorre a geração da fala sintetizada a partir de um texto de entrada, esse módulo divide-se nas
seguintes fases: em geração de rótulos fonéticos, seleção e concatenação das HMMs,
determinação dos parâmetros e construção da excitação e filtragem.
Seleção e concatenação das HMM: na síntese, estes rótulos são usados para
selecionar as etapas criadas durante o treinamento, no qual serão utilizadas para sintetizar o
texto de entrada.
Geração dos rótulos contextuais: o processo de síntese utiliza a conversão das
informações sobre as sentenças dos rótulos contextuais, da mesma forma que aconteceu no
seu treino.
24
Determinação dos parâmetros: Na geração dos parâmetros acústicos são utilizadas as
HMMs de duração. Após isto, os coeficientes mel-cepstrais, logaritmos de frequência
fundamental e coeficientes não periódicos são determinados a partir de cada HMM
correspondente, para realizar a maximização da probabilidade de saída.
Geração da excitação e filtro de síntese: a última fronteira que falta para realizar a
síntese é utilizar os parâmetros obtidos na etapa de treinamento para produzir o sinal de voz.
Essa construção é formada pelas seguintes partes. A primeira parte corresponde a geração de
excitação que utiliza os logaritmos da frequência fundamental e os coeficientes não periódicos
com um método de vocoding de alta-qualidade e a segunda parte corresponde a utilização do
filtro de síntese MLSA (Mel Log Spectrum Approximation) (FUKADA et al.,1992).
2.3. Requisitos de um Sistema TTS em Português do Brasil
O sistema texto para fala em português do Brasil possui uma lista de requisito que
permite definir as características específicas da síntese de voz baseado em HMM (MAIA,
2006). Esse sistema possui os seguintes aspectos:
2.3.1. Geração de Informação
Esse sintetizador é formado pela geração de informação necessária para o
reconhecimento básico de texto, no qual executa o sistema a fim de gerar uma fala sintetizada.
Como mostrada na Tabela 2.1 a geração de informação da frase “leila tem um lindo jardim”.
A formação da informação é composta pelas seguintes partes:

Parte das fonéticas com os seus símbolos;

Parte da sílaba com a transcrição silábica e indicação de stress;

Parte da palavra com a transcrição da palavra e tag POS.
As informações de expressão são obtidas pelo módulo processamento de linguagem
natural (PLN). Sendo esse módulo necessário para executar os seguintes procedimentos:
conversão grafema-fonema; silabação; a determinação de stress e POS.
25
Fonética
Sílaba
Sil
l
e
j
l
a
t
e~
j
u~
l
i~
d
u
z
a
X
d
i~
sil
Palavra
Lejla
lej
la
te~j
te~j
u~
li~
u~
li~du~
du
ZaXdi~
zax
di~
Tabela 2.1 - Geração de informação (MAIA, 2006).
2.3.2. Conjunto de Fonéticas
O sintetizado utiliza um conjunto de fonéticas que são mostrados na Tabela 2.2,
representados com o uso do SAMPA (Speech Assessment Methods Phonetic Alphabet)
(WELLS et al., 1997).
Phone
Exemplos
Vogais Orais
a
E
e
i
O
o
u
Jatobá , capacete
é . pajé
capacete , resolver
justiça , país
opío ,jogos
jogo , golfinho
raul , culpa
Tabela 2.2 - Conjunto de fonética SAMPA (MAIA, 2006).
26
2.4. Sistemas TTS em Português do Brasil
As ferramentas do sistema texto-fala são utilizadas para realizar o treinamento das
vozes no idioma português do Brasil. Essa linguagem possui diversos projetos que utilizam
ferramentas de sintetização. Na década de 90, surgiu o primeiro projeto relacionado a sistema
texto-fala MBROLA, no qual foi desenvolvido pela faculdade politécnica de Mons. Esse
motor possui como objetivo a criação de um sintetizador de boa qualidade com técnica
concatenativa e aplicações em diversas línguas, inclusive no português (DUTOIT et al.,1996).
O sistema Liane TTS desenvolvido pela Universidade Federal do Rio de Janeiro
(UFRJ) possui um suporte para produzir a síntese de voz no português do Brasil e realiza o
processamento de síntese de voz no sistema MBROLA (LIANETTS, 2014).
O sistema FurbSpeech foi desenvolvido pela Faculdade de Blumenau e possui uma
API baseada em Java que converte texto em fala português. Além disso, contêm um sistema
MBROLA no back-end para fornecer a conversão de notação fonética para arquivo de mídia
em formato WAV (FURBSPEECH,2014).
O sistema Festival TTS é um software livre de síntese de voz que funciona em várias
plataformas de desenvolvimento, com um suporte para a síntese baseada em HMM.
Possuindo assim, uma arquitetura voltada para um framework integrado que não contêm TTS
Stand-alone (FESTIVAL 2014).
O Free TTS é um sistema de síntese de voz desenvolvido na linguagem de
programação Java sendo baseado no motor FLITE da CMU. Esse FLITE é um motor de
síntese de voz derivado do Festival (WALKER; LAMERE; KWOK, 2002).
Em 2002, surgiu um sintetizador de voz baseado em HMM com um motor HTS que
possui um algoritmo de maximização dos parâmetros. Parte do motor HTS, o HTS_Engine é
um software que sintetiza ondas de fala em HMMs treinado pelo HTS. Esse motor não inclui
qualquer analisador de texto, porém o sistema, MARY TTS ou outro analisador podem ser
utilizados como HTS. Esse HTS e HTS engine foram desenvolvidos em C, já no sistema
MARY TTS o HTS engine foi modificado para Java (SCHRÖDER et al., 2008).
Esses sistemas descritos proporcionam orientações para criação de uma nova voz, na
maioria dos casos, espera-se um conhecimento básico do sistema TTS e processamento de
fala, sendo assim, para melhorar a qualidade dessa voz, surgiu o sistema MARY TTS que
possui como diferencial uma ferramenta com interface do usuário, no qual, facilita a criação e
o treinamento da voz sintética (SCHRÖDER; TROUVAIN, 2003).
27
2.4.1. Sistema MARY TTS
MARY é uma plataforma contendo um sistema texto-fala, construída com a
colaboração do centro de pesquisas Alemão para inteligência artificial e pelo instituto de
fonética da universidade de Saarand. Segundo SCHRÖDER e TROUVAIN (2003), MARY
significa "modular arquitetura para pesquisa sobre a síntese de voz" e é um framework de
código aberto para sistema texto-fala desenvolvido em Java. Como indicado pelo nome,
MARY é considerado altamente modular com um foco especial na acessibilidade das etapas
de processamento intermediárias da síntese de voz com suporte para várias linguagens e
plataformas.
Esse framework possui um suporte para as linguagens alemão, inglês, japonês,
tibetano, russo e italiano, e permite a inclusão e criação de novas linguagens com uma
representação baseada em linguagem XML. Além disso, possui suporte para as plataformas
Windows, Linux, Mac OS e Solaries (SCHRÖDER; TROUVAIN, 2003).
A primeira versão do MARY foi lançada em 2002, porém a primeira versão de
código aberto foi lançada em 2006 a MARY 3.0.0. Já em 2007 foi lançada a versão MARY
3.1.0 com suporte para as plataformas Linux e Windows e para a língua inglesa e alemã. Em
seguida foi lançada a versão MARY 3.5.0 com a integração da síntese baseado em HMM e a
versão MARY 3.6.0 com o surgimento da ferramenta Voice Import para a criação da voz.
Em 2009 foi lançada a versão MARY 4.0, possuindo uma grande modificação na
organização do seu código, além da integração das ferramentas para adiciona novos idiomas e
suporte para sua própria voz, já em 2010 foi lançado à versão MARY 4.1 com funcionalidade
de prosódia para vozes baseada em HMM e a versão MARY 4.3 com novas vocalizações
expressivas, por fim em 2012 surgiu o MARYTTS 5.0 possuindo um código totalmente
reestruturado e um suporte de teste automatizado.
A arquitetura do MARY TTS é explicada de duas formas: Do ponto de visto do
processamento de linguagem natural e do ponto de visto teórico. Conforme SCHRÖDER e
TROUVAIN (2003), a arquitetura do processamento de linguagem natural possui quatro
partes:
1. O pré-processamento ou normalização do texto que realiza a expansão de abreviatura
e numeral;
2. O processamento de linguagem natural que realiza a análise linguística;
3. O cálculo dos parâmetros acústicos, aplicado ao módulo de entonação de voz;
28
4. O sintetizador de voz que cria um arquivo de som a partir de uma sequência de
fonemas.
Já a arquitetura técnica é considerada do tipo cliente-servidor, Sendo assim, esse
sistema é formada por um servidor principal que faz pedidos para o servidor executa alguma
tarefa e recebe o resultado do processamento do cliente. Um servidor pode suportar várias
línguas e espera pedidos dos clientes em uma porta especificada pelo usuário.
Segundo PAMMI; CHARFUELAN; SCHRÖDER, (2010) o MARY TTS utiliza
duas ferramentas com interfaces gráficas (GUIs) para a criação de uma voz sintetizada. A
ferramenta Transcription Tool que realiza o processamento de texto, sendo necessário um
arquivo de alofones em português e uma lista de palavras do dicionário português para inicia a
sua execução e a ferramenta Voice Import que realiza o treinamento do corpus de voz com
sua correspondente transcrição ortográfica (COUTO, 2010).
29
3. FRAMEWORK FIVE
O FIVE (Framework for an Integrated Voice Environment) é um framework
construído com o objetivo de auxiliar o desenvolvimento integrado de aplicações com
interfaces de voz. Sendo possível gerar motores de síntese de voz, de reconhecimento de fala
e de verificação de locutor e, por meio de uma API (Application Programming Interface)
própria, instanciar estes motores em aplicações desenvolvidas em múltiplas plataformas
(MACIEL e CARVALHO, 2010).
Esse framework foi desenvolvido através da linguagem de programação Java,
utilizando o modelo de divisão de responsabilidades MVC (Model-View-Controller)
(GAMMA et al.,1994). A escolha dessas tecnologias ocorreu devido aos requisitos de
portabilidade e de expansibilidade propostos pelo framework e a utilização do banco de dados
orientado a objetos Neodotis que permite o armazenamento de objetos nativos de forma
extremamente rápida, visto que não há necessidade de conexão (NEODATIS, 2013).
Os requisitos utilizados na construção do FIVE levam em consideração uma pesquisa
realizada junto à comunidade acadêmica da área de processamento de voz em (MACIEL,
2012). Segundo esta pesquisa, os especialistas consultados mencionaram que os requisitos
essenciais para a utilização de uma ferramenta produtiva que auxilie o desenvolvimento de
aplicação com interface baseada em voz são: rápida curva de aprendizagem, portabilidade
entre ambientes computacionais, e capacidade de extensão para as técnicas de extração de
características e de classificação de padrões.
Desenvolvido como parte da tese de doutorado intitulada Investigação de um
ambiente para o desenvolvimento integrado de interface de voz (MACIEL, 2012), o FIVE é
um software livre, registrado no Instituto Nacional de Propriedade Intelectual do Brasil
(INPI), com os direitos autorais pertencentes à Universidade Federal de Pernambuco. A ideia
dos mantenedores do FIVE é criar uma grande rede de colaboração para que a comunidade
acadêmica possa ajudar no aperfeiçoamento e no desenvolvimento de melhorias para a
ferramenta.
3.1. Arquitetura
A arquitetura geral do FIVE foi estruturada em forma independente, baseada em
cinco módulos. Os módulos básicos representam três áreas de processamento da fala: motor
30
de reconhecimento automático de fala (ASR), motor texto-fala (TTS) e o motor de verificação
automática de fala (ASV).
O módulo intermediário chamado de aplicação com interface de programação (API)
consiste em um conjunto de recursos necessários para comunicar os módulos de base com a
aplicação do módulo (APP). O módulo APP consiste em uma abstração da eventual aplicação
que podem ser desenvolvidos usando esta arquitetura (MACIEL e CARVALHO, 2010). A
Figura 3.1 mostra os módulos da arquitetura geral do FIVE.
Figura 3.1 - Módulos da arquitetura do FIVE (MACIEL e CARVALHO, 2010).
3.2. Motor de Síntese
O motor de síntese de voz foi desenvolvido como validação da tese de doutorado de
MACIEL (2012) com proposta de avaliar a qualidade da voz sintética produzida pelo FIVE.
Para a validação dos motores de síntese voz foi realizado um experimento em duas etapas: a
primeira consistiu no treinamento para obtenção dos modelos acústicos de duas corpóreas de
voz masculina e feminina, e a segunda consistiu numa pesquisa de opinião para avaliar a
qualidade dessas vozes.
O processo de avaliação proposto por MACIEL (2012) foi realizado por 30
voluntários que avaliaram 30 frases foneticamente balanceadas com quantidade de palavras
variadas, interrogativas e afirmativas. Estas frases foram sintetizadas com as vozes masculina
e feminina baseadas nos modelos de difones do Mbrola (MBROLA, 2014); nos modelos
acústicos obtidos com o FIVE e no sintetizador comercial da Loquendo (LOQUENDO,
2014). Dando sequência a essa avaliação foi realizado de forma bem sucedida à integração de
um sistema TTS baseado em HMM para o FIVE, com uma abordagem para a construção de
uma voz sintética de maior qualidade, utilizando a sua característica extensibilidade e
mantendo sua portabilidade característica (MACIEL e CARVALHO, 2012).
31
Essa avaliação iniciou com um cadastro do perfil dos entrevistados e o seu nível de
percepção, para assim, realizar a transcrição das amostras de áudio; o segundo passo dessa
avaliação ocorreu com a solicitação aos entrevistados que ouvissem uma sequência de áudios,
transcrevessem o conteúdo e avaliassem a qualidade segundo três critérios de qualidade:
volume, dicção e pontuação. Quanto aos resultados das transcrições das amostras de áudio os
resultados foram obtidos separadamente. Primeiro avaliou-se o percentual de frases acertadas,
de modo que todas as palavras contidas na frase foram transcritas exatamente como no texto
original. Em seguida foi obtido o percentual de palavras inseridas nessas frases que foram
transcritas corretamente (MACIEL e CARVALHO, 2012).
Como relação à qualidade das vozes geradas nesta avaliação, percebemos que as
vozes geradas pelo Loquendo possui uma melhor percepção de volume em relação às vozes
geradas pelo FIVE. Quanto à dicção e a pontuação, percebamos que as vozes baseadas no
FIVE apresentaram uma inteligibilidade média; já os resultados obtidos na transcrição das
frases foram bastante insatisfatórios para todas as vozes. Por fim os resultados das palavras
transcritas com sucesso foram bastante promissores. Mesmo as vozes baseadas no Mbrola que
possuíam uma baixa qualidade, conseguiu uma transcrição melhor (MACIEL e CARVALHO,
2012).
3.2.1. Criação do Motor
A criação do motor de síntese do FIVE é composta de três ações: extração de
características, classificação de padrões e agrupamento dos artefatos. O processo de extração
de características é realizado em dois passos. O primeiro compreende uma funcionalidade de
cadastro usada para manipular os registros das extrações e o segundo corresponde a escolha
da técnica HTK.
O processo de classificação de padrões consiste em três passos. O primeiro
compreende uma funcionalidade de cadastro usada para manipular os registros das
classificações, o segundo corresponde a escolha da técnica HMM baseado na biblioteca do
HTK e o terceiro passo compreende as funcionalidades de avaliação dos resultados.
Finalizada a etapa de classificação de padrões, onde os modelos acústicos foram
gerados e testados com sucesso, realiza-se o agrupamento dos artefatos. Por fim ocorre a
geração do motor de síntese.
32
3.2.2. Instanciação do Motor
Visando avaliar a instanciação dos motores de fala foram desenvolvidas três
aplicações com interface de voz em ambientes tecnológicos distintos em MACIEL (2012):
telefônico, dispositivos móveis e TV digital. Para minimizar o estudo das tecnologias que dão
suporte a esses ambientes, optou-se pela implementação de aplicação com escopo reduzido,
de modo que, tornar-se possível a instanciação da API no FIVE.
Diante desse cenário, a API do FIVE foi elaborada seguindo uma linha de
Comunicação para a instanciação da síntese de voz A Tabela 3.1 apresenta uma breve
descrição da classe criada para a API.
Tabela 3.1 - Funções de síntese implementadas pela API (MACIEL, 2012).
A utilização da API numa aplicação, ou seja, o processo de instanciação de um motor
consiste fundamentalmente em fazer a comunicação entre a aplicação e o recurso do motor
gerado pelo FIVE utilizando para isso as funções da API. A Figura 3.2 apresenta um
exemplo da instanciação da síntese.
Figura 3.2 - Código-fonte para instanciação de um sintetizador (MACIEL, 2012).
33
4. INTEGRAÇÃO
Diante dos bons resultados obtidos no FIVE e pela sua característica de
extensibilidade, foi escolhida a versão 4.1.1 do Framework MARY TTS para realizar essa
integração, pelo fato de possui duas ferramentas com interface gráfica que facilitam a criação
e o treinamento da voz.
A integração do sistema texto-fala do MARYTTS ao FIVE foi realizada no ambiente
Linux com a integração da ferramenta Transcription Tool do MARY TTS que utilizou um
dicionário com dez mil palavras em português disponibilizado por (MACIEL, 2012).
Em seguida, ocorreu a integração da ferramenta Voice Import para realizar a
preparação e o treinamento do corpus de voz com um discurso transcrito pelos vocais
feminino e masculino que possui 764 arquivos de áudio foneticamente balanceado,
oferecendo cerca de duas horas de áudio disponibilizado por (MACIEL, 2012).
Por fim, ocorreu a realização do teste de portabilidade das vozes geradas pela
ferramenta Voice Import, possuindo como resultado os vocais sintetizados em português com
a especificação das vozes masculina e feminina.
4.1. Estudo das Ferramentas
Na fase de estudo, foram identificadas duas ferramentas importantes no MARY TTS
para realizar a sintetização da voz: Transcription Tool e Voice Import.
A ferramenta Transcription Tool realiza a transcrição de texto, com especificações
exclusivas para a voz português do Brasil, através do conjunto de alfabeto, entonação e
fonemas. Essa ferramenta necessita dos arquivos em texto contendo as palavras do dicionário
em português, para iniciar a sua transcrição (CHARFUELAN, 2014). A interface e mostrada
na Figura 4.1.
Já a ferramenta Voice Import realiza a preparação e o treinamento de novas vozes, e
possui as seguintes características: extração de dados acústicos, extração de recurso de texto,
rotulagem automática e construção da voz baseada em HMM. Essa ferramenta necessita dos
arquivos correspondentes à transcrição do seu alfabeto para realizar a reparação e uma
corpórea de voz no formato WAV com o seu respectivo discurso transcrito no formato texto,
para iniciar o seu treinamento (CHARFUELAN, 2014). A interface e mostrada na Figura 4.2.
34
Figura 4.1 – Interface do Transcription GUI (MARY, 2014).
Figura 4.2 – Interface do Voice Import (MARY , 2014).
35
4.2. Treinamento da Voz
Para realizar o treinamento da voz é necessário seguir os procedimentos das
ferramentas de síntese de voz do MARY TTS. De acordo com CHARFUELAN (2014) esse
treinamento ocorre em duas etapas. Na primeira etapa é iniciada a construção do suporte para
o português do Brasil, que realiza a transcrição das palavras em sentenças sintetizadas e a
segunda etapa ocorre o treinamento da voz com os modelos HMMs. Dessa forma o primeiro
método será responsável pela organização do módulo de análise de texto e o segundo método
pela geração do motor de síntese.
4.2.1. Suporte Para o Português do Brasil
O fluxograma para a elaboração do suporte da língua portuguesa e mostrado na
Figura 4.3. Nesta etapa, utiliza o software Transcription Tool com a função de criar arquivos
para tratar requisições especifica do idioma português, como, silabação, conversão grafenafonema e sílaba tônica.
Figura 4.3 – Diagrama funcional para criação do suporte adaptado ( MARY, 2014).
Os
dois
arquivos
no
topo
do
fluxograma
são
o
alfabeto
fonético
(allophones.pt_BR.xml) e a lista de palavras (pt_BR.dic) com as suas respectivas transcrições.
O primeiro arquivo é constituído do alfabeto fonético em português, com um conjunto
específico de fonema sendo traduzido em vários parâmetros como diferenciação de vogal e
36
consoante e a posição da língua na hora da pronúncia, Sendo assim, no dicionário fonético,
além do fonema, existem as características específicas de cada língua. Esse arquivo pose ser
visualizado no ANEXO A (COUTO, 2010).
A segunda entrada para o Transcription Tool foi o arquivo (pt_BR_five.dic), com
uma lista de transcrições fonéticas com dez mil palavras disponíveis em MACIEL(2012).
Essas palavras serão transcritas por meio de treinamento com árvore de regressão que gera um
conversor grafena-fonema na forma de um transdutor finito de estado (KORNAL, 1999). Um
exemplo da lista de entrada pode ser visto na Tabela 4.1.
Palavra
Transcrição
abacate
a-ba-`ka-tSi
abriu
a-`briw
barraca
Ba-`Ra-ka
casa
`ka-za
Tabela 4.1 - Tabela com as transcrições.
Segundo KORNAL (1999), transdutores finitos de estado são máquinas de estado
finito que permitem produzir saídas, através das entradas previamente apresentadas. Sendo
assim, as entradas são as transcrições definida pelo usuário.
Além do conversor grafema-fonema, a ferramenta Transcription Tool gera
componentes básicos para o módulo PLN, pois esses arquivos são capazes de fazer a
conversão grafema-fonema e realiza uma etiquetagem rudimentar. Essa etiquetagem indica
que a palavra foi transcrita anteriormente. A lista de arquivos para o módulo PLN:

pt_BR_five_lexicos.fsr - transdutor finito de estado que realiza a conversão grafemafonema das palavras.

pt_BR_five_pos.fst - transdutor finito de estados responsável pela etiquetagem
rudimentar.

pt_BR_five_lexicon.dict - lista com as palavras passadas pelo usuário.
Após a criação destes arquivos, é necessário copiá-los para os locais específicos
dentro dos diretórios de instalação do Transcription Tool. Estes caminhos devem ser
especificados dentro do arquivo de configuração pt_BR.config que será executado quando a
ferramenta Voice Import estive em execução.
37
4.2.2. Construção do Modelo de Voz
Para realizar a construção do modelo de voz é necessário adapta o modelo com as
HMMs que serão responsáveis pela síntese; essa construção é dividida em duas partes: ajuste
do motor de síntese e criação da voz. A primeira parte será avaliada quantos e quais são os
fonemas a serem utilizados, quais modelos de HMM farão a síntese e quais arquivos de áudio
serão usados no treino. A segunda parte realiza a execução dos algoritmos e rotinas de
treinamento de HMMs.
Assim como na parte de preparação do suporte para o idioma português do Brasil,
esse estágio possui a ferramenta Voice Import para auxiliar a construção da voz. Essa
ferramenta foi desenvolvida por CHARFUELAN (2014) e realiza a preparação de um motor
de síntese de voz baseado em HMM. Os procedimentos para executa o Voice Import são mais
complexos, pois utilizam uma interface para a manipulação dos programas típicos da síntese
de voz e HMMs que não são simples de entende. Portanto um conhecimento mínimo sobre a
construção da voz é requisito para utilizar essa ferramenta.
Sendo assim, a ferramenta Voice Import realiza a execução de um conjunto de
componentes que facilitam o processo de criação das vozes, ou seja, utiliza o encapsulamento
de vários comandos numa interface gráfica do usuário. Os componentes exigidos para a
execução do processo podem ser classificados em dois grupos: preparação dos dados e
treinamento das HMMs.
4.2.2.1. Preparação dos Dados
Na preparação dos dados são analisadas algumas rotinas. Segundo CHARFUELAN
(2014) essas rotinas realizam a definição das características que serão utilizadas neste modelo,
com a instalação das ferramentas HTS, HTK, SPTK e HTS engine utilizada pelo Voice
Import, além da certificação dos caminhos necessários para os arquivos de texto e áudio.
Módulo Festvox2MARYTranscriptions
Este módulo realiza a conversão textual do projeto Festival para o formato MARY.
Segundo CHARFUELAN (2014), o módulo Festvox2MARYTranscriptions utiliza a
transcrição do formato festival (txt.done.data) para o formato MARY, que contem
38
transcrições separadas por sentença, no qual e criando um arquivo texto (arquivo_xx.txt)
correspondente para cada arquivo de áudio( arquivo_xx.wav).
Módulo HMMVoiceDataPreparation
Este módulo realiza a configuração do ambiente para criação da voz, analisa os
caminhos dos arquivos de áudio e texto e verifica os programas externos instalados. De
acordo com CHARFUELAN (2014) O módulo HMMVoiceDataPreparation analisa a
dependência dos programas externos para a realização das rotinas de treinamento e síntese,
por exemplo, o Praat para a determinação do pitch, EHMM para o etiquetamento dos
módulos fonéticos, HTS para o treinamento dos modelos HMMs.
Módulo AllophonesExtractos
Este módulo realiza a conversão do grafema-fonema no transdutor finito de estado,
que extraem os fones dos arquivos de áudio e textos, a partir da execução do sistema textofala (CHARFUELAN, 2014). Sendo considerada uma etapa importante para as etapas
posterior, assim como para a qualidade da voz gerada.
Caso o AllophonesExtractos não realize a conversão correta do grafema-fonema,
será impossível ocorre a rotulagem automática e o alinhamento forçado das palavras, além da
possibilidade de gerar palavras não correspondentes no treinamento das HMMs.
Módulo EHMMLabeller
Este módulo realiza a rotulagem dos arquivos com ajuda dos arquivos de áudios e
das suas respectivas transcrições; sendo dessa forma realizado a segmentação dos fonemas de
forma precisa. Segundo PAMMI; CHARFUELAN; SCHRODER, (2010) a eficiência neste
processo é fundamental para produzir uma voz de boa qualidade.
Para executar esse módulo e necessário utiliza os componentes do EHMM, que
realiza o alinhamento forçada entre os fonemas; dependendo do tamanho da base de áudio
esse processo pode demorar várias horas.
39
Módulo LabelPauseDeleter
Esse módulo analisa os possíveis problemas com os arquivos criados pelo EHMM e
verifica o tempo de execução dos componentes gerados para a construção da voz
Módulo TranscriptionAligner
Este módulo cria arquivos no formato XML, que contém textos com informação
sobre transcrições, divisão silábica, sílaba tônica e duração, sendo esses arquivos utilizados
nas etapas seguintes.
Módulo PhoneUnitLabelComputer
Este módulo converte os arquivos de rotulagem gerados pelo HMM para o formato
utilizado no MARY.
Módulo FeatureSelection
Este módulo oferece característica de naturalidade da voz que podem ser utilizados
na construção da voz. Segundo COUTO (2010) a voz sintetizada de um sistema texto-fala não
pode soar natural sem um tratamento das variações dos sons e pausa desta fala.
Módulo PhoneUnitFeatureComputer
Este módulo realiza a extração dos vetores de características para as sequências da
transcrição de cada fonema. De acordo com COUTO (2010) ocorre a aplicação do processo
de determinação da sílaba tônica e a busca das características distintas de cada fonema.
Esses aspectos mencionados são considerados as representações fonéticas com altura
da voz, tipos de vogais e contextuais com a forma anterior e o próximo fonema, sendo úteis
no treinamento das HMMs de duração, nos modelos das árvores de classificação e na geração
de parâmetros acústicos (CHARFUELAN, 2014).
40
Módulo PhoneLabelFeatureAligner
Este módulo realiza o alinhamento dos rótulos e vetores, no qual ocorre a
comparação entre os arquivos phonefeatures e phonelabels. Caso não estejam alinhados,
acusa um problema de alinhamento.
4.2.2.2. Treinamento dos HMMS
Para a criação das vozes baseado em HMM na ferramenta Voice Import são
utilizados os scripts de treinamento disponíveis no HTS (ZEN et al.,2007), esses scripts foram
modificados na parte do analisador de texto e na parte da magnitude do sinal para realizar o
treinamento das vozes. Dessa forma, os códigos foram configurados para a realização do
treinamento da voz.
Módulo HMMVoiceConfigure
Este módulo realiza a verificação dos arquivos de áudio e suas respectivas transcrições
fonéticas, pois devem estar nos formatos apropriados. Alguns parâmetros podem ser definidos
na Tabela 4.2.
Parâmetro
Valor
HMMVoiceConfigure.dataSet cid
HMMVoiceConfigure.speaker Five_cid
HMMVoiceConfigure.loweF0
40 ( male=40 , female = 80)
HMMVoiceConfigure.upperF0 280 ( male=280 , female =350)
Tabela 4.2 - Tabela com os parâmetros de configuração do HMM.
Módulo HMMFeatureSelection
Este módulo utiliza as características para realizar a captura da prosódia da voz.
Além disso, é uma alternativa para inserção de outras features, sendo assim, necessário o
treinamento das HMMs.
41
Módulo HMMVoiceMakeData
Este módulo realiza a modelagem dos componentes necessários para a criação da
voz. Segundo COUTO (2010) as cadeias de Markov não são treinadas com sinal de áudio, ao
invés disso, uma série de parâmetros com coeficientes cepstrais, frequência fundamental,
variância global que são extraídos da fala.
Módulo HMMVoiceMAkeVoice
Este módulo realiza o treinamento das HMMs referentes a cada fonema do alfabeto
fonético. De acordo com CHARFUELAN (2014) esse módulo possui um componente
específico que pode ser modificado no processo de treinamento, isso e equivalente ao que
ocorre no script original do HTS. Este componente gera informações gerais sobre a execução
das etapas de treinamento.
Módulo HMMVoiceInstaller
Este último módulo realiza a instalação dos arquivos que foram gerados pelos
componentes anteriores, sendo assim, gerado um arquivo de configuração e os arquivos
HMM correspondente a geração da voz mostrado na Figura 4.4.. Por fim um módulo de
processamento de linguagem natural inicia a análise do texto, em seguida as HMMs serão
selecionadas e concatenadas, gerando assim a voz sintetizada.
Figura 4.4 – Diagrama funcional da construção da voz adaptado (MARY, 2014).
42
4.3. Processo de Integração
Para realizar o processo de integração foram transferidas as classes do HTS Engine
do MARY TTS para o pacote FIVE CORE, sendo essas classes compactadas no arquivo
HTSengine.jar que possui como classe principal o HTSEngineTest. A estruturação dessa
classe e mostrada na Tabela 4.3.
HTS Engine
CartTreeSet
Árvore de decisão utilizada na síntese de HMM.
GVModelSet
Conjunto de variação média global e frequência fundamental,
mel-cepstrum, pontos fortes expressando e magnitudes de
Fourier.
HMMData
Os arquivos de configuração e variáveis globais para motor
HTS .
HTSEngineTest
Várias funções para a execução do hts Engine
HTSModel
Modelo de HMM para um determinado allophone.
HTSParameterGeneration Parâmetro com geração de HMMs treinados.
HTSPStream
Tipo de dados e procedimentos utilizados no parâmetro de
geração
HTSUttModel
Lista de objetos com modelo atual.
HTSVocoder
Síntese do discurso e parâmetros de voz.
PhoneTranslator
Tradução de allophone usados em HTS-HTK
Tabela 4.3 – Estruturação das classes do HTS engine.
43
Essa integração foi instanciada no Synthesizes do FIVE API, nesta parte não foi
necessário realizar nenhuma mudança, já no FIVE CORE foram restruturadas as classes do
HTS engine do MARYTTS para realizar a classificação dos parâmetros. A Figura 4.5
apresenta a estruturação pacotes do FIVE
Figura 4.5 – Estruturação dos pacote do FIVE.
4.4. Teste de Portabilidade
O teste de portabilidade foi iniciado com a execução do emulador SDK do Android,
sendo necessária instância o FIVE API e instala o ADT Bundle do Android, para assim
começa o desenvolvimento dessa aplicação. O estágio de desenvolvimento dessa
portabilidade envolve apenas uma classe Activity, que cuida da criação de uma janela para
lugar da interface do usuário através de uma ContentView e mostrado na Figura 4.6. Mais
detalhes da portabilidade no APÊNDICE A.
44
Figura 4.6 – Teste de portabilidade no emulador do Android.
Para realizar o teste de portabilidade no dispositivo móvel foi utilizado o Smartphone
Nexus4 E960. Caso deseja inicia o teste deve executar a aplicação FIVE no Nexus 4 (Figura
4.7), inserir o texto e o tipo de voice e clicar no speak para escuta a voz sintetizada (SOUSA;
SATURNINO e MACIEL, 2014).
Figura 4.7 – Teste de portabilidade no dispositivo móvel Nexus 4.
45
5. CONSIDERAÇÕES FINAIS
Diante da relação do homem com o computador, através da interface do usuário
iniciou o interesse do homem pelo mecanismo de fala e o surgimento dos primeiros
sintetizadores mecânicos; com o avanço da tecnologia digital surgiram os sintetizadores de
voz que reproduzem fala dos seres humanos e realizam transcrição de texto através do
processo de síntese de voz.
Apesar do avanço na área de síntese de voz nas últimas décadas, as vozes sintéticas
para o idioma português falado no Brasil não conseguiram atingir o mesmo desempenho de
inteligibilidade e naturalidade da voz quando comparada com outros idiomas. Esse
desempenho inferior está relacionado aos seguintes fatores: a tecnologia para geração de voz
requerem avanços específicos para melhorar o desempenho dos sintetizadores e as
ferramentas dos sistemas TTS do português do Brasil que necessitam melhorar o desempenho
da sua voz.
Sendo assim, surgiu a ferramenta de interface de voz FIVE, que foi desenvolvida
pela Universidade Federal de Pernambuco com o objetivo de desenvolver de forma contínua
aplicações com interface de voz. Especificamente para a área de síntese de voz vários
trabalhos foram realizados para a construção e instanciação de motores, mas os desafios ainda
permeiam a pesquisa com esta ferramenta.
Essa pesquisa propôs a integração do sistema texto-fala do MARYTTS ao FIVE,
com a realização da integração dos recursos de síntese baseada em HMM do MARY para o
FIVE. Como forma de validar a integração das ferramentas de síntese de voz do MARY foi
realizada o treinamento da voz sintética, através da seleção de dois locutores profissionais
com 800 sentenças foneticamente balanceadas e a realização de um teste de portabilidade dos
recursos integrados.
Os resultados obtidos com a integração do sistema texto-fala do MARY ao FIVE
foram satisfatórios com a realização do treinamento dos vocais de forma mais ágil, geração de
voz mais otimizada e a realização do teste de portabilidade na plataforma Android o que
contribuiu fortemente para a redução do tempo do seu treinamento, para a geração da voz
sintetizada com uma melhor naturalidade e inteligibilidade e para a solução do problema de
portabilidade existente no framework FIVE.
46
5.1. Dificuldades Encontradas
No início do projeto foi utilizado o sistema operacional Windows para realizar o
treinamento da voz, porém na execução da ferramenta Voice Import foi percebido a
necessidade de instalação dos arquivos que era executado apenas no Linux, sendo assim,
ocorreu a mudança para o sistema operacional Linux.
Na fase final dos treinamentos foi observado um problema na ferramenta Voice
Import com a finalização do seu treinamento, no qual possuía um limite da sua quantidade da
base de dados, sendo assim, percebido um problema na versão MARY 4.0.0 que estava sendo
utilizada, com isso foi escolhida uma versão mais recente que possuía a correção desse
problema, a MARY 4.1.1.
Além disso, foi encontrado dificuldade para retirar o HTS engine utilizado pelo
MARYTTS, pelo fato de possui uma integração projetada exclusivamente para esse sistema,
sendo assim, realizado uma adaptação na estruturação do MARY para retirar apenas a
implementação utilizada pelo seu HTS.
5.2. Atividades Paralelas
Para realizar a integração do sistema texto-fala do MARY ao FIVE foi estudado o
Ubuntu um sistema operacional baseado em Linux desenvolvido pela comunidade de
software livre que contêm aplicativos para navegador web, programas de apresentação, edição
de texto e planilha eletrônica (UBUNTU, 2014); e realizado um estudo da linguagem de
programação Java com auxílio de livros e cursos para iniciar essa integração.
Para executar o FIVE foi realizado um estudo no Netbeans um ambiente de
desenvolvimento integrado, no qual o FIVE foi desenvolvido. O Netbeans é um ambiente de
desenvolvimento livre e de código aberto que permite o desenvolvimento rápido e fácil de
aplicações desktop, móvel e web, além da execução em muitas plataformas, como Windows,
Linux (NETBEANS, 2014).
Para executar o sistema MARY TTS foi realizado um estudo do ambiente de
desenvolvimento Java Eclipse. O Eclipse é um ambiente de desenvolvimento de software que
inclui um espaço de trabalho e um extensível plug-in do sistema. Ambientes de
desenvolvimento incluem o Eclipse Java Development Tools (JDT) para Java, o Eclipse CDT
para C e C + + e o Eclipse PDT para PHP (ECLIPSE, 2014).
47
Para iniciar o teste de portabilidade foi realizado um estudo na plataforma Android.
Android foi desenvolvido pelo Open Handset Alliance e seu código é liberado como opensource. A estrutura do Android é baseada no kernel do Linux e existe um framework Java
acima dela. Devido a isso, os desenvolvedores de aplicativos Android são capazes de
construir aplicações Android facilmente usando a linguagem de programação Java. Para o
desenvolvimento de aplicativos do Android, o Google fornece um SDK Android com
bibliotecas e ferramentas úteis (ANDROID, 2014).
5.3. Trabalhos Futuros
A integração do sistema texto-fala do MARY ao FIVE utilizou as ferramentas de
treinamento de voz Transcription tool e Voice Import do MARY TTS. Sendo realizado o teste
de portabilidade no Android das vozes construídas com uma base corpórea disponibilizada
pelo FIVE. Esse sistema MARY TTS utiliza a técnica HMM que possui a implementação do
motor HTS totalmente em Java.
Por tanto, essa integração foi realizada com apenas uma técnica do sistema texto-fala
a HMM, além de possui uma corpórea de voz masculina e feminina limitada para a realização
do seu treinamento. A seguir, são apresentados alguns pontos que podem ser investigados no
futuro:

Aumentar a corpórea de voz masculina e feminina para melhora a qualidade da voz
sintética.

Realizar o treinamento da voz com a utilização de outras técnicas de sistema de
conversão texto-fala

Possibilitar a realização do treinamento da voz em outros sistemas operacionais, como
Windows e o Mac IOS.

Realizar a otimização das vozes com técnicas executadas no pós-processamento da
voz sintetizada.

Estruturar o dicionário português do Brasil com todas as palavras existentes
atualmente, inclusive com palavras regionais.
48
6. REFERÊNCIAS
ALBANO, Eleonora Cavalcante; AQUINO, Patricia Aparecida. Linguistic criteria for
building and recording units for concatenative speech synthesis in brazilian portuguese.
In: EUROSPEECH. 1997.
ANDROID, An Open Handset Alliance Project. Disponível em: <http://www. openhand
setalliance .com>. Acesso em: 06 Mai. 2014.
BARROS, Maria João Almeida de Sá. Estudo comparativo e técnicas de geração de sinal
para a síntese da fala. 2002.
COSTA, Ericson Sarmento et al. Um Sintetizador de Voz Baseado em HMMs Livre:
Dando Novas Vozes para Aplicações Livres no Português do Brasil. 2012.
COUTO, Igor Costa do. Desenvolvimento de recursos para a construção de um sistema
texto-fala para o português brasileiro. 2010.
CHARFUELAN, Marcela. Voice Import Tools Tutorial: How to build a new Voice with
Voice Import Tools. Disponível em: <http://MARY.opendfki.de/wiki/VoiceImportTools>.
Acesso em: 24 Mar. 2014.
DUTOIT, Thierry et al. The MBROLA project: Towards a set of high quality speech
synthesizers free of use for non commercial purposes. In: Spoken Language, 1996.
DUTOIT, T. An introduction to text-to-speech synthesis. Norwell, MA, USA, Kluwer
Academic Publishers, 1997.
ECLIPSE, I. D. E.; Documentação do IDE, Eclipse. Disponível em: <http://www.eclipse.
org>. Acesso em: 02 Mai. 2014.
FARINAZZO, Valéria et al. An Empirical Approach for the Evaluation of Voice User
Interfaces. Rita Mátrai, ISBN, p. 978-953, 2010.
FESTIVAL, software multi-lingual. Disponível em: <http://festvox.org/festival/>. Acesso
em: 13 Mar. 2014.
FUKADA, Toshiaki et al. An adaptive algorithm for mel-cepstral analysis of speech.
In: Acoustics, Speech, and Signal Processing, 1992. ICASSP-92., IEEE, 1992. p. 137-140.
FURBSPEECH, convert text into speech. Disponível em: <https://code.google.com/
p/furbspeech>. Acesso em: 13 Mar. 2014.
GAMMA, Erich et al. Design patterns: elements of reusable object-oriented software.
Pearson Education, 1994.
49
GOMES, De CT et al. Text-to-speech conversion system for Brazilian Portuguese using a
formant-based synthesis technique. In: Telecommunications Symposium, 1998. ITS'98
Proceedings. SBT/IEEE International. IEEE, 1998.
HUANG, Xuedong et al. Spoken language processing. Englewood Cliffs: Prentice Hall,
2001.
HTK, Extensions HTK. Disponível em: <http://htk.eng.cam.ac.uk/extensions>. Acesso em:
30 Mar. 2014.
HTS, HMM-Based Speech Synthesis System. Disponível em: <http://hts.sp.nitech.ac.jp/>.
Acesso em: 04 Abr. 2014.
HTSENGINE, hts_engine API. Disponível em <http://hts-engine.sourceforge.net/>. Acesso
em: 04 Abr. 2014.
KORNAL, A. (Ed.). Extended finite state models of language. Cambridge University Press,
1999.
LATSCH, Varner Luis. Desenvolvimento de um sistema de conversão texto-fala com
modelagem de prosódia. 2011. Tese de Doutorado. Universidade Federal do Rio de Janeiro.
LOQUENDO, Loquento Interactive TTS. Disponível em: <http://www.loquendo.com>.
Acesso em: 20 dez. 2013.
LIANETTS, Sinetizador de voz. Disponível em: <http://intervox.nce.ufrj.br/lianetts/>.
Acesso em: 13 Mar. 2014.
LIBERMAN, Mark. Computer speech synthesis: its status and prospects. Proceedings of
the National Academy of Sciences, p.107-115. 1994.
MAIA, R. da S. et al. Towards the development of a brazilian portuguese text-to-speech
system based on HMM. In: INTERSPEECH. 2003.
MAIA, R. S. Speech Synthesis and Phonetic Vocoding for Brazilian Portuguese based on
Parameter Generation from Hidden Markov Models. Tese (Doutorado em Engenharia).
Nagoya Institute of Technology, 2006.
MACIEL, A., CARVALHO, E. FIVE - Framework for an Integrated Voice Environment.
International Conference on Systems, Signals and Image Processing, Rio de Janeiro, 2010.
MACIEL, A. Investigação de um Ambiente para o Desenvolvimento Integrado de
Interface de Voz, Tese (Doutorado em Ciência da Computação). Universidade Federal de
Pernambuco, Recife, 2012.
MACIEL, A., CARVALHO, E. Integration and evaluation of an HMM-based Text-ToSpeech System to five. In: Systems, Signals and Image Processing (IWSSIP), 2012.
MARY, System Text-to-Speech. Disponível em: < http:// http://MARY.dfki.de/>. Acesso
em: 01 Mai. 2014.
50
MBROLA, The Mbrola Project. Disponível em: <http://tcts.fpms.ac.be/synthesis>. Acesso
em: 18 Fev. 2014.
NEODATIS. Neodatis Object Database. Disponível em: <http://neodatis.wikidot.com>.
Acesso em: 20 dez. 2013.
NETBEANS. the smarter and faster way to code. Disponível em: <https://netbeans.org/>.
Acesso em: 02 Mai. 2014.
PAMMI, Sathish; CHARFUELAN, Marcela; SCHRÖDER, Marc. Multilingual Voice
Creation Toolkit for the MARY TTS Platform. In: LREC. 2010.
RABINER, L. R., SCHAFER, R. W. Introduction to digital speech processing.
MFoundations and trends in signal processing, v. 1. Boston, Mass: Now, 2007.
RICHARD, O. Duda; PETER, E. Hart; DAVID, G. Stork. Pattern classification. A WileyInterscience, p. 373-378, 2001.
SCHRÖDER, Marc; TROUVAIN, Jürgen. The German text-to-speech synthesis system
MARY: A tool for research, development and teaching. International Journal of Speech
Technology, v. 6, n. 4, p. 365-377, 2003.
SCHRÖDER, Marc et al. The MARY TTS entry in the Blizzard Challenge 2008. In: Proc.
blizzard challenge. 2008.
SEARA, Izabel C. et al. Classificação Sintagmática Focalizando a Síntese de voz: Regras
para o Português Brasileiro. XXV Simpósio Brasileiro de Telecomunicações (SBrT 2007),
2007.
SIMÕES, Flavio Olmos. Implementação de um sistema de conversão texto-fala para o
português do Brasil, 1999.
SOUSA, D.; SATURNINO; MACIEL, A. M. A. A Portability Evaluation of Brazilian
Portuguese voices produced with MARY TTS. In: Systems, Signals and Image Processing
(IWSSIP), 2014.
SOUZA, C. F. Síntese de Fala em Português Brasileiro baseado nos Modelos Ocultos de
Markov. Dissertação (Mestrado em Ciência da Computação). Universidade Federal de
Pernambuco, 2010.
SPTK, Speech Signal Processing Toollit. Disponível em: <http://sp-tk.sourceforge.net/>.
Acesso em: 05 Mai. 2014.
TABET, Youcef; BOUGHAZI, Mohamed. Speech synthesis techniques. A survey.
In: Systems, Signal Processing and their Applications (WOSSPA), 2011.
TAYLOR, P. Text-To-Speech Synthesis. Cambridge: Cambridge University Press, 2009.
51
TOKUDA, Keiichi et al. An algorithm for speech parameter generation from continuous
mixture HMMs with dynamic features. 1995.
TOKUDA, Keiichi et al. Speech parameter generation algorithms for HMM-based
speech synthesis. In: Acoustics, Speech, and Signal Processing, 2000. ICASSP'00.
Proceedings. 2000 IEEE International Conference on. IEEE, 2000. p. 1315-1318.
UBUNTU, Comunidade Brasil. Disponível em: http://ubuntu-br.org/>. Acesso em: 20 Mai.
2014.
ZEN, Heiga et al. The HMM-based speech synthesis system (HTS) version 2.0. In: Proc. of
Sixth ISCA Workshop on Speech Synthesis. 2007.
WALKER, Willie; LAMERE, Paul; KWOK, Philip. FreeTTS: a performance case study.
2002.
WELLS, John C. et al. SAMPA computer readable phonetic alphabet. Handbook of
standards and resources for spoken language systems, v. 4, 1997.
52
APÊNDICE A
Esta seção de apêndice apresenta o artigo publicado no IWSSIP Systems, Signals and Image
em 2014. Com o título A Portability Evaluation of Brazilian Portuguese voices produced
with MARY TTS pelos autores Danilo Souza, Levi Saturnino, Alexandre M. A. Maciel da
Science and Technology Faculty of Caruaru – University of Pernambuco – Brazil.
Abstract - The voice user interface area has received great attention from academics and one
reason of this is convergence of devices and the massive production of multimedia content.
Additionally, the increasing use of smartphones has enabled the use of synthesis at times
when the user may not have their eyes fixed on the display. This work realized portability
evaluation of MARY TTS in operating system for mobile devices Android, for this two
Brazilian Portuguese voices were built and a portability evaluation was realized. The obtained
results are positives and promise to be a great useful for real application.
Keywords – Text-To-Speech; MARY TTS; Android; FIVE
I. INTRODUCTION
In recent years, the voice user interface area has received great attention from
academics due two reasons: first, due to improvements in the performance of automatic
systems for speech processing, including speech recognition, translation of spoken idioms and
voice synthesis; second, due to the convergence of devices and the massive production of
multimedia content, that requires faster and more efficient means of interaction with the user.
Besides those advancements, the build of applications with voice user interface that are able
to recognize speech, understand voice commands from its users and provide answers to them
still is a challenge, due to its interdisciplinary and complexity of development [1].
According to Huang et al. [2], the typical architecture for development of this type of
voice user interface has three main components: the first one represents the set of engines
responsible by speech recognition or by voice synthesis; the second one consists in a API
(Application Programming Interface) that normally is used to make ease the communication
between engines and application; and the last one consists in a set of possible applications that
might be developed. This architecture has been guiding works performed in this area over the
years and several resources have been created with the goal to help this hard process.
53
The construction of the speech recognition and synthesis engines is fundamentally a
process of Pattern Recognition, which usually follows a common architecture for any pattern:
pattern acquisition, feature extraction, pattern classification and analysis of the results [3]. In
the other hand, the instantiation of these engines on application layer must follow a set of
default settings specified in the API, depending on the programming language or platform.
The applications can be as diverse as the needs of developers and their customers.
In recent years, many studies have been conducted on academics to provide
improvements on rates of speech recognition and quality of synthetic speech, however, little
effort has been made in bringing these advances to the application level. The available
resources today meet specific applications, have slow learning curve and present serious
problems of integration, extensibility and portability.
Given this scenario, was designed FIVE (Framework for an Integrated Voice
Environment) with purpose to assist the process of construction and instantiation of speech
engines in different technological environments (telephone, mobile, digital TV), in an
integrated manner, scalable for various techniques and portable [4]. The FIVE is an open
source tool "in development", requiring collaboration of academia to assist the
implementation of new features and to make improvements in existing processes.
In Maciel e Carvalho [5] was presents an integration process and a quality evaluation
of HMM-based Text-To-Speech System to FIVE. In that work, resources like SPTK [6], HTS
[7] and HTS Engine [8] were used for feature extraction, training and tests respectively.
Besides voice analysis has acquired extremely relevant results compared with Loquendo
synthesizer, a shell command executor was implemented to make calls to these resources.
This solution is against the FIVE’s independence platform proposal and a similar Java
implementation was suggest as future work.
Thus, this article aims to realize portability evaluation of MARY TTS [9], an opensource, multilingual Text-to-Speech Synthesis platform written in Java, in operating system
for mobile devices Android. For this, the work is organized as follows. Section II provides a
brief overview of state of art of speech synthesis and mentions the main software features
available for the synthesis-based HMM. Section III describes the voices development process
of MARY TTS, divided in two sections: natural language processing and voice generation.
Section IV shows the validation test realizes in Android operation system for mobile
environment. Section V brings the final work considerations.
54
II. SPEECH SYNTHESIS
Speech synthesis is the process of creating a synthetic replica of a speech signal so as
to transmit a message from a machine to a person, with the purpose of conveying the
information in message [10]. There are different strategies that can be used to implement a
speech synthesis system based on algorithms. The choice of the most appropriate strategy
depends fundamentally of the systems characteristics.
According Simões [11], two characteristics are the most important on strategy
determination: the signal quality – some applications require only a intelligible speech signal,
other require that the signal quality must be as close as possible to natural speech; and the
vocabulary size – simple systems working with fixed and small size vocabularies, on the other
hand, more complex systems, like the Text-To-Speech (TTS) systems, require a very large
vocabularies.
Speech synthesis has progressed remarkably in recent years, and it is no longer the
case that state-of-the-art systems sound overtly mechanical and robotic. Due to this, the TTS
systems have an enormous range of applications. Systems for e-books, screens and web sites
are extremely useful for handicapped users. Additionally, the increasing use of smartphones
has enabled the use of synthesis at times when the user may not have their eyes fixed on the
display [12].
The process of synthesizing voice consists of two main steps. The first one is the
Natural Language Processing (NLP) which consists in the transcription of an input text into a
phonetic representation, and the second one step is the Voice Generation in which waveforms
are generated and the acoustic output is produced. These two phases are respectively called
the high-level and low-level synthesis [13]. A simplified version of the process is shown in
Figure 1.
Figure 1. Description of Speech Synthesis process [13].
55
According to Maia [13] there are different approaches or techniques that can be used
for generating speech from an utterance. The most currently used are: speech synthesis for
selection and concatenation of units; speech synthesis based on parameters generated by
Hidden Markov Models (HMM) and synthesis by rules. Synthesizers based on HMMs have
been greatly appreciated recently because of the possibility of obtaining good-quality speech
from a rather small database, and due to the fact that voice characteristics can be easily
modified.
Two important resources designed for generating speech synthesis using HMM are:
HTS (HMM-based Speech Synthesis Toolkit) and MARY TTS. The HTS is a modified
version of HTK (HMM Toolkit) that includes Expectation Maximization algorithm to
estimate the parameters, speaker adaptation for multiple languages, and training based on
minimum error generation [14]. Part of the HTS, HTS Engine API is a software for
synthesizing speech waveforms from HMMs trained by HTS.
The MARY Text-To-Speech System is completely written in Java and supports both
concatenative and HMM-based synthesis. MARY stands for “Modular Architecture for
Research on speech sYnthesis” and it is a modern open source framework for TTS. As of
version 5.0, supports German, British and American English, Telugu, Turkish, Russian and
Italian and more languages are in preparation. Charfuelan [15] present a Tutorial that explains
the procedure to build a new voice, while Couto et al. [16] describes the development of a
complete TTS system for Brazilian Portuguese using the MARY framework based on the
HMM speech synthesis approach. This work was based on these two references for
development of two Brazilian Portuguese voice (male and female) using MARY TTS.
III. BUILDING VOICES WITH MARY TTS
As mentioned in section II, the process of building a speech is divided into two
phases: Natural Language Processing and Voice Generation. The following subsections
provide more details of this development process.
A. Natural Language Processing
The NLP phase used in this work was based on settings Charfuelan [15] as shown in
Figure 2 and used Mary Transcription GUI tool, available on TTS MARY Framework for
obtaining the phonetic information.
56
Figure 2. Block diagram of the steps for creating the BP version of MARY.
Adapted from [15].
This phase requires a set of files for each language that it supports. The philosophy
adopted by MARY is to provide support for the creation of a basic data-driven text preprocessing module. This work adopted the recipe suggested by MARY for training finite state
transducers (FST). The FST training procedure requires the definition of a phonetic alphabet
(allophones.pt_BR.xml) and a dictionary (pt_BR.dic), with preferably all the words that
should be supported. The phonetic representation used was the same used by Couto et al. [16]
based on SAMPA [17] and the dictionary was the same used in Maciel and Carvalho [5] with
10,019 words.
As results of this phase, it was generated two FSTs. The first onde is responsible for
converting graphemes into phonemes. The second FST is a rudimentary part-of-speech tagger
and, for the developed system, tries only to distinguish functional and non-functional words.
Both FSTs are based on classification and regression trees (CART) and more details can be
57
found in [18]. At the end of the process, four files were created and compose the text preprocessing module (pt_BR lexicon.fst - grapheme-to-phoneme FST; pt_BR.lst - letter to
sound for unknown words; pt_BR pos.fst - functional words FST; pt_ BR lexicon.dict –
dictionary).
B. Voice Generation
After obtaining the phonetic information, still following settings Charfuelan [15] was
chosen the HMM-based approach for Voice Generation. For HMM training, one needs a
labeled corpus with transcribed speech. This work used the speech data available on the
Maciel e Carvalho [5], composed of two speakers (male and female) and with 764
phonetically balanced utterances, offering approximately two hours of audio.
The used tool for Voice Generation was Voice Import Tool (VIT). VIT is a
Graphical User Interface (GUI) which contains a set of Voice Import Components and helps
the user to build new voices under the MARY. Figure 3 shows GUI screenshot.
Figure 3. The GUI of the VoiceImport tool.
According Charfulean [15] the steps for building a HMM voice for the MARY
platform, using VIT, can be summarized in the follow sections:
I - Download MARY TTS including Voice Import Tools using the trunk version.
II - Check the necessary programs and files using a script to facilitate the checking and
installation of the necessary external programs. Basically the required programs are the same
used by HTS. In this work the installed programs versions are: HTS-2.2_for HTK-3.4.1.patch,
58
HTK-3.4.1, SPTK-3.4.1, hts_engine_API-1.05 and other programs normally available in
Linux, like: awk, perl, bc, sox, tcl, and snack.
III - Check data: audio and text files. To do this, it is necessary execute the step-by-step
procedure in Voice Import Tools Tutorial [15] to make sure that the data, sound (wav) and
text files are in the correct place and format. For sound files, the used format was 16kHz,
mono, 32 bits, and for text files was used the output of NLP stage.
IV - Run the Voice Import tools. This section covers fourteen steps necessary for HMM
training. For the subtask of file preparation it has: AllophonesExtractor, EHMMLabeller,
LabelPauseDeleter,
PhoneUnitLabelComputer,
TranscriptionAligner,
FeatureSelection,
PhoneUnitFeatureComputer, PhoneLabelFeatureAligner. For the subtask of HMM training:
HMMVoiceDataPreparation,HMMVoiceConfigure,HMMFeatureSelection, HMMVoiceMake
Data, HMMVoiceMakeVoice and HMMVoiceInstaller. A complete description of each
component is available on Charfulean [15].
V - The last component for Voice Generation is HMMVoiceInstaller. It installs the new voice,
copying the necessary files to the correct locations. After this stage the TTS system is already
supported by the MARY server.
MARY provides support to the client-server architecture. Hence, a TTS system is
decomposed in a server application, which contains the components to make the synthesis,
and a client application, which makes requests for the server to execute some task. A server
can support many languages and waits requests from one or several clients in a port specified
by user. A set of configuration files, read at system startup, defines the processing
components to be used [19].
IV. PORTABILITY EVALUATION ON ANDROID
Android [20] is the world’s most popular mobile platform. It is developed by the
Open Handset Alliance and its code is released as open-source. Android mobile devices are
used by numerous people, and nowadays, several developers are creating Android
applications. The structure of Android is based on the Linux kernel and there is a Java
framework above it. Due to this, Android application developers are able to build Android
applications easily by using the Java programming language. For developing Android
applications, Google provides an An-droid SDK with libraries and useful tools.
59
The Android SDK provides you the API libraries and developer tools necessary to
build, test, and debug apps for An-droid. The basic steps for developing applications
encompass four development phases, which include [21]:
I - Setup: in this phase the developer install and set up your development environment. You
also create Android Virtual Devices (AVDs) and connect hardware devices on which you can
install your applications.
II - Development: in this phase the developer set up and develop your Android project, which
contains all of the source code and resource files for your application.
III - Debugging and Testing: in this phase the developer build your project into a debuggable
apk package that you can install and run on the emulator or an Android-powered device.
IV - Publishing: in this phase the developer configures and builds your application for release
and distributes your application to users.
In this work it was installed ADT Bundle to quickly start developing apps. It includes
the essential Android SDK components and a version of the Eclipse IDE with built-in ADT
(Android Developer Tools) to streamline your Android app development. The development
stage involved only one Activity class, which takes care of creating a window for place the
user interface through a ContentView as shown in Figure 4.
Figure 4. The GUI of the VoiceImport tool.
60
For codification, was used Version 4.4 of operation system and MediaPlayer class to
realize the communication with MARY TTS. For debugging and testing stage SDK emulator
was used initially, and then, Nexus 4 E960 device. No publication was realized because it was
not the aim of the project.
V. CONCLUSIONS
This paper presents the development process of two voices for the Brazilian
Portuguese through the MARY TTS system and the evaluation of them on operating system
for mobile de-vices Android.
The development process of the voices, taking MARY Framework GUIS’s as
reference was successful. Considering the expertise of the team, the use of this kind of
interface optimized the work and become a faster learning curve. Regarding the quality of the
generated voices, there were no significant differences when compared to previous work with
the same database. An important observed point in this stage was the need to use to keep the
calls to external programs. We assessed that this dependence does not give serious problem of
portability since the step of generating voice invariably is always per-formed on servers with
high processing capability.
Regarding the portability evaluation, the use of MARY TTS’s client-server
architecture optimized the realized tests. This type of architecture is commonly used
mechanisms for speech recognition, such as Apple's Siri or Google search by voice. However,
considering that Android natively provides resources for speech synthesis and, considering
the usual problems of connectivity services that occur in Brazil, we believe the
implementation of a process of adapting this architecture is necessary for a localhost
architecture.
Thus, we consider that the final results of this work satisfactorily met the initial
objective of evaluating the ability of the MARY TTS portability for the mobile environment,
and we believe that, as future work, a process of integrating of this resources to FIVE can
provide great space for building applications with voice synthesis in Brazilian Portuguese in
the Android environment.
61
REFERENCES
[1] Salvador, V. F. M., Kawamoto, A. L. S., Oliveira Neto, J. S., 2010. An Empirical
Approach for the Evaluation of Voice User Interfaces, Users Interfaces, v.1, pp 270.
[2] Huang, X., Acero, A., Hon, H.W., 2001. Spoken Language Processing –A Guide to
Theory, Algorithm, and System Development. New Jersery: Prentice Hall.
[3] Duda, R.O., Hart, P.E., Stork, D.G., Pattern Classification, Wiley-Interscience. 2000.
[4] Maciel, A. M. A., Carvalho, E. C. B. (2010) “FIVE – Framework for an Integrated Voice
Environment”. In: Proceedings of International Conference on Systems, Signal and Image
Processing, Rio de Janeiro.
[5] Maciel, A. M. A., Carvalho, E. C. B. (2012) “Integration and Evaluation of an HMMbased Text-To-Speech System To FIVE”. In: Proceedings of International Conference on
Systems, Signal and Image Processing, Rio de Janeiro.
[6] SPTK, available at: sp-tk.sourceforge.net/ (29/11/2013).
[7] HTS, available at: hts.sp.nitech.ac.jp/ (29/11/2013).
[8] HTS Engine, available at: hts-engine.sourceforge.net/ (29/11/2013).
[9] MARY TTS, available at: mary.dfki.de/ (29/11/2013).
[10] Tabet, Y., Boughazi, M. Speech Synthesis Techniques: A Survey. In: Proceedings of
International Workshop on Systems, Signal Processing and their Applications, Argel, Argélia,
2011.
[11] Simões, F. O. “Implementação de um Sistema de Conversão Texto-Fala para o Português
do Brasil”. Master Dissertation. State University of Campinas, 1999.
[12] Taylor, P. Text-To-Speech Synthesis. Cambridge, Cambridge University Press, 2009.
[13] Maia, R. S. “Speech Synthesis and Phonetic Vocoding for Brazilian Portuguese based on
Parameter Generation from Hidden Markov Models”. Doctoral Thesis. Nagoya Institute of
Technology, 2006.
[14] HTK – HMM Toolkit, available at: htk.eng.cam.ac.uk/ (29/11/2013).
[15] Voice Import Tools Tutorial : How to build a HMM-based voice for MARY 5.0 TTS
system, available at: mary.opendfki.de/wiki/HMMVoiceCreation-MARY-5.0 (29/11/2013).
[16] Couto, I., Neto, N., Tadaiesky, V., Kalutau, A., Maia, R. (2011) “Na Open Source
HMM-based Text-To-Speech System for Brazilian Portuguese”. In Proceeding of
International Telecommunications Symposium, Manaus.
[17] SAMPA for Porguguese. Available at: www.phon.ucl.ac.uk/home/sampa/portug.htm/
(29/11/2013).
[18] Transcription
(29/11/2013).
Tool.
Available
at:
mary.opendfki.de/wiki/TranscriptionTool/
62
[19] Schröder, M. and Hunecke, A. “MARY TTS participation in the Blizzard Challenge
2007”, 2007.
[20] Google Android - An Open Handset
http://www.openhandsetalliance.com/ (29/11/2013).
Alliance
Project,
available
[21] Google Developer, available at: http://developer.android.com/ (29/11/2013).
at:
63
ANEXO A
DICIONÁRIO FONÉTICO
Download

Danilo de Sousa Barbosa