Todos os artigos

· Casimiro Ferreira· 4 min de leitura

Apresentamos o phoonnx: A Nova Framework de TTS do OpenVoiceOS

  • phoonnx
  • TTS
  • OVOS
  • ONNX
  • Phonemization

Este blog foi originalmente publicado no blog do OpenVoiceOS

O phoonnx é agora a principal framework de Text-to-Speech do OpenVoiceOS. É uma stack de treino e inferência construída sobre o VITS (uma arquitetura de modelo neuronal de texto-para-fala) e o ONNX (um formato portátil para correr modelos treinados), e produz vozes consistentes e prontas para offline em todas as línguas que suportamos.

Ouça-o em ação: a Demo de Vozes corre as vozes phoonnx ao vivo no seu navegador — onnxruntime-web, sem servidor.


Nova Língua: Apresentamos o Basco!

Partimos do nosso trabalho anterior em Criar Vozes Sintéticas de Raiz e na nossa Colaboração em TTS Árabe para acrescentar vozes para basco (eu-ES).

Isto acrescenta tanto uma voz masculina (Miro) como uma voz feminina (Dii). Continua o nosso esforço para suportar línguas de poucos recursos que carecem de opções de TTS abertas e de alta qualidade.

Antes disto, a única voz em basco era uma voz feminina robótica do plugin AhoTTS, feito em colaboração com o ILENIA.

Ouça os resultados: exemplos das novas vozes de código aberto em basco.

Miro (Voz Masculina): Ouvir o Miro

Dii (Voz Feminina): Ouvir a Dii


Uma Identidade de Voz Consistente entre Línguas

O OpenVoiceOS precisa de uma voz de marca consistente: uma persona masculina e feminina padrão que soe da mesma forma independentemente da língua para a qual o assistente está configurado. Um utilizador que configura o OpenVoiceOS em Lisboa e mais tarde muda para alemão deve ouvir o mesmo falante familiar.

A TigreGotico constrói e mantém o motor phoonnx, contribui com os datasets de treino abertos, e treina as vozes multilingues por omissão do OVOS que cumprem este compromisso: Miro (masculino) e Dii (feminino).


Flexibilidade de fonemizador

O phoonnx não é só uma ferramenta de inferência. É uma framework de treino e inferência construída sobre a arquitetura VITS, e permite-nos criar protótipos, treinar e implementar vozes novas rapidamente.

Parte disto vem do suporte a diferentes fonemizadores. Um fonemizador (ou modelo de G2P — Grafema-para-Fonema) converte texto escrito na sequência de unidades de som (fonemas) que o modelo de TTS fala. Línguas diferentes precisam muitas vezes de fonemizadores diferentes e especializados para uma fala precisa.

  • Compatibilidade com eSpeak: os modelos phoonnx treinados com o amplamente disponível fonemizador eSpeak são totalmente compatíveis com o runtime do motor Piper TTS. Isto significa uma implementação fácil dentro do ecossistema OVOS existente e em projetos de terceiros como o Home Assistant.
  • Suporte a fonemizadores personalizados: a framework não se limita ao eSpeak. Por exemplo, os modelos galegos construídos pelo Proxecto Nós com o fonemizador Cotovia são totalmente compatíveis e podem ser usados com o pipeline phoonnx.

Esta flexibilidade permite-nos reutilizar o trabalho de outros projetos de código aberto. Para inferência, o phoonnx consegue usar modelos originalmente treinados por outros projetos, incluindo Coqui, Mimic3 e Piper.

A seguir: modelos de G2P baseados em ByT5

Continuamos a trabalhar para melhorar a precisão do G2P, especialmente para línguas de poucos recursos. Estamos a desenvolver e a testar novos modelos de G2P baseados na arquitetura ByT5. Estes modelos baseados em transformers procuram fonemizar com mais precisão numa gama mais ampla de línguas.

Pode acompanhar o seu desenvolvimento aqui: Coleção de Modelos de G2P.

Num futuro próximo será criado um plugin de TTS dedicado do OVOS para o phoonnx e tornado o padrão do OpenVoiceOS, substituindo os plugins anteriores: ovos-tts-plugin-piper e ovos-tts-plugin-nos.

Entretanto pode experimentar as novas vozes através do plugin existente ovos-tts-plugin-piper

Tudo o que precisa de fazer é passar os urls dos modelos em mycroft.conf

  "tts": {
    "module": "ovos-tts-plugin-piper",
    "ovos-tts-plugin-piper": {
      "model": "https://huggingface.co/OpenVoiceOS/phoonnx_eu-ES_miro_espeak/resolve/main/miro_eu-ES.onnx",
      "model_config": "https://huggingface.co/OpenVoiceOS/phoonnx_eu-ES_miro_espeak/resolve/main/miro_eu-ES.piper.json"
    }
  }

Relatório de Progresso: Línguas Disponíveis

O trabalho coletivo das equipas do OpenVoiceOS e da TigreGotico resultou numa biblioteca de modelos de TTS de código aberto em rápida expansão.

Línguas Atualmente Suportadas:

  • Árabe
  • Basco
  • Neerlandês
  • Inglês (EUA/RU)
  • Francês
  • Alemão
  • Italiano
  • Português (Brasil/Portugal)
  • Espanhol

Participe e Encontre os Modelos

Convidamos a comunidade a explorar e a usar estes novos recursos.

RecursoDescriçãoLigação
Modelos PhoonnxOs novos modelos de TTS treinados com phoonnx em formato ONNX.phoonnx-tts-models
Vozes Piper/PhoonnxA coleção completa de vozes do OpenVoiceOS compatíveis com Piper.pipertts-voices
Datasets AbertosDatasets usados para treinar estas vozes, promovendo a investigação de dados abertos.tts-datasets


Explore o catálogo completo de modelos e datasets no Hugging Face: TigreGotico · OpenVoiceOS. Para contribuir com dados, abra uma issue ou discussão no phoonnx.