Skip to content
RU

Text to speech

POST /v1/audio/speech returns the whole audio file, synchronously.

speech = client.audio.speech.create(
model="tts-1",
voice="nova",
input="Your order is packed and waiting at the pickup point.",
)
speech.write_to_file("out.mp3")
Field Description
input The text, required
model tts-1 is accepted for compatibility; you can also name a catalog model
voice alloy, echo, fable, nova, shimmer and others — the full list is the voices field in the catalog. Behaviour depends on the model: gpt-4o-mini-tts (the default) silently swaps an unknown voice for the default one, grok-voice-tts-1.0 returns a 400 listing the allowed voices, and seed-audio-1-0 takes a preset speaker ID (ru_male_pavel_uranus_bigtts and more, listed in the voices field; without voice — the default speaker) ElevenLabs models use premade names (george, sarah…, 21 voices in the voices field)
response_format Audio format
speed Speech rate

Billing depends on the model. Most (gpt-4o-mini-tts, Grok, MiniMax, Voxtral, Qwen, MAI-Voice) charge by the length of the input text, per 1000 characters — the budget is known upfront. Seed Audio and Gemini TTS charge by the duration of the generated audio (seconds for Seed, audio tokens for Gemini): the charge follows the actual output; price units are listed in GET /v1/models: per_1k_chars (characters), per_minute (Seed), per_second (Voxtral/Nemotron), per_hour (MAI), or the input_rub_1m/output_rub_1m pair (Gemini TTS and token-metered transcriptions).

The live TTS line-up is in GET /v1/models, entries with type: tts:

Model Key Voices
MiniMax Speech 2.8 HD / Turbo minimax/speech-2.8-hd, minimax/speech-2.8-turbo 45 ready-made voices in the voices field (English_Graceful_Lady…); other MiniMax voice ids work too — model card
Gemini 3.8 Flash TTS / Lite google/gemini-3.8-flash-tts, google/gemini-3.8-flash-lite-tts 30 voices in the voices field — model card
Gemini 3.1 Flash TTS google/gemini-3.1-flash-tts-preview Closed roster, in the voices field
Grok Voice TTS 1.0 x-ai/grok-voice-tts-1.0 Closed roster; an invalid voice returns 400
Qwen Audio 3.0 TTS Flash / Plus qwen/qwen-audio-3.0-tts-flash, qwen/qwen-audio-3.0-tts-plus Two voices each, in the voices field
Voxtral Mini TTS mistralai/voxtral-mini-tts-2603 30 presets in the voices field: 4 speakers × emotions (en_paul_neutral, gb_jane_neutral…); other ids are rejected
Seed Audio 1.0 bytedance-seed/seed-audio-1-0 Preset speaker ID in the voices field (5 Russian, 12 English); speech and sound effects, up to 120 s
MAI-Voice-2.1 / Flash microsoft/mai-voice-2.1, microsoft/mai-voice-2.1-flash Full voice ID with the model suffix (en-US-Harper:MAI-Voice-2.1); 23 languages, ~100 voices
Eleven v4 / v4 Turbo elevenlabs/eleven-v4, elevenlabs/eleven-v4-turbo Premade names (george, sarah…) — 21 voices in the voices field; audio tags like [whispering] in the text, up to 10,000 characters
Eleven Multilingual v2 elevenlabs/eleven-multilingual-v2 Long-form (voice-overs, audiobooks), 29 languages
Eleven Flash v2.5 elevenlabs/eleven-flash-v2.5 Real-time, 32 languages, up to 40,000 characters

The endpoint requires the audio scope — a key without it gets a 403. The opposite direction — speech to text — is covered in the transcription guide.