Readme
Gemini 3.8 Flash-Lite TTS
Gemini 3.8 Flash-Lite TTS is Google’s fast, cost-efficient text-to-speech model. It ranks second on Hume AI’s Overall Quality Index, right behind google/gemini-3.8-flash-tts, at a lower price. It supports 101 languages.
Use it for voice agents, customer support bots, read-aloud features, dubbing, and other high-volume work. Google recommends it as the drop-in upgrade from google/gemini-3.1-flash-tts.
It takes exactly the same inputs as Gemini 3.8 Flash TTS. Pick Flash TTS instead when you need studio-grade acting, dialect work, two-speaker scenes with lots of backchanneling, or long-form narration.
How it works: cast, direct, speak
- Cast (
voice): who is speaking. Pick one of 30 studio voices. - Direct (
style): how the line is delivered, likecalm customer support agentorwhispered urgently. - Speak (
text): exactly what they say. Everything intextgets spoken, except inline tags in<angle brackets>and backchannels in|pipes|.
Inputs
| Input | Description | Default |
|---|---|---|
text |
The words to speak, with optional <tags>, |backchannels|, and /IPA/. In two-speaker mode, write one line per turn. |
(required) |
voice |
Voice for the narrator, or for the first speaker in two-speaker mode. | Kore |
second_voice |
Voice for the second speaker. Set it to anything other than none to turn on two-speaker mode. |
none |
style |
Delivery direction for every line. Leave it empty for natural delivery. | empty |
output_format |
wav (24 kHz mono) or mp3. |
wav |
Start with no style
Try your script with an empty style first. Most text needs no direction, because the model reads punctuation, context, and the voice’s own character. Add a few words of style only when a line needs a nudge.
text: Thanks for calling! <short pause> I can help you reset your password in just a minute.
voice: Achird
style: calm, friendly customer support agent
For voice agents, make one call per turn, leave style empty or use the same short style for the whole conversation, and let the voice carry the character.
Vocal bursts and pauses
Tags in angle brackets make a sound once, at the exact spot you put them:
- Breathing:
<breath>,<heavy breath>,<exhales>,<pant>,<sigh> - Laughter:
<laugh>,<chuckle>,<giggle>,<snicker>,<cackle> - Reactions:
<gasp>,<cough>,<sneeze>,<throat-clearing>,<snort> - Sounds:
<sob>,<cry>,<whimper>,<groan>,<yawn> - Pauses:
<short pause>,<long pause>,<tsk>,<argh>
CAPITALS add stress to a word, and ellipses (...) add hesitation. If your text isn’t in English, keep the tags in English anyway.
Custom pronunciation
Write tricky names in the International Phonetic Alphabet between slashes:
text: Let me introduce you to my colleagues /niːv/ and /ʃɪˈvɔːn/.
Two-speaker dialogue
Set second_voice and write each turn on its own line as Name: what they say, using exactly two names. The first name gets voice and the second gets second_voice. To direct one line, write Name (style): what they say. Wrap a short reaction in pipes, like |seriously?|, and the other speaker says it in the background.
voice: Puck
second_voice: Kore
text: |
Host: So you're telling me the whole app runs on a single server? |seriously?|
Guest: <laugh> One server, three cron jobs, and a lot of optimism.
Host (laughing): That's the most honest answer we've ever had on this show.
Tips
- Keep
styleshort. A few words beat a paragraph. Long direction blocks make the voice drift. - Don’t use
styleto change who’s speaking. Age, gender, and accent come from the voice, so pick a different voice instead. - Write how people talk. Fillers and hesitations (“oh, uh, yeah… hm”) sound more natural.
- Split long responses into shorter turns instead of reaching for stronger style prompts.
Voices
| Voice | Character | Voice | Character | Voice | Character |
|---|---|---|---|---|---|
| Zephyr | Bright | Puck | Upbeat | Charon | Informative |
| Kore | Firm | Fenrir | Excitable | Leda | Youthful |
| Orus | Firm | Aoede | Breezy | Callirrhoe | Easy-going |
| Autonoe | Bright | Enceladus | Breathy | Iapetus | Clear |
| Umbriel | Easy-going | Algieba | Smooth | Despina | Smooth |
| Erinome | Clear | Algenib | Gravelly | Rasalgethi | Informative |
| Laomedeia | Upbeat | Achernar | Soft | Alnilam | Firm |
| Schedar | Even | Gacrux | Mature | Pulcherrima | Forward |
| Achird | Friendly | Zubenelgenubi | Casual | Vindemiatrix | Gentle |
| Sadachbia | Lively | Sadaltager | Knowledgeable | Sulafat | Warm |
Languages
The model detects the language from your text. It supports 101 languages. A few that Flash TTS supports are missing here, including Finnish, Swedish, Thai, Lithuanian, and Slovenian. See Google’s language list.
Upgrading from Gemini 3.1 Flash TTS
- Move direction out of the text and into
style. Thepromptinput is gone. - Tags now use angle brackets (
<laugh>), not square brackets ([laughing]). language_codeis gone, because the model detects the language itself.
Safety
Every clip includes an inaudible SynthID watermark that marks it as AI-generated.