Tutorial 7 June 2026

Choosing a Text-to-Speech API for Long Documents

NarrateAI 4 min read

Choosing a Text-to-Speech API for Long Documents

Most text-to-speech APIs are built for short snippets: a notification, a voice prompt, a single line of dialogue. Narrating a 40-page report, a long article, or a full chapter is a different problem. The text is too long for a single synchronous call, the output needs to arrive as one continuous file, and the cost has to stay predictable across thousands of characters. This guide covers what actually matters when you're working at that length, and how to evaluate a service against it.

The core problem with long-form synthesis

Generating speech is compute-intensive, and it scales with input length. A naive API that tries to render a whole book in one blocking request will either time out or leave you staring at a hung connection. The services that handle long form well share a common architecture:

  1. They accept the job asynchronously. You submit the text, get an ID back immediately, and the work happens in the background.
  2. They split the text into chunks and synthesise those chunks in parallel, so a long document doesn't take proportionally longer than a short one.
  3. They stitch the chunks back together into a single audio file, so you're not left reassembling fragments yourself.

If an API forces you to manually break text into sentences, fire dozens of separate requests, and concatenate the results, that work — and the bugs that come with it — lands on you.

What to look for

Async jobs with status polling

The non-negotiable feature. You want to POST your text once and receive a job ID, then poll a status endpoint until the audio is ready. NarrateAI follows this pattern exactly: a single POST /v1/tts/async returns a job immediately, and GET /v1/tts/async/{job_id} reports progress — total chunks, completed chunks, and a percentage — until the file is done.

{
  "status": "processing",
  "total_chunks": 4,
  "completed_chunks": 2,
  "total_chars": 1240,
  "progress_percent": 50.0
}

A visible progress_percent matters more than it sounds: for a long job it's the difference between a progress bar in your own UI and a black box.

Generous per-job limits

Check the maximum characters per job. A limit measured in hundreds of characters means you'll be orchestrating many jobs for a single document. NarrateAI accepts up to 100,000 characters in one job — long enough that most articles and report sections fit in a single submission, and chapters split cleanly across a handful.

One stitched file, not fragments

Make sure the output is a single audio file. Receiving one stitched WAV with a reported duration_seconds is far less work than receiving a list of clips you have to join, normalise, and crossfade yourself.

Predictable, character-based pricing

This is where long-form usage gets expensive if you're not careful. Per-minute pricing is hard to estimate before you've generated the audio, because you don't know the duration until it's rendered. Per-character pricing lets you calculate cost directly from your input length. NarrateAI prices per character and enforces monthly quotas per key, so a runaway script can't produce a surprise bill. Plans run from a free Dev tier (10,000 characters a month, plus a 125,000-character bonus on signup) up through Creator at 2.45M characters and Pro at 14.9M characters a month, with top-up packs available when you need more.

As a rough rule of thumb, 1,000 characters is on the order of a minute of audio, so you can estimate a document's runtime — and its cost — from a word count before you ever submit it.

Multilingual coverage at one price

If your documents span languages, you don't want a separate model or a surcharge for each one. NarrateAI supports 31 languages — English, French, German, Spanish, Japanese, Arabic, Hindi, and more — all at the same rate, selected with a single lang parameter.

Sensible file retention

Long jobs produce large files, and most APIs don't store them forever. NarrateAI keeps finished audio for seven days and serves it through a presigned URL valid for one hour, so plan to download and archive anything you want to keep.

A quick evaluation checklist

When comparing options for long-form work, ask:

Where NarrateAI lands

NarrateAI was built around long-form content rather than short prompts: async jobs, parallel chunking, stitched output, per-character pricing, monthly quota caps, and 31 languages at a flat rate. If you're narrating documents, articles, or books, that combination removes most of the plumbing you'd otherwise write yourself. Start with a free key and run your longest document through it before committing.

Get started

Try NarrateAI free

125,000 characters on signup. No credit card required.

Get your API key →