delivery_profile podcast_v4: loudness presets for show pipelines — Audra
The delivery_profile parameter is one field on POST /v2/speech that changes how the engine paces your script: legacy, podcast_v2, podcast_v3, or podcast_v4. It is not a mastering knob and it is not a voice — it controls pacing and pause structure. podcast_v4 is the current recommendation for show-style audio.
This post is the parameter's reference: what podcast_v4 changes, why the older profiles exist, and how to migrate without changing your show's sound mid-feed.
What podcast_v4 does
- Podcast-oriented pacing: slightly slower base delivery than the default read.
- Paragraph and sentence pauses shaped for episodic listening, not dense narration.
- MP3 exports come out at −16 LUFS, meeting Apple Podcasts / Spotify targets without a mastering pass.
curl
curl https://audratalks.com/v2/speech \
-H "Authorization: Bearer sk-audra-..." \
-H "Content-Type: application/json" \
-d '{"model":"audra-essential","voice":"june","delivery_profile":"podcast_v4","text":"Welcome to the show...","format":"mp3"}' \
--output episode-01.mp3
Python
import requests
resp = requests.post(
"https://audratalks.com/v2/speech",
headers={"Authorization": "Bearer sk-audra-..."},
json={
"model": "audra-essential",
"voice": "june",
"delivery_profile": "podcast_v4",
"text": episode_script,
"format": "mp3",
},
timeout=3600,
)
resp.raise_for_status()
open("episode-01.mp3", "wb").write(resp.content)
JavaScript
const res = await fetch("https://audratalks.com/v2/speech", {
method: "POST",
headers: { Authorization: "Bearer sk-audra-...", "Content-Type": "application/json" },
body: JSON.stringify({
model: "audra-essential",
voice: "june",
delivery_profile: "podcast_v4",
text: episodeScript,
format: "mp3",
}),
});
if (!res.ok) throw new Error(await res.text());
await writeFile("episode-01.mp3", Buffer.from(await res.arrayBuffer()));
The enum, and why old values still exist
legacy is the pre-profile behavior — no podcast pacing. podcast_v2 and podcast_v3 are earlier iterations kept for backward compatibility: existing pipelines pointing at them keep rendering exactly as before. New shows should start on podcast_v4; there is no scenario where v2/v3 is the better choice for greenfield work.
Migration for an existing feed
The failure mode that matters: flipping a live show from legacy or v2 to v4 mid-catalog makes adjacent episodes pace differently, and listeners hear it. The migration pattern: shadow-render your next three scripts under v4, compare against the current profile's output, then cut over at a season boundary and re-render only if the back catalog is short enough to be worth it.
What delivery_profile is not
- Not a loudness processor you can retune — −16 LUFS on MP3 is the target; you cannot request a different number.
- Not applicable to speed: the speed parameter (0.5-2.0) still stacks on top of the profile's pacing.
- Not engine-specific: it works across engines, and pairs naturally with Conversations for multi-host shows.
Failure mode: profile on the wrong content
Podcast pacing on non-podcast content sounds wrong: course lessons rendered with podcast_v4 drag, and IVR prompts become unacceptably slow. The profile is a show-audio tool; dense informational narration (courses, docs, training) should stay on the default. Per-medium pacing guidance: the course, docs, and IVR posts.
Full parameter reference: /docs#speech-parameters. Show pipeline and cost: the podcast post.