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

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

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.