Gemini 3.8 Flash TTS
Google's successor to Gemini 3.1 Flash TTS — the creative tier of the 3.8 TTS family, 30 voices.
/v1/media/queueOverview
Gemini 3.8 Flash TTS is a text-to-speech model from Google and the successor to Gemini 3.1 Flash TTS. It is the creative tier of the Gemini 3.8 TTS family, with 30 named voices, and returns raw PCM at 24 kHz.
| Property | Value |
|---|---|
| Model ID | google/gemini-3.8-flash-tts |
| Alias | gemini-3-8-tts |
| Upstream Model | google/gemini-3.8-flash-tts |
| Category | Text to Speech |
| Output | pcm only |
| Pricing | $0.0527 per 1,000 characters |
Usage
All media models use the async job queue. Submit a job, then poll for the result.
Step 1: Submit Job
const res = await fetch('https://api.yepapi.com/v1/media/queue', {
method: 'POST',
headers: {
'x-api-key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
model: 'google/gemini-3.8-flash-tts',
prompt: 'Your text to speak goes here.',
options: { voice: 'Zephyr' },
}),
});
const { data } = await res.json();
// data.jobId — use this to poll for resultscurl -X POST https://api.yepapi.com/v1/media/queue \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "google/gemini-3.8-flash-tts", "prompt": "Your text to speak goes here."}'Step 2: Poll for Result
const status = await fetch(`https://api.yepapi.com/v1/media/status/${data.jobId}`, {
headers: { 'x-api-key': 'YOUR_API_KEY' },
});
const { data: job } = await status.json();
// job.status — "pending" | "processing" | "completed" | "failed"
// job.result.audio — { mimeType, base64 } when completedcurl https://api.yepapi.com/v1/media/status/JOB_ID \
-H "x-api-key: YOUR_API_KEY"Write the audio to a file:
import { writeFileSync } from 'node:fs';
writeFileSync('speech.pcm', Buffer.from(job.result.audio.base64, 'base64'));Request Body
| Parameter | Type | Required | Description | Default |
|---|---|---|---|---|
model | string | Yes | google/gemini-3.8-flash-tts | — |
prompt | string | Yes | The text to speak (max 50,000 bytes) | — |
options.voice | string | No | Voice identifier | Zephyr |
options.outputFormat | string | No | pcm only | pcm |
options.speed | number | No | Playback speed multiplier. Honoured only by models that support it | 1.0 |
Voices
Zephyr is used when options.voice is omitted. 30 voices available (10 of 30 shown):
ZephyrPuckCharonKoreFenrirLedaOrusAoedeCallirrhoeAutonoe
Features
- Successor to Gemini 3.1 Flash TTS
- Creative tier of the Gemini 3.8 TTS family
- 30 named voices
- Returns raw PCM only (see the note below)
This model returns raw PCM only — requesting outputFormat: "mp3" is rejected at submit
time. job.result.audio.mimeType carries the sample rate, e.g. audio/pcm;rate=24000;channels=1,
and the audio is headerless: wrap it in a WAV container or feed it to an audio pipeline directly.
Billing
Speech is billed on the length of the input text, in UTF-8 bytes — for English text one byte is one character. The cost is known before synthesis starts, so the balance check at submit time quotes the exact final charge. Jobs have a $0.01 minimum.
Powered by OpenRouter's unified speech API.