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