Você sabe o que é TTS?
Quer ouvir o nosso texto em vez de ler? É só clicar no player abaixo!
Não? Então esse texto aqui é para você! E se você sabe, mas está interessado em entender um pouco mais sobre essa tecnologia, ou quer conhecer um dos projetos do núcleo de inovação da Mutant, esse texto também é para você!
Bom, TTS é uma sigla que vem do inglês text-to-speech, literalmente texto para fala, ou seja, é o processo de sintetizar a fala humana a partir do texto escrito. Portanto, os TTSs são sistemas automatizados de conversão de texto em um sinal acústico que nós chamamos de fala.
Esses sintetizadores de fala possuem diversas aplicações, e recentemente, com o grande avanço que novas tecnologias têm possibilitado, os TTSs são cada vez mais utilizados. No campo da acessibilidade, o TTS tem a importante função de auxiliar e promover a democratização de conteúdos e acesso a ferramentas para indivíduos que possuem qualquer tipo de comprometimento funcional da visão, ou mesmo para aqueles que não tiveram uma alfabetização adequada. Já em interfaces conversacionais, a síntese de voz se faz cada vez mais relevante na busca por interações mais humanizadas e, portanto, mais naturais e intuitivas para os usuários.
Para a gente aqui da Mutant, a síntese de voz vai trazer maior agilidade para um processo que ainda é realizado de forma artesanal, ou seja, que envolve um locutor gravando em estúdio todas as possibilidades de áudios das nossas URAs e VDAs. Só que para essa substituição poder ocorrer, ainda que de forma parcial, nós precisamos de um sintetizador de voz que, além de utilizar a voz dos nossos locutores, seja capaz de manter o alto padrão de humanização das nossas interfaces, e infelizmente esse produto ainda não está disponível para falantes do português brasileiro.
Para solucionar esse problema, resolvemos criar o nosso próprio TTS, o Black Bolt. O projeto ainda está em desenvolvimento, mas já me trouxe muito conhecimento a respeito dessa tecnologia que está cada vez mais presente nas nossas vidas. Por isso resolvi compartilhar um pouco desses aprendizados aqui na nossa página do Dialograma, e, claro, também um pouco dos resultados que a gente já alcançou até agora!
Por que fazer um TTS é tão difícil?
Nessa jornada de criação de um sintetizador de voz humana que seja capaz de substituir a voz de um locutor gravada em estúdio, quais são alguns dos nossos maiores desafios?
Bom, os sintetizadores de voz são aplicações que recebem como input para a produção da fala principalmente o texto escrito (eu digo principalmente porque algumas abordagens permitem o uso de marcações chamadas SSML, que possibilitam o ajuste de alguns parâmetros da fala sintetizada). Esse fator apresenta um dos grandes desafios desses sistemas, já que a quantidade de informação codificada na escrita é muito menor que a presente na fala.
Quantas vezes você foi mal-entendido em uma conversa pelo WhatsApp? A pessoa achou que você estava bravo quando, na verdade, estava só fazendo uma brincadeira, ou acharam que você estava triste, quando só estava meio sem tempo de responder… Enfim, a escrita simplesmente não tem a mesma capacidade da voz de transmitir as intenções e as emoções do falante. Talvez por isso o uso de emojis tenha se popularizado tanto nos últimos anos, porque eles trazem uma camada extra de sentido ao conteúdo verbal do texto, mas isso é assunto para um outro momento!
E o que a voz tem que a escrita não consegue registrar? A palavra-chave para responder essa questão é PROSÓDIA. Mas, afinal, o que isso significa?
A prosódia é um guarda-chuva que dá conta de vários aspectos da nossa fala que muitas vezes extrapolam o nível da escrita, como ritmo, ênfase, intensidade, melodia… Eu digo muitas vezes porque existem alguns elementos da escrita que tentam trazer informações prosódicas ao texto, como a pontuação, o uso do negrito ou da caixa-alta, e mais recentemente o uso dos emojis, como eu já tinha comentado, mas o efeito desses elementos na leitura é limitado, tanto que uma mesma frase pode ser lida de diversas maneiras.
Juntos, esses aspectos da prosódia conseguem transmitir de forma muito mais clara a intenção e a emoção do falante ao se comunicar. É claro que as expressões facial e corporal também são elementos importantes do processo comunicativo, porém só a voz já é capaz de transmitir diversas informações que vão muito além do conteúdo explícito das palavras.
Nos TTSs a prosódia também traz naturalidade à fala produzida. Aqui vamos fazer uma pequena pausa na nossa discussão para lembrar do texto do Adriano Pequeno publicado aqui no Dialograma sobre seleção de vozes para interfaces conversacionais.
Ele destaca dois elementos extremamente importantes que precisam estar em equilíbrio para uma experiência conversacional humanizada, que são clareza e naturalidade. Portanto, se temos a intenção de usar uma voz sintetizada nesses mesmos contextos, ou seja, em interfaces conversacionais humanizadas, o balanço entre esses dois elementos continua sendo um ponto central para o nosso TTS, que deve ser capaz de produzir uma fala compatível com a forma como nós humanos conversamos.
Olha só esses exemplos de frases sintetizadas sem (exemplos da Amazon Polly e do Google text-to-speech) e com (Black Bolt) um tratamento prosódico:
A maioria dos sintetizadores de voz disponíveis no mercado já superou o problema da inteligibilidade. A pronúncia tende a ser bem articulada, o que confere clareza à fala, porém, afasta a naturalidade desejada. A fala espontânea contém elisões, coarticulações, hesitação, elementos paralinguísticos como a respiração e risadas, e uma combinação de elementos prosódicos que traz expressividade à fala.
Todos esses fatores ainda precisam ser mais bem estudados e desenvolvidos nos sintetizadores de voz, para que eles consigam finalmente produzir uma voz de fato natural. Uma vez encontrado o balanço entre clareza e naturalidade, uma próxima etapa é a superação da fala com entoação neutra (que é, atualmente, o que está disponível na maioria dos TTSs), sintetizando uma voz capaz de transmitir as nossas diferentes emoções.
É claro que o desenvolvimento de um TTS envolve muito outros desafios além dos citados, tais como lidar com diferentes sistemas semióticos, resolver questões de ambiguidade etc. Porém, o problema do modelamento prosódico que confere naturalidade e expressividade é ainda a principal barreira entre a voz gravada por um locutor em estúdio e a voz sintetizada por um TTS.
Como funciona um TTS?
Tentativas de produção da voz humana remontam ao século XVIII, com o desenvolvimento de métodos mecânicos de produção de voz. Desde então o processo de síntese de voz evoluiu bastante, principalmente com o surgimento da tecnologia da informação no século XX, e mais recentemente com os sistemas de redes neurais, que trouxeram uma melhora significativa nas diversas áreas de processamento da linguagem, como tradução automática, reconhecimento de fala e síntese de voz.
Existem diversos métodos diferentes para se desenvolver um TTS, porém, duas etapas básicas para se realizar essa tarefa estão sempre presentes: a análise e a síntese.
A etapa de análise decodifica o texto escrito, extraindo informações linguísticas. Essa etapa inclui processos como normalização do texto, segmentação em sentenças e palavras, classificação semiótica dos tokens e resolução de ambiguidades. A classificação é necessária porque na escrita usamos diferentes sistemas de representação, como números, símbolos, siglas e abreviações.
Quando escrevemos “a bebê nasceu dia 14/10/2020 com 3,7kg. O parto foi assistido pela Dra. Patrícia”, o TTS precisa ter ferramentas para entender e pronunciar de forma correta todos os elementos do texto. Já o problema das ambiguidades surge quando temos palavras que possuem a mesma grafia, porém, a pronúncia é diferente, e o nosso TTS vai precisar escolher a pronúncia correta em cada ocasião. Os problemas prosódicos e entoacionais geralmente são de responsabilidade da etapa de análise.
A etapa de síntese é realizada por um vocoder, que transforma as informações linguísticas em sinal de áudio. Essa etapa é responsável por um outro desafio, não citado anteriormente, que é a qualidade da voz sintetizada. Dependendo do método utilizado nessa fase, o resultado pode ser uma voz robotizada, ou seja, com alguns efeitos indesejados como reverberação, distorção e crackling. A qualidade da voz produzida também é essencial quando se almeja um resultado que possa ser equivalente à voz humana.
Essas duas etapas estão sempre presentes no desenvolvimento de um TTS, mas existem diversos métodos diferentes que podem ser utilizados para realizar essas tarefas. Aqui faço somente um breve resumo dos métodos principais:
1. Síntese por concatenação
Nesse método o texto é dividido em pequenas unidades (que podem ser fones, sílabas ou até palavras inteiras) que devem ser posteriormente concatenadas. Essas unidades serão mobilizadas de um repositório de áudios previamente gravados que deve conter todas as unidades possíveis que o sistema pode precisar no momento da síntese.
Portanto, é um método altamente dependente da qualidade das gravações do repositório, e do tipo de unidade escolhida para concatenação. Essa abordagem junta unidades discretas, ou seja, que têm uma duração finita (como fones ou palavras); logo, a prosódia, que é um elemento contínuo da fala, fica comprometida nos resultados obtidos por esse método.
2. Métodos paramétricos
São todos aqueles que se baseiam em uma série de parâmetros que serão definidos e utilizados para a produção da voz. Métodos paramétricos mais tradicionais se baseiam na teoria de fontes e filtros na produção da fala. Segundo essa teoria, todos os sons que produzimos ao falar são resultados da ação de dois elementos: a fonte, que é órgão que produz o som (por exemplo, a vibração das nossas pregas vocais), e os filtros, que são os órgãos que alteram as propriedades de um som (por exemplo, a nossa cavidade oral). Assim, a fala sintetizada por esse método tem uma fonte, um gerador de impulsos, e os parâmetros do filtro são ajustados de acordo com regras pré-estabelecidas específicas para cada som.
Métodos paramétricos mais modernos, conhecidos como statistical parametric speech synthesis, se baseiam em análises estatísticas para a definição e ajuste desses parâmetros, como o método baseado no modelo oculto de Markov. Nesse caso, um corpus linguístico gravado será usado para parametrização da fala durante uma etapa de treinamento do algoritmo. Depois, na etapa de síntese, o modelo irá gerar a fala com base na reconstrução desses parâmetros no texto. Os métodos baseados no modelo oculto de Markov consideram parâmetros acústicos já definidos, como a frequência fundamental, duração e outros indicadores espectrais.
As abordagens paramétricas permitem o uso de uma linguagem de marcação conhecida como SSML. Essa linguagem possibilita o controle de alguns aspectos da fala sintetizada, como pausas, ênfase, tom (pitch), velocidade e volume.
3. Métodos baseados em deep learning
Recentemente o uso de redes neurais, e mais especificamente, do deep learning, abriu novas possibilidades dentro do campo da síntese de fala devido a sua grande capacidade de extrair informações complexas do corpus gravado e estabelecer relações com elementos linguísticos do texto. Assim, são abordagens que também dependem de uma etapa de treinamento de um modelo a partir de um corpus linguístico. Depois do treinamento, os elementos acústicos serão reconstruídos no texto a ser sintetizado.
Atualmente existem diversos sistemas de síntese de voz baseados em deep learning. No desenvolvimento do Black Bolt, por exemplo, usamos arquiteturas baseadas no Tacotron, durante a etapa de análise, e do Wavenet na etapa da síntese.
O que precisamos para fazer um TTS?
Como vocês puderam notar, os métodos mais modernos, e que têm gerado resultados mais promissores, se baseiam em modelos treinados em um corpus linguístico gravado. Assim, ter em mãos um corpus de boa qualidade é essencial. Nesse sentido, alguns elementos são bastante importantes:
- O tamanho total do corpus: a língua oferece possibilidades infinitas, um corpus muito pequeno não vai conseguir representar bem toda essa vastidão de possibilidades.
- Variabilidade: Não adianta ter um corpus de 100 horas de leitura de poemas de Shakespeare. Como eu disse, o corpus precisa ser representativo da nossa fala, e de toda a sua variedade.
- Qualidade do áudio: usar gravações de baixa qualidade vai resultar, inevitavelmente, em uma voz sintetizada de baixa qualidade. A utilização de bons equipamentos e um ambiente adequado na hora da gravação garantem que mais informações da voz sejam registradas no arquivo de áudio, e essas informações serão valiosíssimas na hora do treinamento do nosso modelo. Assim, o trabalho de um sound designer é essencial para garantir a qualidade da captação e edição dos áudios.
- Organização e padronização: o corpus deve ser formado por registros de áudio e texto correspondentes. Cada sentença gravada deve estar acompanhada de um registro de texto que precisa estar 100% de acordo com aquilo que foi enunciado. Erros na pronúncia, adição ou remoção de palavras, ou qualquer outro desvio podem, e vão, prejudicar o treinamento do seu modelo.
Acho que deu para perceber que criar um TTS não é uma tarefa fácil. No texto apontei algumas coisas que aprendi nessa jornada com o Black Bolt. Mas aqui vale um adendo: a minha perspectiva é de uma linguista iniciante no vasto campo da inteligência artificial; certamente se um cientista da área de processamento da linguagem natural fosse enumerar os desafios de se fazer um TTS, essa lista seria um pouco diferente!
O Black Bolt é um projeto do núcleo de inovação da Mutant. Ele surgiu porque as soluções de síntese de voz disponíveis para o português brasileiro não correspondiam (e ainda não correspondem) aos padrões de voz dos nossos produtos. A definição do escopo e construção do corpora, assim como a direção de voz e a verificação dos áudios do Black Bolt está sendo realizada pelos linguistas Adriano Pequeno, Luigi Parrini, e eu mesma, Luiza Portásio. Já toda a parte de concepção e desenvolvimento dos algoritmos de inteligência artificial é feita pelo cientista da computação Fabiano Luz.
Quem tiver interessado em se aprofundar mais no assunto, seguem aqui algumas referências que me ajudaram a montar esse texto e a entender um pouco melhor o assunto:
1. Taylor, P. Text to speech synthesis. Editora Cambridge, 2009.
Curtiu o texto? Quer trocar uma ideia sobre design conversacional? É só mandar um e-mail pra redacao.xd@mutant.com.br. Se ficou a fim de trabalhar com a gente, aí é só entrar aqui. E segue também o nosso Medium pra saber quando tem texto novo!