EchoraEchora
Voltar aos modelos

OuteTTS: um modelo de voz que, no fundo, é apenas um LLM

5 de setembro de 2026
•
7 min de leitura

Transforme textos e gravações em áudio pronto para ouvir

Dublagem, stems, covers e efeitos sonoros, tudo no navegador.

  • Texto para fala, e também clonagem de voz
  • Separe as faixas, ou gere um cover
  • Cadastre-se para ouvir primeiro e decidir depois
Comece a criar grátis

A maioria dos modelos de TTS precisa de seu próprio pipeline de inferência dedicado — um runtime especializado que saiba lidar com vocoders, mel-espectrogramas e particularidades de arquitetura específicas de áudio. O OuteTTS, da OuteAI, contorna tudo isso ao tratar a geração de fala como nada além de modelagem de linguagem: prever o próximo token, com a diferença de que os tokens representam áudio em vez de palavras. Como isso é realmente tudo o que ele faz internamente, o OuteTTS roda diretamente pelo llama.cpp — o mesmo mecanismo leve que executa qualquer outro modelo de linguagem GGUF — sem exigir um runtime específico para TTS.

O que é o OuteTTS?

O OuteTTS é um projeto experimental de texto para voz construído inteiramente sobre a arquitetura padrão de grandes modelos de linguagem. Ele usa prompts elaborados e tokens de áudio, em vez de um pipeline especializado de TTS com adaptadores externos ou componentes específicos de vocoder acrescentados à parte. As primeiras versões foram criadas sobre uma base personalizada derivada do LLaMA (Oute3-350M-DEV); versões posteriores migraram para backbones consolidados — Qwen-2.5-0.5B na versão 0.2 e uma arquitetura Llama no atual modelo principal, o Llama-OuteTTS-1.0-1B. A ideia que atravessa todas as versões é a mesma: se você consegue executar um modelo de linguagem, consegue executar o OuteTTS, porque, em termos de arquitetura, é exatamente isso que ele é.

O histórico das versões

  • OuteTTS-0.1-350M — a prova de conceito original, demonstrando que a modelagem pura de linguagem poderia produzir síntese de fala utilizável sem uma arquitetura de TTS feita sob medida. Com 350M de parâmetros, é compacto o bastante para rodar praticamente em qualquer lugar, mas a contrapartida aparece: o modelo pode alterar, inserir ou omitir palavras com frequência, resultando em uma qualidade de saída visivelmente inconsistente.
  • OuteTTS-0.2-500M — construído sobre o Qwen-2.5-0.5B e treinado com mais de 5 bilhões de tokens de prompts de áudio; acrescentou um codificador de áudio DAC (Descript Audio Codec) com dois codebooks para melhorar de forma significativa a qualidade da reconstrução de áudio, além de aperfeiçoar a clonagem de voz.
  • OuteTTS-0.3-500M — um refinamento intermediário com mudanças no formato dos prompts, o que também explica por que às vezes é preciso verificar versão por versão a compatibilidade entre ferramentas da comunidade e integrações com llama.cpp.
  • Llama-OuteTTS-1.0-1B — a versão principal atual, que adiciona alinhamento automático de palavras (entrada de texto bruto, sem necessidade de pré-processamento) e amplia de forma significativa a cobertura multilíngue, enquanto mantém o tamanho geral compacto em 1 bilhão de parâmetros.

Por que especificamente o llama.cpp

Essa não é uma escolha arbitrária de compatibilidade — é uma consequência direta do projeto de modelagem pura de linguagem do OuteTTS, e há um motivo técnico específico para o llama.cpp produzir os resultados mais confiáveis entre os backends compatíveis com o OuteTTS.

A amostragem do OuteTTS 1.0 exige que a penalidade de repetição seja aplicada a uma janela recente de 64 tokens, e não a toda a janela de contexto — penalizar o contexto completo gera uma saída quebrada ou degradada. O llama.cpp trata corretamente essa penalidade em janela por padrão, o que ajuda a explicar por que historicamente entregou a qualidade de saída mais consistente entre os backends compatíveis. Outros backends, incluindo o Hugging Face Transformers padrão, não implementavam originalmente essa abordagem em janela de forma nativa; desde então, a biblioteca Python outetts adicionou especificamente ao backend Transformers um patch que reproduz a mesma penalidade em janela para reduzir essa diferença de qualidade, mas o tratamento nativo do llama.cpp continua sendo o padrão mais confiável.

Além desse detalhe específico de amostragem, rodar como um modelo GGUF padrão também permite que o OuteTTS herde tudo o que o ecossistema mais amplo do llama.cpp já oferece: opções de quantização para reduzir o uso de memória, offloading de camadas para a GPU via n_gpu_layers e compatibilidade com ferramentas já criadas em torno de modelos de linguagem no formato GGUF, sem precisar montar do zero uma estrutura de implantação específica para TTS.

Clonagem de voz e suporte multilíngue

O Llama-OuteTTS-1.0-1B oferece clonagem de voz one-shot com apenas 10 segundos de áudio de referência e abrange 23 idiomas, com o próprio modelo tratando automaticamente o alinhamento do texto. Isso inclui idiomas sem limites claros entre palavras, nos quais o alinhamento automático importa mais do que em línguas separadas por espaços, como o inglês. A reconstrução de áudio passa pelo codificador DAC herdado de versões anteriores, o que contribuiu para manter a qualidade à medida que a cobertura multilíngue aumentava, em vez de degradá-la conforme mais idiomas eram adicionados.

Primeiros passos com o OuteTTS

  1. Instale a biblioteca Python. pip install outetts fornece a interface principal; se você for usar especificamente modelos GGUF pelo llama.cpp, também terá que instalar manualmente o llama-cpp-python primeiro, seguindo as instruções de instalação para sua plataforma.
  2. Use o assistente de configuração automática para simplificar ao máximo o processo. outetts.ModelConfig.auto_config(model=outetts.Models.VERSION_1_0_SIZE_1B, backend=outetts.Backend.LLAMACPP, quantization=outetts.LlamaCppQuantization.FP16) cuida da seleção do modelo e da configuração do backend sem exigir o gerenciamento manual de caminhos.
  3. Faça a configuração manual se precisar de caminhos de arquivo específicos. Um ModelConfig manual precisa tanto de model_path (apontando para o arquivo .gguf baixado) quanto de tokenizer_path (que sempre é baseado em Transformers, mesmo quando o backend de inferência é o llama.cpp) — confundir os dois é uma causa comum de erros de carregamento.
  4. Baixe os pesos GGUF do repositório dedicado. Os checkpoints no formato GGUF ficam hospedados separadamente dos pesos safetensors padrão — se estiver usando o backend llama.cpp, confira se está baixando especificamente da variante do repositório com -GGUF.
  5. Defina n_gpu_layers se quiser aceleração por GPU. Como em qualquer modelo baseado em llama.cpp, o offloading de camadas para a GPU é controlado por esse parâmetro padrão, e não por algo específico do OuteTTS.
  6. Deixe a biblioteca outetts cuidar automaticamente da configuração de amostragem. Como o requisito da penalidade de repetição em janela é muito específico e tem consequências importantes, use a configuração de amostragem integrada à biblioteca em vez de reimplementar por conta própria os parâmetros de geração, a menos que tenha um motivo claro para isso.

Dicas para obter resultados melhores

  • Escolha por padrão o Llama-OuteTTS-1.0-1B em vez de uma versão anterior. Considerando os problemas documentados de precisão de palavras na versão original de 350M e as inconsistências de formato dos prompts entre 0.2 e 0.3, a versão 1.0 atual é um ponto de partida mais confiável para projetos novos.
  • Confie no comportamento de amostragem padrão do llama.cpp em vez de uma implementação personalizada. A menos que você tenha um motivo específico para criar seu próprio wrapper de inferência, é fácil errar ao implementar do zero a penalidade de repetição em janela que o llama.cpp já trata corretamente por padrão.
  • Use um clipe de referência limpo de 10 segundos para a clonagem. Como a clonagem one-shot foi projetada em torno dessa duração específica, um clipe bem gravado e de aproximadamente esse tamanho tende a produzir resultados mais confiáveis do que uma amostra muito mais curta ou desnecessariamente mais longa.
  • Forneça texto bruto à versão 1.0 em vez de pré-processá-lo por conta própria. Como o alinhamento automático de palavras é uma função específica da versão atual, segmentar o texto manualmente antes da entrada interfere em uma capacidade que o modelo já trata internamente.
  • Verifique a licença antes de qualquer uso comercial. As versões GGUF do OuteTTS são distribuídas sob a licença CC-BY-NC-SA-4.0 — não comercial e de compartilhamento pela mesma licença —, um conjunto de condições bastante diferente de uma licença permissiva como MIT ou Apache 2.0. Analise-as com atenção antes de desenvolver um produto comercial com base no modelo.

OuteTTS em comparação com outros modelos de TTS leves e próximos de LLMs

OuteTTSPiperKokoro-82M
Abordagem principalModelagem pura de linguagem com tokens de áudioVITS + ONNX + espeak-ngStyleTTS 2 + ISTFTNet
Roda no llama.cppSim, nativamente (GGUF)NãoNão
Clonagem de vozSim, one-shot com cerca de 10 segundosNão, catálogo fixo de vozesNão, catálogo fixo de vozes
Idiomas2335+8
Parâmetros350M–1B, dependendo da versão~15M82M
LicençaCC-BY-NC-SA-4.0 (não comercial)MIT (original) / GPL-3.0 (fork atual)Apache 2.0

O nicho específico do OuteTTS é a simplicidade arquitetônica para quem já trabalha no ecossistema de ferramentas de LLM — se sua infraestrutura já está organizada em torno do llama.cpp e de modelos GGUF, adicionar geração de voz não exige uma pilha de implantação separada como aconteceria com a maioria das outras opções de TTS.

Perguntas frequentes

Por que o OuteTTS funciona com llama.cpp quando a maioria dos modelos de TTS não funciona?

Porque o OuteTTS foi construído como pura modelagem de linguagem — ele prevê tokens de áudio da mesma maneira que um LLM padrão prevê tokens de texto, sem sobrepor uma arquitetura especializada de TTS. Isso o torna compatível com qualquer ferramenta criada para executar modelos de linguagem no formato GGUF, incluindo o llama.cpp.

De quanto áudio de referência o OuteTTS precisa para clonar uma voz?

Cerca de 10 segundos para a clonagem one-shot com a versão atual Llama-OuteTTS-1.0-1B.

Por que minha implementação personalizada do OuteTTS produz áudio quebrado?

A causa mais comum é uma penalidade de repetição configurada incorretamente. O OuteTTS 1.0 exige que ela seja aplicada a uma janela recente de 64 tokens, e não a todo o contexto — o llama.cpp trata isso corretamente por padrão, mas uma implementação personalizada precisa reproduzir explicitamente esse uso da janela.

O OuteTTS é gratuito para uso comercial?

Não sem antes analisar as condições. As versões GGUF do OuteTTS são distribuídas sob uma licença CC-BY-NC-SA-4.0, que restringe o uso comercial e exige o compartilhamento de derivados sob a mesma licença — confira as condições atuais antes de qualquer implantação comercial.

Qual versão do OuteTTS devo usar?

O Llama-OuteTTS-1.0-1B é a versão principal atual e a opção mais confiável para projetos novos, oferecendo alinhamento automático de palavras e suporte multilíngue mais amplo em comparação com as versões anteriores 0.1, 0.2 e 0.3.

Transforme texto em voz com a Echora

Para um fluxo no navegador com um objetivo semelhante, use o Texto para fala da Echora. Insira até 5.000 caracteres, escolha uma voz integrada ou uma voz personalizada salva, adicione tags de interpretação compatíveis quando necessário e ajuste a estabilidade. Depois, você pode ouvir o resultado e baixar o MP3 final.

Criar voz a partir de texto →