Google Gemini 3.1 Flash Text To Speech

Google Gemini 3.1 Flash Text To Speech

Playground

Try it on WaveSpeedAI!

Gemini 3.1 Flash Text to Speech generates expressive multi-speaker audio from text, with natural voices and multilingual language control for dialogue, narration, localization, and AI voice workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

Gemini 3.1 Flash Text-to-Speech turns scripts and labelled dialogue into expressive spoken audio. Assign a distinct voice to each speaker and generate one natural, multilingual audio track for narration, conversations, and voiceover workflows.


Why Choose This?

  • Expressive speech generation
    Create natural pacing, tone, and delivery from written scripts.

  • Multi-speaker dialogue
    Assign different voices to up to two named speakers in one generation.

  • Multilingual voice output
    Select the language and locale that match the script for stronger pronunciation.

  • Voice preset control
    Choose from a library of voice presets for narration, dialogue, announcements, and character reads.

  • Standard audio output
    Generated audio is returned as a URL in the standard WaveSpeed prediction response.


Parameters

ParameterRequiredDescription
textYesScript or dialogue to synthesize. Use each speaker name exactly as configured in speakers.
languageYesLanguage and locale spoken in the generated audio.
speakersYesOne or two speaker entries. Each entry includes a speaker name and voice preset.

How to Use

  1. Write your script — Use a consistent Speaker: dialogue format, such as Narrator: Welcome to the show.
  2. Choose a language — Select the language and locale for the spoken audio.
  3. Add speakers — Add each speaker label used in the script, then choose a voice preset.
  4. Submit — Generate the spoken audio and retrieve the output URL.

Pricing

Pricing is $0.15 per 1,000 characters of input text, rounded up to the next 1,000 characters.

Text LengthPrice
1-1,000 characters$0.15
1,001-2,000 characters$0.30
2,001-3,000 characters$0.45
3,001-5,000 characters$0.75
5,001-8,000 characters$1.20

Best Use Cases

  • Dialogue generation — Create conversations with different named voices.
  • Narration and voiceover — Produce spoken scripts for videos, presentations, and explainers.
  • Podcasts and audio stories — Generate host or character dialogue from structured scripts.
  • Multilingual content — Create localized speech with language-aware voice output.
  • Product demos — Turn scripted product messaging into polished audio.

Pro Tips

  • Make every speaker label in the script exactly match the corresponding speaker entry.
  • Keep punctuation clear to guide pauses, emphasis, and delivery.
  • Use one speaker for narration and two speakers for dialogue.
  • Match the selected language to the language used in the script.
  • Split long scripts into logical sections for more consistent pacing.

## Authentication

For authentication details, please refer to the [Authentication Guide](/api-authentication).

## API Endpoints

### Submit Task & Query Result

<ApiTabs submitUrl={model.submitUrl} resultUrl={model.resultUrl} payload={model.defaultValues} />

## Parameters

### Task Submission Parameters

#### Request Parameters

<RequestParams params={model.params} />

#### Response Parameters

<SubmitResponse />

#### Result Request Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| id | string | Yes | - | Task ID |

#### Result Response Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| code | integer | HTTP status code (e.g., 200 for success) |
| message | string | Status message (e.g., "success") |
| data | object | The prediction data object containing all details |
| data.id | string | Unique identifier for the prediction |
| data.model | string | Model ID used for the prediction |
| data.outputs | array&lt;string \| object&gt; | Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model. |
| data.urls | object | Object containing related API endpoints |
| data.urls.get | string | URL to poll for the prediction result |
| data.status | string | Status: `created`, `processing`, `completed`, or `failed` |
| data.created_at | string | ISO timestamp of when the request was created |
| data.error | string | Error message (empty if no error occurred) |
| data.timings | object | Object containing timing details |
| data.timings.inference | integer | Inference time in milliseconds |
© 2026 WaveSpeedAI. All rights reserved.