logotipo LianeTTS Sintetizador de voz LianeTTS


Conhecendo o LianeTTS
    O que é o LianeTTS
    Demonstração online
    Possibilidades de uso
Uma breve história do LianeTTS
    Cenário
    Política de acessibilidade
    Oportunidade de negócio
Usando o sistema LianeTTS
    Instalação (Linux apenas)
    Uso por linha de comando
    Uso interativo
    Criando programas com síntese de voz
Detalhamento técnico
    Arquitetura do sistema
    Arquivos de configuração
    Funcionamento do MBROLA
    Lista de fonemas
    A base BR4
    Configuração avançada
    Outros temas correlatos
Equipe
    Desenvolvedores
    Suporte técnico
    Colabore com o projeto
    Instituições participantes


Sintetizador de Fala (Speech Synthesizer) MBROLA

Resumidamente, o MBROLA é um sintetizador de fala baseado na concatenação de difones, que minimiza problemas de concatenação. Não é um sintetizador TTS completo (Text-To-Speech Synthesizer), não sendo capaz de traduzir um texto para fala, apenas faz a concatenação de difones que tenham sido previamente escolhidos por um compilador (neste caso o programa lianecomp do sistema LianeTTS).

Nota: O LianeTTS é um sintetizador TTS que usa a interface do MBROLA para a síntese de voz; um arquivo .pho é gerado pelo LianeTTS para processamento em fala pelo MBROLA.

O sistema MBROLA foi gerado na Faculté Polytechnique de Mons, Belgium a partir de 1996. Ele usa uma variante do método PSOLA (patente da France Telecom), que permite uma grande qualidade no som gerado. MBROLA significa Multi Band Resynthesis OverLap Add. É um sistema muito rápido e que usa pouca memória, sendo adequado para execução em máquinas modestas, ou em ambientes com grande quantidade de sinteses de voz por segundo. É "free" para usos não comerciais nem militares, e não é open-source.

É distribuído em várias versões, entre as quais se destacam:

  • Versão Windows: bibliotecas chamáveis por programa (DLLs)
  • Versão Linux: programa específico para a concatenação e diversos utilitários para preparação e uso da base de dados e pequenos experimentos, usado no sistema LianeTTS.

    Funcionamento básico

    Arquivo .PHO (fonemas+prosódia) --> Mbrola --> Arquivo de fala

    A figura a seguir representa, em linhas gerais o fluxo de dados num sistema de síntese de voz baseado no sistema MBROLA.

    esquema de funcionamento do sistema MBROLA

    O arquivo PHO

    O Arquivo PHO contém a lista de difones a serem concatenados e apresentados na forma sonora. Ele contêm basicamente as seguintes informações:

  • Nome dos fonemas
  • Duração em ms
  • Curva da prosódia
    --> compostas por sequencias: posição (em percentagem) e pitch

    Ex:

    ; atirei
    _ 100 1 392
    a 600 50 392
    t 122 1 392
    i 90 1 349
    r 100 1 349
    e 137 1 329
    y 130 99 329
    _ 100
    

    Nota: o difone é gerado pelo MBROLA, a partir da especificação dada por duas linhas subseqüentes.


    Instalação do MBROLA

    Na instalação do MBROLA, é fornecido além do binário o arquivo readme.txt que descreve em inglês maiores detalhes sobre licenciamento, instalação e funcionamento desta solução. Entretanto, descrevemos abaixo uma breve tradução do funcionamento do MBROLA.

    1) instale o pacote do MBROLA referente à sua distribuição Linux;

    2) experimente "$ mbrola -h", para ver listagem da ajuda sobre a sintaxe de comandos deste sintetizador:

     USAGE: mbrola [COMMAND LINE OPTIONS] database pho_file+ output_file
    
    A - instead of pho_file or output_file means stdin or stdout
    Extension of output_file ( raw, au, wav, aiff ) tells the wanted audio format
    
    Options can be any of the following:
    -i    = display the database information if any
    -e    = IGNORE fatal errors on unkown diphone
    -c CC = set COMMENT char (escape sequence in pho files)
    -F FC = set FLUSH command name
    -v VR = VOLUME ratio, float ratio applied to ouput samples
    -f FR = FREQ ratio, float ratio applied to pitch points
    -t TR = TIME ratio, float ratio applied to phone durations
    -l VF = VOICE freq, target freq for voice quality
    -R RL = Phoneme RENAME list of the form a A b B ...
    -C CL = Phoneme CLONE list of the form a A b B ...
    
    -I IF = Initialization file containing one command per line
            CLONE, RENAME, VOICE, TIME, FREQ, VOLUME, FLUSH, COMMENT,
            and IGNORE are available
    

  • Cartinha Envie carta para o projeto LianeTTS