How to Narrate a Podcast Script With an API
How to Narrate a Podcast Script With an API
Writing the script is the creative part. Recording it shouldn't be the bottleneck. If you produce episodic content — a daily news brief, a solo show, a documentary narration, or a localised version of an existing podcast — a text-to-speech API lets you go from a finished script to a finished audio track without a microphone, a booth, or an editing pass to fix mouth clicks. This guide shows how to do it with NarrateAI.
When API narration makes sense
AI narration won't replace every podcast, and it shouldn't try to. Where it earns its place is in formats where consistency and turnaround matter more than a signature human voice: scripted explainers, audio versions of written articles, language localisations of an existing show, high-frequency briefs, and draft reads you want to hear before committing a voice actor's time. For those, generating the track programmatically is faster, cheaper, and repeatable.
Step 1 — Prepare the script
A few habits make the output noticeably better:
- Write for the ear. Short sentences, clear clauses, and natural phrasing read better aloud than dense prose.
- Spell out anything ambiguous. Numbers, abbreviations, and acronyms are safest written the way you want them spoken.
- Add expression where it helps. NarrateAI accepts inline tags directly in the text —
<laugh>,<sigh>, and<breath>— so you can place a beat or a breath exactly where the script calls for it, without editing it in afterward.
Welcome back to the show. <breath> Today we're talking about
something a little unusual. <laugh> Trust me, it's worth it.
Step 2 — Choose a voice
NarrateAI offers ten voice styles. Pick one that fits the tone of your show and stay consistent across episodes so your audience hears a recognisable host:
| Name | ID | Character |
|---|---|---|
michael |
m1 |
Male, natural (default) |
jake |
m2 |
Male, natural |
christian |
m3 |
Male, warm |
alex |
m4 |
Male, expressive |
richard |
m5 |
Male, British accent |
emily |
f1 |
Female, natural |
hannah |
f2 |
Female, warm |
jessica |
f3 |
Female, expressive |
alexis |
f4 |
Female, assertive |
cassandra |
f5 |
Female, British accent |
For a warm, conversational show, christian or hannah work well; for something punchier, the expressive styles (alex, jessica) carry more energy. You can also nudge the delivery with the optional speed parameter (default 1.05).
Step 3 — Submit the script as a job
Podcast scripts are long, so use the async endpoint. It accepts up to 100,000 characters per job — enough for a full episode — and splits the text into chunks rendered in parallel, then stitched into one continuous file:
curl -X POST https://api.narrateai.mossforge.dev/v1/tts/async \
-H "Authorization: Bearer nai_your_key" \
-H "Content-Type: application/json" \
-d '{
"text": "Welcome back to the show...",
"lang": "en",
"voice": "hannah",
"speed": 1.0
}'
You get a job ID back immediately, with an estimate of how long it'll take:
{
"job_id": "888d45c5-1234-...",
"status": "processing",
"total_chunks": 12,
"total_chars": 9800,
"estimated_seconds": 40
}
Step 4 — Poll, then download
Check the job until it's complete:
curl https://api.narrateai.mossforge.dev/v1/tts/async/888d45c5-1234-... \
-H "Authorization: Bearer nai_your_key"
When it finishes, you get a download URL and the track's duration:
{
"status": "complete",
"progress_percent": 100.0,
"url": "https://s3.amazonaws.com/...",
"duration_seconds": 612.4
}
Download the stitched WAV and it's ready to drop into your editor for an intro, outro, and music bed:
curl -o episode-042.wav "https://s3.amazonaws.com/..."
Files are kept for seven days, so pull anything you want to keep into your own storage.
Scaling to a series
The real payoff is repeatability. Once the call works for one episode, the same script-to-audio pipeline runs every episode — and the same approach localises your show into any of NarrateAI's 31 supported languages by changing the lang parameter and re-running with a translated script. Per-character pricing keeps the cost of a regular publishing schedule predictable: roughly 1,000 characters per minute of audio, so a typical 20-minute episode is straightforward to budget.
A note on disclosure and consent
If you publish AI-narrated audio, be straightforward with your audience about it, and only narrate scripts you have the rights to. Synthetic narration is a production tool — using it transparently keeps trust intact.
Try it on your next script
You can have a finished narration track from a written script in the time it takes to poll a job. NarrateAI's free tier includes 125,000 characters on signup — enough for several full episodes — so you can test it on real material before deciding. Grab a free key and narrate your next episode.
Get started
Try NarrateAI free
125,000 characters on signup. No credit card required.
Get your API key →