> ## AI Agent Context > Get the complete documentation index at: https://aistudio.google.com/llms.txt > Use this file to discover all available pages. > For the full documentation in a single file, fetch: https://aistudio.google.com/llms-full.txt # Gemini 3.8 Flash TTS Gemini 3.8 Flash TTS (`gemini-3.8-flash-tts`) is Google's flagship creative text-to-speech model, engineered for studio-grade voice fidelity, expressive acting, authentic regional accents, and rock-solid long-form multi-turn stability. {% button href="https://aistudio.google.com?model=gemini-3.8-flash-tts" variant="ais" %}Try in Google AI Studio{% /button %} ## Overview and capabilities {% id="overview-and-capabilities" %} Gemini 3.8 Flash TTS sets a new benchmark for expressive audio generation: * **High acoustic fidelity and acting nuance:** Delivers rich emotional range, natural cadence, and precise adherence to turn-level `style` directions and inline vocal events (``, ``, ``). * **Long-form multi-turn stability:** Maintains consistent voice identity, timbre, volume, and acoustic room tone across extended dialogues and multi-minute narrations without voice drift. * **Authentic regional accents and pronunciation:** Supports regional accents and minority dialects. * **Full voice ecosystem support:** Works seamlessly with prebuilt voices, the Extended Voice Library (`GET /v1beta/voices`), custom [Voice design](/docs/voice-design) personas, and [Voice replication](/docs/voice-replication) (persistent stored voices by default, plus optional stateless keys). You can also design and replicate voices interactively in [Google AI Studio](https://aistudio.google.com/generate-speech). Visit the [Text-to-speech](/docs/speech-generation) guide for full coverage of features, prompting best practices, and code examples. ## When to use which TTS model {% id="when-to-use-which-tts-model" %} Both Gemini 3.8 TTS models share the same API schema and prompting structure. Choose the model that fits your workload: | Feature / workload | Gemini 3.8 Flash TTS (`gemini-3.8-flash-tts`) | Gemini 3.8 Flash-Lite TTS (`gemini-3.8-flash-lite-tts`) | | :--- | :--- | :--- | | **Primary strength** | Maximum voice fidelity, acting nuance, and dialect coverage | High throughput, low latency, and cost efficiency | | **Best use cases** | Audiobooks, studio narration, complex multi-speaker dialogue, heavy vocal-burst acting, difficult pronunciation, regional dialects | High-volume production, real-time voice agent cascades, read-aloud features, voice replication, everyday single-speaker generation | | **Supported languages** | 130 languages | 101 languages | | **Recommended replacement for** | New flagship creative tier | `gemini-3.1-flash-tts-preview` | ## Migration guide {% id="migration-guide" %} If you are migrating from `gemini-3.1-flash-tts-preview` or earlier Gemini TTS models, update your requests for the Gemini 3.8 TTS schema: 1. **Move turn-level directions into `speech_metadata`:** Gemini 3.8 TTS treats input text strictly as a verbatim transcript. Inline text directions like `"Say cheerfully: Hello!"` or `"Speaker 1: Hello!"` may be spoken aloud. Move sustained delivery instructions (`style`) and speaker labels (`speaker`) into structured metadata: * **Interactions API:** Attach an annotation with `"type": "speech_metadata"`, `"speaker"`, and `"style"` to each text content block. * **GenerateContent API:** Attach `"speech_metadata": {"speaker": "...", "style": "..."}` to each `part`. 2. **Use angle-bracket inline tags only for point-in-time vocal events:** Keep momentary non-speech vocalizations and pauses inline in the transcript using angle brackets (such as ``, ``, ``, ``, or ``). Put delivery styles like whispering in `speech_metadata.style`. 3. **Specify `speaker` on every turn in multi-speaker requests:** Every turn in a multi-speaker request must explicitly include `speaker` inside `speech_metadata` matching one of the configured speakers. 4. **Design personas upfront with Voice design:** Replace long legacy Audio Profile / Director's Notes blocks with a custom voice created in [Voice design](/docs/voice-design), then carry that `voice_...` ID through your TTS requests with minimal or empty `style` strings. 5. **Account for default WAV (`audio/wav`) output on unary requests:** Unlike `gemini-3.1-flash-tts-preview` and earlier TTS models (which returned headerless raw PCM `audio/l16` by default), Gemini 3.8 TTS returns WAV audio (`audio/wav` / `AUDIO_WAV`) with a standard RIFF header by default for unary requests. * If your code previously wrapped raw PCM bytes in a WAV header (for example, using Python's `wave` module or `ffmpeg`), remove the manual header wrapper and write the returned bytes directly to a `.wav` file. * If your pipeline requires headerless raw PCM, mu-law, or A-law audio, explicitly set `response_format.mime_type` to `"audio/l16"`, `"audio/mulaw"`, or `"audio/alaw"` (for example, `{"response_format": {"type": "audio", "mime_type": "audio/l16"}}` in the Interactions API, or `AUDIO_L16`, `AUDIO_MULAW`, or `AUDIO_ALAW` in `generateContent`). See [Audio output formats](/docs/speech-generation#audio-output-formats). ## gemini-3.8-flash-tts {% id="gemini-38-flash-tts" %} {% table variant="model" %} * Property * Description --- * {% section class="model-property" %} {% icon name="id_card" /%}Model code {% /section %} * `gemini-3.8-flash-tts` --- * {% section class="model-property" %} {% icon name="save" /%}Supported data types {% /section %} * **Inputs** Text **Output** Audio --- * {% section class="model-property" %} {% icon name="token_auto" /%}Token limits{% sup %}[[*]](/docs/tokens){% /sup %} {% /section %} * **Input token limit** 8,192 **Output token limit** 16,384 (Gemini API serving limit) --- * {% section class="model-property" %} {% icon name="handyman" /%}Capabilities {% /section %} * {% section class="three-column-grid" %} {% section %} **Audio generation** {% badge type="supported" /%} {% /section %} {% section %} **Batch API** {% badge type="supported" /%} {% /section %} {% section %} **Caching** {% badge type="not-supported" /%} {% /section %} {% section %} **Code execution** {% badge type="not-supported" /%} {% /section %} {% section %} **File search** {% badge type="not-supported" /%} {% /section %} {% section %} **Flex inference** {% badge type="supported" /%} {% /section %} {% section %} **Function calling** {% badge type="not-supported" /%} {% /section %} {% section %} **Grounding with Google Maps** {% badge type="not-supported" /%} {% /section %} {% section %} **Image generation** {% badge type="not-supported" /%} {% /section %} {% section %} **Live API** {% badge type="not-supported" /%} {% /section %} {% section %} **Priority inference** {% badge type="supported" /%} {% /section %} {% section %} **Search grounding** {% badge type="not-supported" /%} {% /section %} {% section %} **Structured outputs** {% badge type="not-supported" /%} {% /section %} {% section %} **Thinking** {% badge type="not-supported" /%} {% /section %} {% section %} **URL context** {% badge type="not-supported" /%} {% /section %} {% /section %} --- * {% section class="model-property" %} {% icon name="123" /%}Versions {% /section %} * Read the [model version patterns](/docs/models#model-versions) for more details. * `gemini-3.8-flash-tts` --- * {% section class="model-property" %} {% icon name="calendar_month" /%}Latest update {% /section %} * September 2026 --- * {% section class="model-property" %} {% icon name="paid" /%}Pricing {% /section %} * [Pricing](/docs/pricing#gemini-3.8-flash-tts) {% /table %} ## Supported languages {% id="supported-languages" %} `gemini-3.8-flash-tts` detects the input language automatically and supports **over 130 languages**: | Language | Language | Language | | :--- | :--- | :--- | | Acehnese (Arab script) | Greek | Nepali (individual language) | | Afrikaans | Guarani | Nigerian Fulfulde | | Akan | Gujarati | North Azerbaijani | | Amharic | Haitian Creole | Northern Sotho | | Armenian | Halh Mongolian | Northern Uzbek | | Assamese | Hausa | Norwegian Bokmål | | Awadhi | Hebrew | Norwegian Nynorsk | | Balinese | Hindi | Nyanja | | Bangla | Hungarian | Occitan | | Banjar (Arab script) | Icelandic | Odia (individual language) | | Banjar (Latn script) | Igbo | Pangasinan | | Bashkir | Iloko | Persian (Afghanistan) | | Basque | Indonesian | Polish | | Belarusian | Iranian Persian | Portuguese | | Bemba | Italian | Punjabi | | Bhojpuri | Japanese | Romanian | | Bosnian | Javanese | Russian | | Buginese | Kabyle | Santali | | Bulgarian | Kamba | Serbian | | Burmese | Kannada | Sindhi | | Cantonese | Kashmiri (Arab script) | Sinhala | | Catalan | Kashmiri (Deva script) | Slovak | | Cebuano | Kazakh | Slovenian | | Central Kurdish | Khmer | Somali | | Chhattisgarhi | Kikuyu | South Azerbaijani | | Chinese (Hans script) | Kinyarwanda | Southern Pashto | | Chinese (Hant script) | Kongo | Southern Sotho | | Crimean Tatar | Korean | Spanish | | Croatian | Kyrgyz | Standard Arabic (Arab script) | | Czech | Lao | Standard Arabic (Latn script) | | Danish | Latgalian | Standard Latvian | | Dutch | Lingala | Standard Malay | | Dyula | Lithuanian | Swahili (individual language) | | Dzongkha | Luxembourgish | Swati | | Egyptian Arabic | Macedonian | Swedish | | English | Magahi | Tajik | | Estonian | Maithili | Tamil | | Filipino | Malayalam | Telugu | | Finnish | Maltese | Thai | | French | Manipuri | Tigrinya | | Galician | Marathi | Tosk Albanian | | Ganda | Minangkabau (Arab script) | Turkish | | Georgian | Minangkabau (Latn script) | Uyghur | | German | Mizo | Vietnamese |