ComparisonModels & LLMs

Gemini 3.8 Flash TTS vs Flash-Lite: Which to Pick

Gemini 3.8 Flash-Lite TTS is the cheaper default for high-volume speech; Flash TTS is for expressive acting and over 130 languages. Prices, routing rules and the 3.1 migration list.

Toolbit AI - Team
6 min read
Gemini 3.8 Flash TTS vs Flash-Lite: Which to Pick

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.
AxisFlash TTSFlash-Lite TTSWinner
Best fits (model cards)Audiobooks, narration, complex dialogue, dialectsHigh-volume production, agent cascades, read-aloudDepends
LanguagesOver 130101Flash
Standard audio output, per 1M tokens$9.00$6.00Flash-Lite
Text input, per 1M tokens$0.50$0.50Tie
Token limits (input / output)8,192 / 16,3848,192 / 16,384Tie
Context cachingNot supportedNot supportedTie
Hume AI quality ranking (Google-reported)#1#2Flash

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/voices lists the Extended Voice Library, and Google's launch post cites 2,000+ voices. Voice design from a text prompt returns a persistent voice_... 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.

TierFlash TTS text inFlash TTS audio outFlash-Lite TTS text inFlash-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:

  1. 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.
  2. Style moves to speech_metadata. Put "emotions, delivery style, prosody, pacing, and volume" for a whole turn in the style field.
  3. 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_metadata style.
  4. Every multi-speaker turn names its speaker in speech_metadata.
  5. 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_format to audio/l16, audio/mulaw or audio/alaw.
  6. Streaming stays raw. Chunks are headerless 16-bit signed little-endian PCM (audio/l16, 24 kHz, mono) by default.
Migration from 3.1 to 3.8: style cues and speaker labels leave the text field for speech_metadata, and unary output now arrives as WAV

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.

Routing rule: agent cascades, read-aloud and 3.1 migrations go to Flash-Lite; nuanced acting and locales beyond its 101 languages go to Flash
  1. Start on Flash-Lite for agent cascades, read-aloud and bulk generation.
  2. Promote to Flash when listeners hear weak dialects, mushy two-speaker scenes or long narrations that drift, or the script needs expressive control.
  3. Gate on language. A locale outside Flash-Lite's 101 languages goes to Flash.
  4. 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.

Share this article

Related articles

Continue exploring similar guides and insights