Text to Speech (TTS)
Takes a string, returns natural-sounding audio. OpenAI audio/speech format.
Available models
| Model | Quality | Latency | Use where |
|---|---|---|---|
blab-stable (recommended) | High | Medium | Training video, product demo, podcast |
blab-fast-tr-naz | Mid | Low | Turkish telephony (Naz voice) |
blab-fast-en-emma | Mid | Low | English telephony (Emma voice) |
blab-tts | Low | Very low | Push notification, IVR menu |
tts-1 | OpenAI side | — | If an OpenAI-keyed channel exists |
curl
bash
curl https://app.qevron.ai/v1/audio/speech \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{"model": "blab-stable", "input": "Hello world", "voice": "en"}' \
-o output.wavPython (openai SDK)
python
from openai import OpenAI
client = OpenAI(api_key="sk-...", base_url="https://app.qevron.ai/v1")
resp = client.audio.speech.create(
model="blab-stable",
input="Qevron serves your own models through one API.",
voice="en",
)
resp.stream_to_file("output.wav")Which model when?
blab-stable— quality matters, no telephony constraints. ~600–900 ms latency, top-tier natural tone.blab-fast-tr-naz/blab-fast-en-emma— real-time conversation (phone agent). ~80–150 ms, fixed voice character (Naz Turkish, Emma English).blab-tts— instant announcements, IVR menu prompts. CPU-only, never waits for GPU. Modest quality, near-zero latency.
voice parameter
blab-tts: language code (troren)blab-fast-*: voice is fixed — parameter ignoredblab-stable:tr/en(defaulttr)- OpenAI
tts-1:alloy,echo,fable,onyx,nova,shimmer
Streaming
python
stream = client.audio.speech.create(
model="blab-stable",
input="A long passage of text...",
voice="en",
stream=True,
)
with open("output.wav", "wb") as f:
for chunk in stream.iter_bytes():
f.write(chunk)Legacy stream_format parameter
Before v2.2.0 you had to pass OpenAI's original stream_format: "sse" explicitly. As of v2.2.0 qevron auto-bridges stream: true (the SDK shape) → stream_format: "sse". Both work; an explicit stream_format still wins.
Troubleshooting
- Silent file → did you set
Content-Type: application/json? Send JSON, not form-data. - Wrong voice →
blab-fast-*voices are fixed; switch model to switch voice. - MP3 or WAV? → WAV by default. Add
"response_format": "mp3"for MP3.
Next: Telephony · STT — speech to text