Source: https://ailoot.ai/models/en/gemini-3-1-flash-tts-preview/
Canonical: https://ailoot.ai/models/en/gemini-3-1-flash-tts-preview/
Language: en

# Gemini 3.1 Flash Tts Preview

[Markdown](https://ailoot.ai/models/en/gemini-3-1-flash-tts-preview/index.md) · [JSON](https://ailoot.ai/models/en/gemini-3-1-flash-tts-preview/facts.json)

## [Gemini 3.1 Flash Tts Preview](https://ailoot.ai/models/en/gemini-3-1-flash-tts-preview/)

A Google speech model for voicing text with control over narrative delivery and expressive audio tags.

- [**Ailoot · Text to speech** `POST /v1/audio/speech` `gemini-3.1-flash-tts-preview`](https://ailoot.ai/models/en/gemini-3-1-flash-tts-preview/#method-0)

About the model

This description covers the model’s capabilities. Available in Ailoot inputs, outputs and options are listed for the selected method below.

Gemini 3.1 Flash TTS Preview converts text into speech. It is intended for natural-sounding narration with delivery controlled through text instructions. Speaking style can be specified alongside speech instructions, while expressive audio tags help achieve the desired performance.

#### Text becomes audio

This model's input is **text**, and its output is **an audio recording**. Maximum input is **8192 tokens**, and output **16,384 tokens**. It is designed for speech synthesis from prepared text; it is not an ordinary model for text answers or transcription of a supplied recording.

Single-voice narration and dialogues with multiple speakers are provided. Delivery control is instruction-based: the reading style and expressiveness of lines can be described. The manufacturer lists batch generation for repeated speech tasks.

#### Result format and specialization

The original format of an ordinary response is **PCM without a WAV header**. This is an important characteristic of this particular preview version: returned bytes cannot automatically be treated as a finished WAV file.

The model card does not declare context caching, code execution, file search, function calling, search grounding, Google Maps, image generation, structured text responses, Thinking or reading URL contents. Speech synthesis is its specialized output task; the capabilities of text models do not carry over to it.

#### Preview version

`gemini-3.1-flash-tts-preview` belongs to the earlier speech preview versions. Its voice-control methods and audio format need to be considered separately from later TTS models. This version does not declare creation of a new voice identity or reproduction of a voice from a sample; its card does not state the exact number of supported languages.

The described capabilities belong to the model itself. The specific way text and speaker settings are supplied, and an audio file is obtained, depends on the supported speech method.

**Ailoot · Text to speech** `POST /v1/audio/speech` `gemini-3.1-flash-tts-preview`

[`gemini-3.1-flash-tts-preview`](https://ailoot.ai/models/en/#m=gemini-3.1-flash-tts-preview&route=Core&caller=gemini-3.1-flash-tts-preview&fmt=speech)

Google /`gemini-3.1-flash-tts-preview`

### Overview

A Google speech model for voicing text with control over narrative delivery and expressive audio tags.

Accepted inputs

Text

Results

speech

### Available in Ailoot · inputs & methods

**Ailoot · Text to speech** `POST /v1/audio/speech`

Input types

`text`

Output types

`speech`

Output format

native audio bytes or JSON asset links

| Field | Type | Requirement | Values & limits | Default |
| --- | --- | --- | --- | --- |
| Field`model` | Type`string` | RequirementRequired | Values & limits gemini-3.1-flash-tts-preview | Default— |
| Field`input` | Type`string` | RequirementRequired | Values & limits Minimum length: 1 | Default— |
| Field`voice` | Type`string` | RequirementOptional | Values & limits Kore | DefaultKore |
| Field`response_format` | Type`string` | RequirementOptional | Values & limits , wav, json | Default |
| Field`stream_format` | Type`string` | RequirementOptional | Values & limits audio | Default— |

Input material combinations

**text\_to\_speech** · Required: input

Method parameters and lifecycle

| Parameter | Contract |
| --- | --- |
| Parameter`material_types` | Contracttext |
| Parameter`required` | Contractnull |
| Parameter`optional_controls` | Contractnull |

Lifecycle: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · actual returned task\_id or media library record

`GET /v1/media/assets/{asset_id}/content`

`GET /v1/media/assets`

`GET /v1/media/assets/{asset_id}`

Method shapes and IDs are exact; supplier capability is separate from admission.

### Pricing

#### Ailoot method rates

Input

$0.001 */ 1K*

Output

$0.02 */ 1K*

Ailoot reserves an estimated amount before a request. After the result, it settles the final charge from measured usage. Streaming settlement uses the final usage record. [How reservation and settlement work →](https://ailoot.ai/docs/en/billing/reserve/)

### Example requests

#### Ailoot · Text to speech

Speech example

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 narration script}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "gemini-3.1-flash-tts-preview", "input": ""}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["input"]=text
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o speech.wav
```

### Receive and save results

#### Ailoot · Text to speech

native audio bytes or JSON asset links

- `GET /v1/media/tasks/{task_id}`
- `GET /v1/media/assets/{asset_id}/content`
- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

##### Keep all completed results

Keep every complete returned response, file and content part.

A single output defaults to native audio bytes with actualContent-Type; response\_format=json or multiple outputs returns all owned links. No requested MP3/Opus/AAC/FLAC/PCM conversion or SSE.

##### If the original response needs checking

Retain original operation\_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route.

Response fields

| Field | Type |
| --- | --- |
| Field`binary native audio` | Typebytes |
| Field`model` | Typestring |
| Field`response_id` | Typestring |
| Field`actual_count` | Typeinteger |
| Field`data[]` | Typeowned audio asset link |

Errors and next steps

| Response | Condition | Next step |
| --- | --- | --- |
| Response400 · `invalid_request_error` | ConditionInvalid required fields, material representation or parameter value | Next stepCorrect the indicated fields before a new creation request. |
| Response`server_error` | ConditionThe returned response says the operation or result requires a check | Next stepKeep the original returned operation/task ID, request headers and response; continue supported reads of that original operation. Do not resubmit the creation request. |

### Aliases

#### Model aliases

**Ailoot** [`gemini-3.1-flash-tts-preview`](https://ailoot.ai/models/en/#m=gemini-3.1-flash-tts-preview&route=Core&caller=gemini-3.1-flash-tts-preview&fmt=speech)

#### Method path aliases

Use the method paths shown above.

#### Related caller IDs

[`gemini-3.1-flash-tts-preview`](https://ailoot.ai/models/en/#m=gemini-3.1-flash-tts-preview&route=Core&caller=gemini-3.1-flash-tts-preview&fmt=speech)

FAQ · Gemini 3.1 Flash Tts Preview

What inputs and results are available?

`POST /v1/audio/speech` · `gemini-3.1-flash-tts-preview`: `text` → `speech`

Which fields does the request use?

`POST /v1/audio/speech` · `gemini-3.1-flash-tts-preview`: `model`, `input`, `voice`, `response_format`, `stream_format`

Connect Ailoot to Claude Code, OpenCode, Hermes or your own app.

## The company and its project portfolio

The company and its project portfolio: millions of customers; monthly sales in the billions.

## Buy tokens at a discount.

Subscription discounts for regular use. Promo codes offer up to 50% off token purchases.

Subscription

Choose a discounted plan for your regular requests.

Promo code: up to 50% off

Enter your code at checkout. The price updates to reflect the current promotion.

Spending in your history

The model, tokens and amount are recorded for each request.

[Choose a subscription](https://ailoot.ai/docs/en/billing/subscriptions/) · [View model prices](https://ailoot.ai/models/en/)

## Connect the API to a product you sell.

Use Ailoot in SaaS, apps and bots under its official service offer and licence agreement. Request a reseller licence for resale.

Commercial application

Add text, image, video and audio generation to paid features in your service.

Reseller licence

Send a description of your project and how you provide access. Request written terms for use and resale.

Documents on the website

The service offer, licence agreement and data processing policy are available before you connect.

[Request a reseller licence](mailto:support@ailoot.ai) · [Service offer and licence agreement](https://ailoot.ai/legal/offer?lang=en)

## Ailoot · The company and its project portfolio





Ailoot combines established operating experience, a large client base, stable service and ongoing KPI control.





The company and its project portfolio: millions of customers; monthly sales in the billions.





Ailoot brings that operating experience to API access for AI features in customer products, agents, applications and automations.
