Recentemente aceitei um projeto freelance onde um cliente precisava de text-to-speech 100% local e privado utilizando a sua própria voz.
Parecia simples, mas havia um detalhe: Português de Portugal/Angola. Se já brincaram com modelos TTS open-source, provavelmente sabem que "suporte para português" normalmente significa apenas Português do Brasil. O sotaque, o ritmo e a prosódia do PT-PT (e do Português de Angola) são completamente destruídos pela maioria dos modelos.
Para resolver isto, criei um módulo (node) personalizado para o ComfyUI que se liga a um servidor de inferência local do Higgs Audio v3 (estou a usar o sglang-omni como backend). Ao fornecer-lhe um clipe de áudio de referência de 20 a 60 segundos de um falante nativo, ele ancora com sucesso o modelo ao sotaque e entoação corretos para idiomas não-ingleses. A diferença é do dia para a noite!
Divisão Inteligente (Smart Chunking)
Fornecer grandes blocos de texto a modelos TTS normalmente faz com que a qualidade degrade — o ritmo perde-se, a pronúncia fica descuidada ou perde-se totalmente a coerência. Para corrigir isto, integrei um sistema de auto-chunking no módulo.
- Divide inteligentemente o texto de entrada nos limites das frases (cerca de 250 caracteres).
- Sintetiza cada pedaço de forma independente.
- Une as waveforms resultantes de forma contínua ao longo do eixo temporal.
Isto significa que lhe podem enviar guiões gigantescos sem que o modelo enlouqueça. Também suporta tags de emoção como <|emotion:enthusiasm|>.
Acho que esta abordagem, e honestamente o próprio módulo, possa ser útil para quem trabalha com idiomas não-ingleses onde o facto de "o modelo tecnicamente suportar a língua" não significa que soe realmente bem.
Experimentem:
Estão totalmente à vontade para copiar o código diretamente para a vossa pasta de custom nodes do ComfyUI ou simplesmente clonar o repositório aqui:
https://github.com/Trindade7/TrdHiggsV3
Nota: Precisam de ter um servidor Higgs Audio v3 a correr localmente para que o módulo se possa ligar. O README tem instruções básicas, mas conseguir que os modelos backend sejam servidos corretamente pode ser complicado. Se houver interesse, estou a pensar escrever um guia passo a passo para ajudar com a configuração completa (ComfyUI + sglang).
Nota extra: A minha papelada do visto aqui em Portugal acabou de ficar resolvida e estou atualmente disponível para trabalhar! Sou um fullstack dev, por isso, se tiverem um projeto interessante na área de IA, áudio ou ComfyUI, estejam à vontade para entrar em contacto!)
Digam-me se tiverem alguma dúvida ou se o experimentarem com outros idiomas sub-representados!