Arquitetura

O CPqD Texto Fala é composto por três elementos principais: framework, módulos linguísticos e módulos de síntese. O framework é a única camada acessível via programação e expõe as funcionalidades do produto via uma interface de programação C/C++. Essa interface C/C++ também serve como base para as outras interfaces suportadas. Mais detalhes são apresentados na seção Interfaces de integração.

../_images/architecture.svg

Componentes do CPqD Texto Fala e interfaces de integração

Framework

O framework é o componente responsável por processar e gerenciar as requisições de síntese de fala. O acesso às funcionalidades do CPqD Texto Fala, seja por aplicações ou pelas outras interfaces de integração, são feitas através da interface de programação C/C++ exposta pelo framework.

Através do framework uma aplicação também pode configurar todos os parâmetros de configuração em tempo de execução, bem como fazer uso de SSML para sintetizar diálogos mais complexos ou que requeiram um controle mais refinado.

Módulos linguísticos

Os módulos linguísticos são responsáveis pelo tratamento do texto a vocalizar, e por gerar informações que serão utilizadas pelos módulos de síntese na produção do sinal de fala. Cada idioma suportado pelo CPqD Texto Fala possui um módulo linguístico próprio, composto por uma biblioteca dinâmica (extensão .dll ou .so) e um arquivo de dados (extensão dat).

O tratamento do texto de entrada pelo módulo linguístico inclui a interpretação das tags SSML que eventualmente o texto possa conter, e a tokenização, normalização e conversão ortográfica-fonética deste texto.

O suporte à linguagem SSML v1.1 (Speech Synthesis Markup Language, https://www.w3.org/TR/speech-synthesis11/) oferecida pelo CPqD Texto Fala, permite que o usuário possa modificar a forma como o texto será falado. Para maiores detalhes sobre como utilizar o SSML com o CPqD Texto Fala, consulte a seção SSML.

Nas etapas de tokenização e normalização, o módulo linguístico converte por extenso certas ocorrências presentes no texto de entrada, como números, datas, quantias monetárias, abreviações e símbolos especiais. Como exemplo, o texto

Em 19/Ago/2016 às 9h, foram depositados R$15.000 na conta corrente da Dra. Denisse Oliveira.

é convertido para

em dezenove de agosto de dois mil e dezesseis às nove horas, foram depositados quinze mil reais na conta corrente da doutora denisse oliveira .

Existe um tratamento diferenciado de siglas, abreviações, números e outros termos específicos, de acordo com o contexto em que aparecem.

Na etapa de conversão ortográfica-fonética, o texto já normalizado é representado como uma sequência de fones que serão utilizados pelo módulos de síntese para gerar a fala sintetizada. Os fones são os sons básicos de um idioma a partir dos quais é possível gerar qualquer palavra da língua.

Atualmente o CPqD Texto Fala suporta os idiomas Português do Brasil e Espanhol Latino-Americano com as vozes de Rosana e Carlos para o Português do Brasil, e Paola para o Espanhol Latino-Americano.

Módulos de síntese

Os módulos de síntese são responsáveis por gerar o sinal de fala propriamente dito (áudio). Tais módulos usam como entrada as informações geradas pelo módulo linguístico e parâmetros especificados pelo usuário, como volume e ritmo. A partir dessas informações o módulo combina algoritmos e dados contidos nos arquivos de voz para gerar o sinal de fala.

Módulos de síntese são baseados em diferentes técnicas de síntese que apresentam diferentes vantagens e desvantagens. A escolha do módulo de síntese mais adequado para uma demanda, visando obter fala sintetizada mais natural, depende das características da aplicação e do cenário de uso no qual o sintetizador será utilizado.

Nota

O CPqD possui uma equipe técnica que pode efetuar avaliações junto ao cliente para definir as melhores opções. Entre em contato conosco para maiores informações.

Alguns dos aspectos mais comuns estão relacionados aos requisitos de hardware mínimos e a qualidade da fala sintezada. A versão atual do CPqD Texto Fala oferece três técnicas de síntese:

high quality
Oferece a máxima qualidade de fala sintetizada consumindo menos poder computacional, em relação às outras técnicas. Vozes high-quality requerem mais memória, geralmente entre 300 MB e 1 GB. Essa é a opção mais adequada para uso em servidores ou clusters, onde o espaço em disco e memória não é um limitador e a quantidade de sínteses simultâneas é elevada.
standard
Produz fala síntetizada de ótima qualidade com um requerimento de memória em torno de 100 MB para cada voz.
compact
Possui o menor requerimento de memória, exigindo em média 10 MB por voz. Além disso, oferece boa qualidade fala sintetizada, apesar de requerer um poder computacional ligeiramente maior do que a versão high quality. Esta versão é adequada para uso em dispositivos embarcados ou em sistemas onde o espaço em disco é um limitador.

Todas as técnicas de síntese contam com todo o repertório de recursos oferecidos pelo CPqD Texto Fala, como síntese em tempo real, suporte ao SSML, chaveamento dinâmico de vozes, diferentes formatos do áudio de saída e efeitos sonoros.