Quick verdict: Default to Gemini 3.8 Flash-Lite TTS. Its audio output costs 33% less than Flash TTS at every tier. Switch to Flash TTS when you need nuanced acting or a language outside Flash-Lite's 101.
Google launched both models on Sep 23, 2026. They share one request schema, so routing is a model ID swap: gemini-3.8-flash-tts or gemini-3.8-flash-lite-tts. Both double their prices on Jan 1, 2027.
Flash or Flash-Lite: the scorecard
- Pick Flash-Lite TTS if you run high-volume production, real-time voice agent cascades or read-aloud features. Google names these as its best fits.
- Pick Flash TTS if you need "maximum acoustic fidelity, nuanced acting, and expressive control", or a locale only Flash covers. Google lists audiobooks, studio narration, complex multi-speaker dialogue, difficult pronunciation and regional dialects.
- Migrating from
gemini-3.1-flash-tts-preview? Google names Flash-Lite as its replacement.
| Axis | Flash TTS | Flash-Lite TTS | Winner |
|---|---|---|---|
| Best fits (model cards) | Audiobooks, narration, complex dialogue, dialects | High-volume production, agent cascades, read-aloud | Depends |
| Languages | Over 130 | 101 | Flash |
| Standard audio output, per 1M tokens | $9.00 | $6.00 | Flash-Lite |
| Text input, per 1M tokens | $0.50 | $0.50 | Tie |
| Token limits (input / output) | 8,192 / 16,384 | 8,192 / 16,384 | Tie |
| Context caching | Not supported | Not supported | Tie |
| Hume AI quality ranking (Google-reported) | #1 | #2 | Flash |
An earlier version of this post said both models support caching. Both model cards list caching as not supported.
How we compared Flash TTS and Flash-Lite TTS
We read Google's pricing page, both model cards, the speech generation guide and the launch post on October 21, 2026. We made no API calls and did not run audio in Google AI Studio. The axes are the ones that change a routing decision: language reach, voice quality, cost and migration work.
Flash TTS wins on languages and voice quality
Flash TTS covers "over 130 languages"; the Flash-Lite model card lists 101. Google's launch post rounds both to "over 100 languages", so check the per-model lists for your locale.
On quality, Google reports that Flash TTS took the "#1 overall spot on Hume AI's Voice Design Benchmark (71.4)". It also says Flash placed first and Flash-Lite second on Hume's Overall Quality Index, and that Flash led accent modeling (60.8). These are vendor-reported placements, not an independent re-score.
What stays the same on both:
- Voices: the prebuilt set has 30 curated voices (Kore, Puck and others).
GET /v1beta/voiceslists the Extended Voice Library, and Google's launch post cites 2,000+ voices. Voice design from a text prompt returns a persistentvoice_...ID. Google says every clip from its Gemini Audio models carries a SynthID watermark. - Multi-speaker: one request supports up to 2 speakers with prebuilt voices, via
speech_config.speakers. - Serving tiers: Batch, Flex and Priority are supported.
- Limits: 8,192 input tokens and 16,384 output tokens.
Flash-Lite TTS wins on cost: the price table
Flash-Lite audio is 33% cheaper than Flash at Standard, Batch/Flex and Priority. Text input costs the same on both. Rates below are USD per 1M tokens on the paid tier, from Google's Gemini API pricing page, checked October 21, 2026.
| Tier | Flash TTS text in | Flash TTS audio out | Flash-Lite TTS text in | Flash-Lite TTS audio out |
|---|---|---|---|---|
| Standard, through Dec 31, 2026 | $0.50 | $9.00 | $0.50 | $6.00 |
| Standard, from Jan 1, 2027 | $1.00 | $18.00 | $1.00 | $12.00 |
| Batch and Flex, through Dec 31, 2026 | $0.25 | $4.50 | $0.25 | $3.00 |
| Batch and Flex, from Jan 1, 2027 | $0.50 | $9.00 | $0.50 | $6.00 |
| Priority, through Dec 31, 2026 | $0.90 | $16.20 | $0.90 | $10.80 |
| Priority, from Jan 1, 2027 | $1.80 | $32.40 | $1.80 | $21.60 |
The lower rates run "through December 31, 2026". The higher rates apply from January 1, 2027.
Real cost: 10M audio output tokens at Standard cost $90 on Flash and $60 on Flash-Lite through Dec 31. From Jan 1, the same volume costs $180 vs $120, so the gap grows from $30 to $60.
Standard and Priority also have a free tier, listed as "Free of charge" for input and output. Batch and Flex are not on the free tier. For comparison, gemini-3.1-flash-tts-preview lists $1.00 text and $20.00 audio at Standard. Plans change, so check the vendor page before you lock a budget.
Google publishes no latency SLA for either model and no tokens-per-second meter, so the speed claim is positioning, not a number.
What breaks when you migrate from 3.1 to 3.8
Treat the move from gemini-3.1-flash-tts-preview as a schema change, not a rename. The speech generation guide sets these rules:
- Text is verbatim. Gemini 3.8 TTS "treats the text field strictly as a verbatim transcript". A cue like
Say cheerfully:in the text can be read aloud. - Style moves to
speech_metadata. Put "emotions, delivery style, prosody, pacing, and volume" for a whole turn in the style field. - Inline tags are for moments. Angle-bracket tags mark point-in-time events such as laughs, sighs or short pauses; whole-turn delivery like whispering goes in
speech_metadatastyle. - Every multi-speaker turn names its speaker in
speech_metadata. - Unary output is WAV. It returns a complete WAV file with a RIFF header. Earlier models returned headerless L16. If your code wraps raw PCM into WAV, remove that step for unary calls; if your pipeline needs raw audio, set
response_formattoaudio/l16,audio/mulaworaudio/alaw. - Streaming stays raw. Chunks are headerless 16-bit signed little-endian PCM (
audio/l16, 24 kHz, mono) by default.

In short: the text field holds only the words to speak, speech_metadata holds style and speaker, and unary audio needs no WAV wrapper.
How do you call Gemini 3.8 TTS?
Per the speech generation guide, send the verbatim transcript with a speech_metadata style, set response_format and pick the voice in generation_config.speech_config. A sketch of the fields, not a full request:
{
"model": "gemini-3.8-flash-lite-tts",
"input": "Welcome back to the show.",
"speech_metadata": { "style": "warm, unhurried" },
"response_format": { "mime_type": "audio/l16" },
"generation_config": { "speech_config": { "voice": "Kore" } }
}
For a two-host script, set "mode": "conversational" inside speech_config and give each turn a speaker.
Which should you pick? A routing rule
Run Flash-Lite as the default lane and send specific content types to Flash, rather than flipping a global "always Flash" switch.

- Start on Flash-Lite for agent cascades, read-aloud and bulk generation.
- Promote to Flash when listeners hear weak dialects, mushy two-speaker scenes or long narrations that drift, or the script needs expressive control.
- Gate on language. A locale outside Flash-Lite's 101 languages goes to Flash.
- Re-listen after each swap. The schema is shared; the voice quality is not.
Pick neither if you need live, interruptible conversation
Both model cards list the Live API as not supported. These models recite exact text; they don't hold a duplex conversation. For interruptible agents, compare full-duplex agents on a realtime stack. If you want a hosted voice platform instead of raw API calls, look at ElevenLabs and its guide to voice support agents.
Bottom line
Default high-volume agent and read-aloud traffic to Flash-Lite. Promote to Flash when acting quality or language coverage misses the bar. Treat speech_metadata and the WAV default as real migration work, and budget for the price doubling on Jan 1, 2027.




