# Gemini 3.1 Flash TTS - Core.Today AI API > Google Gemini 3.1 Flash native-audio TTS via Replicate. Style instructions (separate from the spoken text) plus 30 preset voices and 40+ language/locale codes, with inline markup tags for expressive delivery ([sigh], [whispering], [shouting], etc.). - **Provider**: Google - **Model ID**: google/gemini-3.1-flash-tts - **Category**: Audio & TTS - **Credits**: 299 per 1000 characters (input text + generated speech) - **Speed**: Fast - **Quality**: High ## Features - Native-audio TTS powered by Gemini 3.1 Flash - Separate style-instruction field (prompt) independent from the spoken text - 30 preset voices - 40+ language/locale codes (BCP-47), including Korean, Japanese, Spanish, French, German, and more - Inline markup tags ([sigh], [laughing], [whispering], [shouting], [extremely fast]) for expressive delivery ## Use Cases - Multilingual narration and voiceover for video content - Expressive character voices using markup tags and style instructions - Localized audio for apps/products across 40+ languages - Rapid prototyping of script read-throughs before final production ## API Endpoint Base URL: https://api.core.today/v1 Create Prediction: POST /predictions Get Status: GET /predictions/{job_id} ## Authentication Header: X-API-Key: YOUR_API_KEY ## Input Parameters ### Required - **text**: string - The text to convert to speech. Supports markup tags like [sigh], [laughing], [whispering], [shouting], [extremely fast] for expressive delivery. Maximum 4,000 bytes. ### Optional - **prompt**: string (default: Say the following.) - Style instructions to control how the text is spoken. Use natural language to describe the desired tone, pace, accent, and emotion. For example: 'Say this in a calm, professional tone' or 'Speak with excitement and energy'. Maximum 4,000 bytes. - **voice**: string (default: Kore) - Voice to use for speech generation Options: Achernar, Achird, Algenib, Algieba, Alnilam, Aoede, Autonoe, Callirrhoe, Charon, Despina, Enceladus, Erinome, Fenrir, Gacrux, Iapetus, Kore, Laomedeia, Leda, Orus, Pulcherrima, Puck, Rasalgethi, Sadachbia, Sadaltager, Schedar, Sulafat, Umbriel, Vindemiatrix, Zephyr, Zubenelgenubi - **language_code**: string (default: en-US) - Language for the speech output Options: af-ZA, am-ET, ar-001, ar-EG, az-AZ, be-BY, bg-BG, bn-BD, ca-ES, ceb-PH, cmn-CN, cmn-tw, cs-CZ, da-DK, de-DE, el-GR, en-AU, en-GB, en-IN, en-US, es-419, es-ES, es-MX, et-EE, eu-ES, fa-IR, fi-FI, fil-PH, fr-CA, fr-FR, gl-ES, gu-IN, he-IL, hi-IN, hr-HR, ht-HT, hu-HU, hy-AM, id-ID, is-IS, it-IT, ja-JP, jv-JV, ka-GE, kn-IN, ko-KR, kok-IN, la-VA, lb-LU, lo-LA, lt-LT, lv-LV, mai-IN, mg-MG, mk-MK, ml-IN, mn-MN, mr-IN, ms-MY, my-MM, nb-NO, ne-NP, nl-NL, nn-NO, or-IN, pa-IN, pl-PL, ps-AF, pt-BR, pt-PT, ro-RO, ru-RU, sd-IN, si-LK, sk-SK, sl-SI, sq-AL, sr-RS, sv-SE, sw-KE, ta-IN, te-IN, th-TH, tr-TR, uk-UA, ur-PK, vi-VN ## Examples ### Korean narration with style direction Narrates Korean text in a calm, professional tone using the Kore voice. ```json { "model": "google/gemini-3.1-flash-tts", "input": { "prompt": "Say this in a calm, professional tone, like a documentary narrator.", "text": "오늘 소개할 제품은 최신 무선 이어폰입니다. 뛰어난 음질과 편안한 착용감을 동시에 제공합니다.", "voice": "Kore", "language_code": "ko-KR" } } ``` ### Expressive English delivery with markup tags Uses inline markup tags for an excited, expressive delivery in English. ```json { "model": "google/gemini-3.1-flash-tts", "input": { "prompt": "Speak with excitement and energy, like announcing a big surprise.", "text": "[laughing] You won't believe this offer — it's fifty percent off, today only! [extremely fast] Don't miss out!", "voice": "Puck", "language_code": "en-US" } } ``` ## Response Format ```json { "job_id": "abc123", "status": "pending | processing | completed | failed", "result": "URL or data (when completed)" } ``` ## Usage Flow 1. POST /predictions with model and input -> receive job_id 2. GET /predictions/{job_id} -> poll until status is completed or failed 3. Result contains output URL(s) ## Tips - Use `prompt` for tone/pace/emotion direction and `text` for the actual words to speak — they're separate fields - Wrap markup tags like [whispering], [sigh], [shouting] directly inside `text` for expressive delivery, not in `prompt` - Set language_code to match the language of `text` (e.g. ko-KR for Korean) for accurate pronunciation - Keep both prompt and text under 4,000 bytes each ## Documentation https://replicate.com/google/gemini-3.1-flash-tts