Texto vira voz, dentro da nossa infraestrutura.
O Vox é o inverso do gwan-stt: recebe texto e devolve áudio pronto para WhatsApp
(ogg/opus), mp3 ou wav. Vozes em português e inglês com o Kokoro-82M, rodando na GPU do
ecossistema. Números, valores em reais, datas e horas são lidos do jeito certo, por regra, antes do modelo.
Uma chamada, um áudio
POST /api/speak com text e
voiceId. A resposta traz a URL assinada do áudio no MinIO, a duração e o texto exatamente como
foi lido. Síncrono: frases de chatbot levam poucos segundos.
Vozes por id estável
pt-br-female-1, pt-br-male-1,
en-us-female-1… O nome interno do modelo nunca sai na API — trocar o motor por trás de um id não
quebra ninguém. Lista em GET /api/voices.
Mesmo desenho do STT
Dois papéis num compose só: o client no servidor só
delega pela fila; o worker na máquina do mantenedor sintetiza. Sem worker vivo a resposta é 503 e o
/health diz sem-worker, em vez de mentir.
curl -X POST http://gwan-vox:8000/api/speak -H "Content-Type: application/json" -d '{
"text": "Olá! Sua proposta ficou em R$ 1.234,56 e vence em 05/09/2026.",
"voiceId": "pt-br-female-1",
"format": "ogg_opus"
}'
# → { "audioUrl": "https://minio.gwan.cloud/gwan-vox-audio/…", "durationSeconds": 6.8,
# "normalizedText": "Olá! Sua proposta ficou em mil duzentos e trinta e quatro reais e …" }