What it is and who it's for
OpenAI TTS is speech synthesis through the OpenAI API (the gpt-4o-mini-tts model and others): cheap, fast, with intonation controlled by a plain instruction. For a developer who needs voiceover "in the flow" of an app, inside the same ecosystem as the rest of their OpenAI calls. What sets it apart: the reading style is set by a text instruction (instructions) rather than by presets.
Key features
- Several built-in voices; the
instructionsparameter controls tone and emotion. - Low price and fast synthesis.
- Audio streaming so playback starts quickly.
- Output formats mp3/opus/aac/pcm and others.
- One ecosystem with the rest of the OpenAI API (one key, one SDK).
- Support for many languages, including Russian.
Get started in 5 minutes
- Grab an OpenAI key (platform.openai.com) and top up your balance.
- Synthesize speech with a single request:
curl https://api.openai.com/v1/audio/speech \
-H "Authorization: Bearer $OPENAI_API_KEY" -H "Content-Type: application/json" \
-d '{"model":"gpt-4o-mini-tts","voice":"alloy","input":"Привет, мир","instructions":"говори бодро"}' --output out.mp3
- Change
voiceandinstructionsuntil you land on the delivery you want.
When to take it, and when not
- ✅ Take it if: you already use OpenAI and need cheap, fast voiceover of acceptable quality inside one SDK.
- ✅ Take it if: you care about steering the delivery with a text instruction.
- ❌ Skip it → "ElevenLabs" is better if you need the most natural sound, voice cloning or dubbing.
- ❌ Skip it → "Kokoro TTS" is better if you need privacy/offline and zero cost per minute.
The honest price
Paid per character/token — but it is one of the cheapest quality TTS options on the market; there is no free tier. Exact amounts are on the provider's side and change over time.
Gotchas
- Fewer voices, and less "characterful" ones, than ElevenLabs; no cloning.
- Intonation control via
instructionsworks, but is not perfectly predictable. - Data goes to OpenAI's cloud — not suitable for private scenarios.
- In Russian there are occasional slips with stress and numbers — check and fix the input text.
🤖 Prompt accelerator
"I'm doing Russian-language voiceover with OpenAI TTS (
gpt-4o-mini-tts). Help me pick a voice for, write instructionsfor the delivery I want (pace, emotion), prepare the text so numbers and abbreviations read correctly, and give me an example call with streaming in <Python/Node> that saves to a file."