← All resources

NARRATION FIELD GUIDE

Long-form text to speech without drift

Long-form text to speech is a production workflow, not one oversized request. A long script always becomes many generated sections, and the narration only sounds like one read when every section is prepared, generated, and joined the same way.

Three cassette tapes butted end to end in a single line.

What counts as long-form

A 50,000-character script is roughly 48 minutes of narration at a typical speaking pace: a long YouTube documentary, a course module, or a few audiobook chapters. Many text-to-speech tools limit one request to a few thousand characters, which pushes you to split the script by hand and paste it in piece by piece.

NarrateHQ accepts up to 200,000 characters in one script, so the whole read stays in one project. That one project is what makes the rest of this workflow possible: one set of settings, one pronunciation dictionary, and one merged file at the end.

Why AI voices drift across a long script

Every speech engine has a per-request limit, so long-form narration is always many requests joined together. Drift is what you hear when those requests stop matching: the pace speeds up in one chapter, a name is pronounced two ways, or the tone turns brighter halfway through.

The usual causes are ordinary. Settings change between sessions, the text is prepared inconsistently (an abbreviation spelled out in one place and not in another), or an expressive voice reinterprets the mood of each section on its own. Expressive and cinematic voices are chosen for their varied delivery, and that same variety means they can differ more from section to section than steadier voices.

How NarrateHQ keeps one voice

NarrateHQ splits the script at sentence boundaries within each engine's limit and sends every section through the same voice, lane, rate, pitch, and volume. Some engines need much shorter sections than others; Google's real per-request limit, for example, is 5,000 UTF-8 bytes rather than 5,000 characters, so the splitter never cuts inside a multi-byte character.

Your pronunciation dictionary is applied to every section before it is generated. The sections are then joined with a short crossfade and the assembled file is loudness-normalized, which removes most audible seams. It does not promise identical emotion or word-level timing from an engine on every request, which is why the review step below matters.

A workflow for a 50,000-character script

The steps below keep a long read consistent and keep fixes cheap.

  • Count the script first so you know its length in characters and minutes of audio before you spend credits.
  • Prepare the text once: spell out abbreviations and numbers the way they should be read, and add names and brand terms to the pronunciation dictionary.
  • Choose the voice and lane, then listen to the first few sections before committing to the full generation.
  • Generate the whole script with the same settings, and listen through the joins between sections.
  • When a passage changes, regenerate only that section; the audio and SRT subtitles are rebuilt together, so download both again.

What a long script costs in credits

Credits are characters multiplied by the lane's rate. A 50,000-character script costs 50,000 credits on the Core lane and 100,000 on Natural; more expressive lanes cost more per character.

The Free plan includes 30,000 credits a month, which is enough to test voices and settings but not to narrate a script of that length in one month, and Free output is for personal testing rather than commercial use. Starter includes 180,000 credits a month with commercial use. Free accounts keep generated audio for 7 days, so download finished files promptly.