Olha só isso, dev!
Se você já tentou colocar TTS (text-to-speech) em produção, sabe a dor: um fornecedor pra voz, outro pra billing, SDK diferente pra cada coisa. Pois é, a Google acabou de simplificar isso trazendo os modelos Gemini 3.8 Flash-Lite TTS e Gemini 3.8 Flash TTS direto pro Vercel AI Gateway — o mesmo endpoint que você já usa pra chat, embeddings e visão.
Os dois modelos recebem texto e geram fala em mais de 100 idiomas. Suportam narração longa, controle de entrega (tom, ritmo) e até diálogo com dois falantes. Se você tá construindo audiolivros, URA (IVR), acessibilidade ou agentes de voz, isso elimina uma camada inteira de código cola.
Segundo o changelog oficial, cada variante tem seu propósito:
google/gemini-3.8-flash-lite-tts— ideal pra geração em alto volume, com controles de tom, ritmo e entrega linha por linha.google/gemini-3.8-flash-tts— adiciona design de voz e personagem via prompts em linguagem natural, incluindo deixa de atuação, sotaques e reações conversacionais.
Se você curte ver como times repensam confiabilidade em escala, esse é o mesmo padrão: consolidar infra e remover encanamento sob medida. Dá uma olhada no nosso artigo sobre como o Temporal garante operações confiáveis na Netflix.

Mão na massa em 10 linhas
O SDK ai expõe a geração de fala através de um entry point experimental. Bora ver o exemplo mínimo que funciona:
import { experimental_generateSpeech as generateSpeech } from 'ai';
import { writeFile } from 'node:fs/promises';
// Gera fala a partir de texto usando o modelo Flash-Lite TTS
const result = await generateSpeech({
model: 'google/gemini-3.8-flash-lite-tts',
text: 'Bem-vindo à edição em áudio.',
voice: 'Kore',
outputFormat: 'wav',
});
// Salva o buffer de áudio gerado em disco
await writeFile('speech.wav', result.audio.uint8Array);
Pronto. A mesma assinatura funciona pro modelo completo gemini-3.8-flash-tts — é só trocar a string do modelo e você desbloqueia os prompts de design de voz.
Como escolher entre os dois
| Recurso | Flash-Lite TTS | Flash TTS |
|---|---|---|
| Geração em alto volume | ✅ Otimizado | ⚠️ Possível, mas mais pesado |
| Controle de tom / ritmo | ✅ | ✅ |
| Entrega linha por linha | ✅ | ✅ |
| Design de voz e personagem | ❌ | ✅ |
| Deixas de atuação / sotaques | ❌ | ✅ |
| Diálogo com dois falantes | ✅ | ✅ |
| Melhor pra | Narração, URA, TTS em escala | Podcasts, games, personagens de IA |
Playgrounds e docs
Você pode gerar e ouvir amostras direto no playground do Flash-Lite TTS ou no playground do Flash TTS antes de partir pra integração. Instruções de setup e mais exemplos de código estão no speech quickstart e no guia de text-to-speech.
Vantagens do Gateway: uma API só pra fala junto com seus outros modelos, tracking de uso e custo por request, regras de roteamento configuráveis e opção de trazer sua própria chave do provedor.

Limitações e pegadinhas
Antes de sair deletando seu fornecedor de TTS atual, fica ligado nisso:
- API experimental. O
experimental_generateSpeeché explicitamente marcado como experimental — espere breaking changes. Trave a versão do SDK e envolva a chamada num adapter. - Sem streaming (pelo que a doc mostra). O exemplo escreve o buffer completo em disco. Se você precisa de latência baixa pra agentes em tempo real, confirma o suporte atual antes de projetar em cima disso.
- Tracking de custo ≠ controle de custo. O AI Gateway mostra uso por request, mas TTS em alto volume estoura rápido. Configura alertas de budget e manda jobs não críticos pro Flash-Lite.
- Licenciamento de voz. As vozes do Gemini são ativos do provedor — checa os termos da Google antes de lançar produto comercial com persona clonada ou customizada.
- Qualidade varia por idioma. Suportar 100+ idiomas ≠ 100+ idiomas igualmente polidos. Testa seus locales-alvo, principalmente sotaques e code-switching.
Próximos passos
Depois que a geração básica estiver rodando:
- Adicione cache por hash de texto — strings repetidas (saudações, menus de URA) não deveriam bater na API duas vezes.
- Monte um registro de vozes mapeando nome da persona pra modelo + voz + prompt, assim trocar personagem é mudança de config, não de código.
- Case com uma fila (BullMQ, SQS) pra jobs de narração longa — não bloqueia handlers HTTP esperando áudio de um minuto.
- Instrumente latência por idioma e por modelo pra pegar regressões quando a Google soltar updates.
Se você também mexe com frontend em apps pesados de mídia, nosso guia sobre o CSS animation-trigger e o futuro das animações por scroll é uma ótima leitura complementar.

Fechando a conta
O Gemini 3.8 Flash TTS no AI Gateway é uma jogada de consolidação séria. Em vez de fornecedor separado de TTS, billing separado e auth separada, você tem fala como mais uma modalidade no mesmo endpoint. Pra quem já tá no stack de IA da Vercel, o custo de migração é quase zero.
O ganho real não é a qualidade do modelo — é que fala deixou de ser caso especial. Quando TTS mora do lado das suas chamadas de LLM, features como respostas narradas de chat, agentes com voz e audiolivros dinâmicos param de ser side project e viram config.
Começa com o Flash-Lite pra volume, sobe pro Flash TTS quando precisar de personagem. E fica de olho na flag experimental — ela não vai ficar experimental pra sempre. 🚀