Principais conclusões
- O Ollama gera apenas texto; um pedido de TTS nativo (issue do GitHub #11021) continua sem solução até o momento desta publicação.
- O Piper é a combinação com menor custo de recursos: só CPU, tempo real até em um Raspberry Pi, licença GPL-3.0-or-later.
- O Kokoro (82M de parâmetros, Apache-2.0) troca um pouco de velocidade por uma qualidade de voz percebida visivelmente melhor.
- XTTS v2 e Chatterbox clonam vozes a partir de um clipe de referência curto, mas a licença do XTTS v2 é não comercial, enquanto o Chatterbox tem licença MIT.
- O Bark adiciona risadas, suspiros e outros áudios não vocais, mas seu repositório no GitHub não recebe commits desde 5 de abril de 2024.
- O pipeline segue sempre a mesma estrutura: a API REST do Ollama retorna texto em JSON, seu código extrai esse texto, e ele é passado para a CLI ou API Python do mecanismo TTS.
📍 Em uma frase
O Ollama não tem síntese de voz embutida, então adicionar saída de voz significa encaminhar sua resposta em texto para um mecanismo TTS local separado — Piper para o menor custo de recursos, Kokoro para qualidade superior com tamanho semelhante, XTTS v2 ou Chatterbox para clonagem de voz, e Bark apenas para áudio expressivo não vocal.
💬 Em termos simples
O Ollama é a parte que pensa e escreve a resposta; um mecanismo TTS é um programa separado que transforma essa resposta escrita em áudio falado. Você conecta os dois com algumas linhas de código — não existe um único botão que faça as duas coisas.
📌Nota: Este artigo cobre apenas a parte de TTS de um pipeline de voz. Para uma configuração completa que também adiciona reconhecimento de voz (Whisper) na entrada, veja o guia de assistente de voz local da PromptQuorum.
O Ollama tem síntese de voz embutida?
Não — o Ollama não tem síntese de voz nem saída de áudio embutida. O Ollama é um ambiente de execução local para grandes modelos de linguagem: ele carrega um modelo, o expõe por uma API REST local e uma CLI, e retorna texto. Ele não sintetiza fala nem inclui nenhum modelo TTS.
Uma issue do GitHub que pede suporte nativo a TTS, #11021, propôs carregar modelos de geração de áudio diretamente e adicionar um endpoint compatível com a OpenAI, POST /v1/audio/speech. Ela foi fechada como duplicata de um pedido anterior que ainda está aberto (issue #5424) — até o momento desta publicação, o Ollama não lançou TTS nativo, e não há um cronograma definido para isso.
É por isso que toda configuração de voz local construída sobre o Ollama — um assistente de voz, um narrador de audiolivro para a saída de um LLM, ou uma ferramenta de leitura em voz alta para acessibilidade — conecta o Ollama a um mecanismo TTS separado, em vez de depender de algum "modo TTS do Ollama". Já existem projetos comunitários de integração para isso: o maudoin/ollama-voice, com 378 estrelas no GitHub no momento desta publicação, encadeia o Whisper para transcrição, o Ollama para a resposta, e o pyttsx3 — um wrapper para as vozes embutidas do seu sistema operacional, não um modelo TTS neural — para a saída. Esse projeto demonstra o padrão; não é em si uma recomendação da qualidade de áudio do pyttsx3, que fica atrás de todos os mecanismos neurais comparados neste guia.
Existe uma funcionalidade oficial de texto para voz no Ollama?
Não. O Ollama gera apenas texto. Um pedido de funcionalidade da comunidade para adicionar suporte nativo a TTS (issue do GitHub #11021) continua sem solução até o momento desta publicação, fechado como duplicata de um pedido anterior que ainda está aberto. A saída de voz exige encaminhar a resposta em texto do Ollama para um mecanismo TTS separado.
Como encaminhar a saída do Ollama para um mecanismo TTS local
Todo pipeline Ollama mais TTS segue os mesmos quatro passos: pedir texto ao Ollama, extrair esse texto da resposta em JSON, passá-lo para um mecanismo TTS, e reproduzir ou salvar o áudio resultante. Não existe integração oficial entre o Ollama e nenhum mecanismo TTS — isso é código de conexão que você mesmo escreve, geralmente com menos de 20 linhas.
- A API do Ollama não sabe nem se importa com o que acontece com a saída de texto dela. Não existe callback, webhook ou sistema de plugins conectando o Ollama a um mecanismo TTS — seu código é a única coisa que os une.
- O modo de streaming (
"stream": true) reduz a latência percebida ao retornar tokens conforme são gerados, permitindo começar a sintetizar o áudio da primeira frase antes de o modelo terminar a resposta completa — útil para assistentes de voz interativos, mais complexo de implementar do que o exemplo sem streaming acima.
- 1Inicie o Ollama e baixe um modelo
Why it matters: O Ollama precisa já estar em execução (`ollama serve`, ou o aplicativo de desktop) com pelo menos um modelo baixado (`ollama pull llama3.1`) antes de conseguir responder a solicitações pela sua API REST. - 2Envie um prompt para a API REST do Ollama
Why it matters: Uma solicitação POST para `http://localhost:11434/api/generate` com `"stream": false` retorna um único objeto JSON contendo a resposta completa no campo `response` — o mais simples de analisar em um pipeline TTS, embora o modo de streaming esteja disponível para reduzir o tempo até o primeiro áudio. - 3Extraia o texto e passe-o para seu mecanismo TTS
Why it matters: A string `response` é texto simples — passe-a diretamente para a CLI de um mecanismo TTS via stdin (Piper) ou para sua API Python (Kokoro, XTTS v2, Chatterbox, Bark ou o toolkit Coqui TTS). - 4Reproduza ou salve o áudio resultante
Why it matters: A maioria das CLIs e APIs de TTS grava diretamente um arquivo `.wav`; para reprodução ao vivo, envie o áudio bruto para um player como o `aplay` (Linux) ou use uma biblioteca de áudio em Python.
# 1. Pedir uma resposta em texto ao Ollama (sem streaming, para simplificar)
RESPONSE=$(curl -s http://localhost:11434/api/generate -d '{
"model": "llama3.1",
"prompt": "Explain quantum entanglement in two sentences.",
"stream": false
}' | python3 -c "import sys, json; print(json.load(sys.stdin)['response'])")
# 2. Encaminhar esse texto para a CLI do Piper para sintetizar o áudio (opção com menor custo de recursos)
echo "$RESPONSE" | piper --model en_US-lessac-medium --output_file response.wav
# --- Versão equivalente em Python, usando Kokoro no lugar do Piper ---
import json
import requests
import soundfile as sf
from kokoro_onnx import Kokoro
reply = requests.post(
"http://localhost:11434/api/generate",
json={"model": "llama3.1", "prompt": "Explain quantum entanglement in two sentences.", "stream": False},
).json()["response"]
kokoro = Kokoro("kokoro-v1.0.onnx", "voices-v1.0.bin")
samples, sample_rate = kokoro.create(reply, voice="af_heart")
sf.write("response.wav", samples, sample_rate)Qual mecanismo TTS combina melhor com o Ollama?
O Piper é a melhor opção para a maioria das combinações com o Ollama porque gera a menor disputa de recursos ao lado de um LLM que já usa CPU ou memória de GPU. A tabela abaixo pontua cada candidato especificamente por quão bem ele divide a máquina com o Ollama — uso de recursos, latência, quanto código a integração exige, e licença — não apenas pela qualidade de áudio bruta.
Piper
- Licença:
- GPL-3.0-or-later
- Uso de recursos:
- Só CPU, muito leve
- Latência:
- Tempo real, até em um Raspberry Pi
- Facilidade de integração:
- Uma única chamada de CLI, texto via stdin
Kokoro
- Licença:
- Apache-2.0
- Uso de recursos:
- Compatível com CPU, leve (82M parâmetros)
- Latência:
- Rápido; sem dado público de tempo real vs. GPU
- Facilidade de integração:
- API Python (kokoro-onnx), poucas linhas
XTTS v2
- Licença:
- CPML (não comercial)
- Uso de recursos:
- Alto; GPU recomendada
- Latência:
- Streaming abaixo de 200ms, em GPU, segundo a Coqui
- Facilidade de integração:
- API Python, mais configuração (licença)
Toolkit Coqui TTS
- Licença:
- MPL-2.0 (só o toolkit)
- Uso de recursos:
- Varia conforme o modelo carregado
- Latência:
- Varia conforme o modelo carregado
- Facilidade de integração:
- Uma API Python para vários modelos
Bark
- Licença:
- MIT
- Uso de recursos:
- Alto; GPU recomendada, lento em CPU
- Latência:
- Não feito para streaming em tempo real
- Facilidade de integração:
- API Python, simples mas mais lenta
Chatterbox
- Licença:
- MIT
- Uso de recursos:
- Moderado; GPU recomendada em tempo real
- Latência:
- Sem dado público de tempo real confirmado
- Facilidade de integração:
- API Python (pacote pip chatterbox-tts)
Qual mecanismo TTS usa menos recursos ao lado do Ollama?
O Piper. Ele roda só com CPU, funciona em tempo real até em um Raspberry Pi, e não precisa dividir memória de GPU com um modelo do Ollama — a opção com menor custo de recursos nesta comparação.
Quem deveria usar qual mecanismo?
Combine o mecanismo com seu hardware e suas necessidades de voz, não apenas com aquele que tem a maior qualidade de áudio bruta isoladamente.
- 🏆 Melhor escolha geral para combinar com o Ollama: Piper — menor custo de recursos, tempo real em CPU, o mais simples de integrar a um script shell ou uma chamada de subprocesso em Python.
- Melhor escolha para qualidade de áudio superior com tamanho semelhante: Kokoro — ainda compacto o suficiente para rodar sem GPU, com qualidade de voz percebida visivelmente melhor que o Piper segundo seus próprios benchmarks de lançamento.
- Melhor escolha para clonagem de voz com uso comercial permitido: Chatterbox — licenciado sob MIT, clona uma voz a partir de cerca de 5 segundos de áudio de referência, precisa de uma GPU ao lado do Ollama para uso em tempo real.
- Melhor escolha para clonagem de voz não comercial ou de pesquisa: XTTS v2 — clona uma voz a partir de 6 segundos de áudio em 17 idiomas, mas sua licença CPML bloqueia o uso comercial sem um acordo separado — veja a análise da licença do XTTS v2 da PromptQuorum.
- Melhor escolha para áudio expressivo não vocal, mas não como voz principal: Bark — risadas, suspiros e som ambiente simples só a partir de prompts de texto, mas seu repositório não recebe commits desde 5 de abril de 2024, então não conte com ele para um pipeline de produção mantido.
- 🧭 Raspberry Pi ou outro hardware só com CPU, rodando o Ollama com um modelo pequeno → Piper. Nenhum outro mecanismo deste guia está confirmado como funcionando em tempo real sem GPU.
- 🧭 Desktop ou servidor com GPU livre ao lado do Ollama, voz clonada desejada, e direitos comerciais necessários → Chatterbox.
- 🧭 Desktop ou servidor com GPU livre, projeto de pesquisa ou pessoal, maior qualidade de clonagem desejada → XTTS v2.
- 🧭 Quer um único toolkit capaz de carregar vários modelos diferentes ao longo do tempo (incluindo o XTTS v2) → toolkit Coqui TTS em vez de instalar as dependências de cada modelo separadamente.
Quando não usar nenhum destes
TTS local combinado com Ollama não é a abordagem certa para toda necessidade de saída de voz — algumas situações exigem uma API de nuvem ou uma ferramenta totalmente diferente.
- ❌ Se você precisa de dezenas de vozes muito refinadas e emocionalmente expressivas prontas para uso — uma API de nuvem gerenciada como o ElevenLabs oferece uma biblioteca de vozes curada mais ampla e controles mais expressivos do que qualquer modelo aqui; veja a comparação ElevenLabs vs. TTS local da PromptQuorum para as vantagens e desvantagens.
- ❌ Se seu hardware não tem folga de RAM ou VRAM além do que o Ollama já usa — rodar o Ollama e um mecanismo TTS faminto por GPU como o XTTS v2 ou o Bark na mesma GPU modesta pode deixar os dois sem recursos; recorra ao Piper ou ao Kokoro, ou mova o TTS para uma segunda máquina.
- ❌ Se você precisa lançar um produto comercial e não confirmou a licença de forma independente — a CPML do XTTS v2 é explicitamente não comercial, e a Coqui AI, empresa por trás dele, encerrou seus serviços de licenciamento pagos em dezembro de 2023; verifique você mesmo os termos de licença antes de lançar qualquer um destes mecanismos em um produto pago.
- ❌ Se você está clonando a voz de uma pessoa real sem o consentimento dela — isso levanta questões de consentimento e representação independentes da licença de qualquer mecanismo, tanto em uso pessoal quanto comercial.
Perguntas frequentes
O Ollama tem síntese de voz embutida?
Não. O Ollama gera apenas texto e não tem saída de áudio nativa. Um pedido de funcionalidade no GitHub para TTS nativo (issue #11021) continua sem solução até o momento desta publicação. A saída de voz exige encaminhar a resposta em texto do Ollama para um mecanismo TTS local separado.
Qual é o melhor mecanismo TTS para combinar com o Ollama?
O Piper, para a maioria das configurações — só CPU, licenciado sob GPL-3.0-or-later, e funciona em tempo real até em um Raspberry Pi, então não disputa memória de GPU com o Ollama. Escolha o Kokoro para maior qualidade de áudio percebida com uso de recursos semelhante, ou XTTS v2 / Chatterbox se precisar especificamente de clonagem de voz.
Como encaminho a saída do Ollama para um mecanismo TTS?
Envie uma solicitação POST para a API REST do Ollama em http://localhost:11434/api/generate com "stream": false, extraia o campo response da resposta JSON obtida, e passe esse texto para a CLI do mecanismo TTS escolhido (o Piper aceita texto via stdin) ou sua API Python (Kokoro, XTTS v2, Chatterbox, Bark e o toolkit Coqui TTS expõem uma). Veja o passo a passo do pipeline acima para comandos funcionais.
Preciso de uma GPU para rodar um mecanismo TTS ao lado do Ollama?
Não necessariamente. Piper e Kokoro são compatíveis com CPU e não exigem GPU. XTTS v2, Bark e Chatterbox se beneficiam de ou precisam de uma GPU para desempenho em tempo real, o que significa que disputam memória de GPU com o Ollama em uma máquina com apenas uma GPU.
Posso usar o XTTS v2 comercialmente em um produto baseado em Ollama?
Não sem um acordo separado. O XTTS v2 é licenciado sob a Coqui Public Model License (CPML), que é não comercial. A Coqui AI, empresa que o lançou, encerrou seus serviços pagos em dezembro de 2023, e a PromptQuorum não conseguiu confirmar que existe hoje um caminho ativo de licenciamento comercial. Veja a análise completa da licença do XTTS v2 antes de lançar um produto pago.
Qual mecanismo TTS devo usar para um assistente de voz em Raspberry Pi rodando Ollama?
O Piper. É o único mecanismo desta comparação confirmado como funcionando em tempo real em hardware só com CPU, como um Raspberry Pi — exatamente a restrição que um Pi impõe quando também roda ou se comunica com uma instância do Ollama.
Existe uma integração oficial entre o Ollama e algum mecanismo TTS?
Não. Não existe plugin oficial, callback ou ponte embutida conectando o Ollama a nenhum mecanismo TTS. Toda combinação descrita neste guia é código de conexão que você mesmo escreve — geralmente com menos de 20 linhas chamando a API REST do Ollama e, em seguida, a própria CLI ou API Python do mecanismo TTS.
Qual é a diferença entre Kokoro e Piper para um pipeline com Ollama?
Os dois são compatíveis com CPU e de uso comercial gratuito (Kokoro sob licença Apache-2.0, Piper sob licença GPL-3.0-or-later). O Kokoro é um modelo maior (82 milhões de parâmetros) que entrega qualidade de voz percebida visivelmente superior segundo seus próprios benchmarks de lançamento, enquanto o Piper é mais leve e tem um histórico mais longo funcionando em tempo real em hardware muito modesto, como um Raspberry Pi.
Posso clonar minha própria voz para narrar a saída do Ollama?
Sim, com o XTTS v2 (6 segundos de áudio de referência, licença CPML não comercial) ou o Chatterbox (cerca de 5 segundos de áudio de referência, licença MIT, uso comercial permitido). Nem o Piper nem o Kokoro suportam clonagem de voz — os dois usam vozes fixas e pré-treinadas.
Veredito
A falta de síntese de voz nativa no Ollama não é uma lacuna para contornar com um plugin — é uma decisão de design que mantém o Ollama focado em inferência de modelo de linguagem, e todo pipeline de voz construído sobre ele conecta um mecanismo separado. Para a maioria dos leitores, esse mecanismo deveria ser o Piper: custa quase nada em recursos ao lado de um LLM já em execução, se integra em uma linha a um script shell ou um subprocesso em Python, e roda em tempo real em hardware tão modesto quanto um Raspberry Pi. Se a qualidade de áudio do Piper não for suficiente, o Kokoro é o próximo passo com uso de recursos semelhante. Recorra ao XTTS v2 ou ao Chatterbox apenas quando a clonagem de voz for uma necessidade real, reserve uma GPU para isso, e — especificamente para o XTTS v2 — confirme que a licença CPML não comercial se encaixa no seu caso de uso antes de construir sobre ela. Na dúvida, instale o Piper primeiro: é a forma mais rápida de ouvir um modelo do Ollama falando, e trocar depois para um mecanismo mais pesado é uma mudança menor do que começar direto com ele.
Fontes
- Issue #11021 do GitHub do Ollama — o pedido de funcionalidade para suporte nativo a TTS, fechado como duplicata de uma issue anterior que ainda está aberta.
- Documentação da API REST do Ollama — o endpoint
/api/generateusado nos exemplos de pipeline deste guia. - maudoin/ollama-voice no GitHub — um projeto comunitário que encadeia Whisper, Ollama e pyttsx3; 378 estrelas no momento desta publicação.
- Cartão do modelo Kokoro-82M no Hugging Face — número de parâmetros, licença e arquitetura.
- XTTS v2 no Hugging Face — requisitos de clonagem e referência de licença.
- Chatterbox no GitHub — o modelo open source de clonagem de voz da Resemble AI, sua licença e exemplos de uso.
- Bark no GitHub — o modelo de áudio generativo da Suno, sua licença e histórico de commits.
