Multi-speaker podcast TTS without stitching files — Audra
Audra is an OpenAI-compatible batch TTS API at $25/1M characters on Essential, with −16 LUFS mastering and QA-gated billing. Not for realtime voice agents or cloning.
Who this is for
- Teams rendering long-form batch narration (courses, podcasts, docs, cron)
- Pipelines on the OpenAI SDK or plain HTTP
- Builders who want prepaid $/char without per-seat tax
- Anyone focused on Conversations engine
What you get on Essential
Essential ships 72 voices across 10 languages, −16 LUFS mastering, and QA-gated billing on an OpenAI-compatible API. Sync requests accept up to 50k characters; longer scripts use POST /v2/speech/jobs (up to 500k) with optional webhook_url.
- Model: audra-essential (plus / pro / conversations on /pricing#engines)
- Voice: slug from /voices
- Format: mp3 (default) or wav
- Optional language BCP-47 when the slug does not imply locale
curl
curl https://audratalks.com/v2/speech \
-H "Authorization: Bearer sk-live-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"audra-essential","text":"Your narration script.","voice":"june","format":"mp3"}' \
--output out.mp3
Python
import requests
r = requests.post(
"https://audratalks.com/v2/speech",
headers={"Authorization": "Bearer sk-live-YOUR_KEY"},
json={
"model": "audra-essential",
"text": "Your narration script.",
"voice": "june",
"format": "mp3",
},
timeout=120,
)
r.raise_for_status()
open("out.mp3", "wb").write(r.content)
JavaScript
import { writeFile } from "node:fs/promises";
const res = await fetch("https://audratalks.com/v2/speech", {
method: "POST",
headers: {
Authorization: "Bearer sk-live-YOUR_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "audra-essential",
text: "Your narration script.",
voice: "june",
format: "mp3",
}),
});
if (!res.ok) throw new Error(await res.text());
await writeFile("out.mp3", Buffer.from(await res.arrayBuffer()));
Next: see the podcasts use case at /use-cases/podcasts. Engine details on /pricing#engines; migration snippets on /migrate.
Cost sanity check
Want to hear a sample on your own script? Get an API key at /dashboard — 25k free characters, no card.
FAQ
Is Audra OpenAI-compatible?
Yes. Point the OpenAI SDK at https://audratalks.com/v1 with model audra-essential — copy-paste on /migrate.
What does QA-gated billing mean?
Credits finalize only after automated QA passes. Failed renders refund automatically.
Does Audra support realtime voice agents?
No. Audra is a batch TTS API for mastered MP3/WAV files. For sub-200ms conversational agents, stay on a realtime-oriented provider.
Can I clone a custom brand voice?
No. Audra ships preset voices only. Use ElevenLabs (or similar) when cloning is a hard requirement — see /vs/elevenlabs.
Next steps
- Primary next step: see the podcasts use case at /use-cases/podcasts
- A/B voices on /compare
- Honest matrices: /vs/elevenlabs and /vs/openai-tts
- Read next: /blog/audra-four-engines-guide
- Read next: /blog/podcast-tts-api-batch-narration