Text to speech
TTS-1
OpenAI's fast text-to-speech model. Send text, get an audio file back, pay per character.
MP3, WAV, OPUS, PCM, AAC, FLAC · 9 voices · Up to 4,096 characters
$15.75Per 1M characters
Price
- Per 1M characters
- $15.75
Includes the MiniRouter fee. Tokens are not charged.
Estimate your cost
Priced per character of input text.
44 / 4,096 characters
Estimated cost
Includes the MiniRouter fee.
Estimate only; nothing is sent. Your charge settles to the provider’s reported characters plus the MiniRouter fee.
Use the Speech API
Set MINIROUTER_API_KEY to your inference key and copy the example.
curl --fail-with-body --retry 0 --max-time 120 \
https://api.minirouter.sh/v1/audio/speech \
-H "Authorization: Bearer $MINIROUTER_API_KEY" \
-H 'Content-Type: application/json' \
-D response.headers --output speech.mp3 \
--data '{
"model": "openai/tts-1",
"input": "The quick brown fox jumps over the lazy dog.",
"voice": "alloy",
"response_format": "mp3"
}'Keep the request ID and check Request logs for the settled cost. A failed or disconnected request may still incur a cost; these examples disable automatic retries.
How it works
- Endpoint
- POST /v1/audio/speech
- OpenAI speech body: model, input, voice, response_format, speed, instructions. Raw audio bytes come back.
- Limits
- 4,096 characters
- Speed 0.25–4.0. No streaming.
- Formats
- mp3, wav, opus, pcm, aac, flac
- mp3 by default.
- Voices
- alloy, ash, coral, echo, fable, nova, onyx, sage, shimmer
- Pass one as voice.
Half the price of TTS-1 HD.
OpenAI
- TTS-1
- $15.75
- TTS-1 HD
- $31.50
Microsoft
- MAI-Voice-2
- $23.10
- MAI-Voice-2.1
- $23.10
- MAI-Voice-2-Flash
- $15.75
- MAI-Voice-2.1-Flash
- $15.75
View chart data
| Model | Model ID | Per 1M characters |
|---|---|---|
| TTS-1 | openai/tts-1 | $15.75 |
| TTS-1 HD | openai/tts-1-hd | $31.50 |
| MAI-Voice-2 | microsoft/mai-voice-2 | $23.10 |
| MAI-Voice-2.1 | microsoft/mai-voice-2.1 | $23.10 |
| MAI-Voice-2-Flash | microsoft/mai-voice-2-flash | $15.75 |
| MAI-Voice-2.1-Flash | microsoft/mai-voice-2.1-flash | $15.75 |
The hold is the price.
- [ 01 ]
Characters × rate
The hold is your input's character count times the per-character rate. Insufficient credit returns 402 before any provider call.
- [ 02 ]
Settled to reported usage
The charge follows the characters the provider reports. Anything left on the hold is released.
- [ 03 ]
Visible in Request logs
Rows show speech_characters with zero tokens. The CSV export carries the same column.