
COST LEDGER
What Does an AI Short Film Actually Cost? Night Huntress Season One, Full Ledger
Cash, credits, rework and verification time, recorded separately.
HANDS-ON TEST

Voice selection and delivery checks for a 591-character Chinese narration.
The question everyone asks about Chinese AI voiceover is: “Does it misread characters on long scripts?” Rather than trade opinions, we verified a shipped video: the narration of Veiled Lore Atlas’s Minxiong Haunted House EP02 — 591 characters, recorded in one pass with ElevenLabs’ Ethan Zhang voice, then transcribed and compared against the locked script character by character. The result, and the verification method, are both in this article.
ElevenLabs can land a long Chinese narration in one pass: 591 characters, 10 segments, every one matching the locked script exactly. The real craft is not the recording — it’s the verification. Half the differences an ASR diff flags are the recognizer mishearing homophones, and they have to be adjudicated by a human ear before anyone declares the take good or bad.

The script was not casual prose. It was written from archive file LOC-0011 (the fact-checked Minxiong Haunted House dossier): the facts were graded and settled first, then written into a 591-character narration in a cinematic suspense-documentary register — no storyteller persona, Simplified Chinese throughout (the series’ standing spec), locked before anyone pressed record. The recording was made in ElevenLabs with Ethan Zhang, a Mandarin male voice, and came out as one continuous 160.84-second narration file.
The order matters: lock the script, then record, then verify character by character. If the script is still moving, verification has no reference. Once the script was approved and locked, the recording had exactly one job — say precisely those characters — and verification checks exactly that.
The method is machine diff plus human adjudication, and neither half works alone:
The result: all 10 segments correspond — no missing sentences, no additions, no reordering — with per-segment alignment confidence from 0.875 to 1.000. A sample of the segment table (the full timestamp table lives in the production file sentence_timestamps.csv, and the edit aligns shots directly against it):
| Segment | Content | Duration | Alignment confidence |
|---|---|---|---|
| N01 | “In 1949, in Minxiong, Chiayi…” | 6.44 s | 0.941 |
| N02 | “A young soldier said he saw a white shape outside the window…” | 17.92 s | 0.972 |
| N04 | “The house was called the Liu Family Old House, built in 1929…” | 22.14 s | 0.875 |
| N07 | “But this story has no documents, newspapers or household records…” | 21.54 s | 0.960 |
| N08 | “Today the house is a tourist attraction…” | 18.72 s | 1.000 |
| N10 | “What is truly frightening about this house is not ghosts…” | 11.96 s | 0.961 |
(The remaining segments — N03, N05, N06, N09 — also passed, at 0.96–1.00 confidence. The narrative spans 0.00–160.02 s, with about 0.8 s of tail.)
The diff did flag a list of differences — and on listening, every one of them was the recognizer writing the wrong homophone while the recording said the right word:
| Locked script (what was actually said) | ASR mis-transcription | Type |
|---|---|---|
| 國軍 (the Nationalist army) | 國君 (a monarch) | Homophone |
| 連長 (company commander) | 連掌 | Homophone |
| 校史 (school history) | 校實 | Homophone |
| 古厝 (old house) | 古廁 (old toilet) | Homophone |
| 亭榭 (pavilions) | 停洩 | Homophone |
| 1200 坪 (1200 ping) | “一千兩百平” (read out as a different measure word) | Numeral expansion + measure-word misread |
| 七十年 (seventy years) | “70 年” | Numeral style normalization |
This table is the part of the article most worth stealing: when you verify TTS with ASR, the diff is not a grade sheet. Mandarin is dense with homophones, and recognizers will trip on them by design. Skip adjudication and you will either reject a perfect take, or — worse — rubber-stamp the process until a real misread sails through. Our rule: every difference gets adjudicated against the original audio, the ruling goes into the QA record, and only then does the verdict exist.
The reverse case showed up too: during verification, a phone-generated transcript rendered the script’s “2022” as “2020”, briefly making it look like the recording had misread the year. On re-listening, the recording says 2022; the transcript was wrong. Verification tools make mistakes — treat that as a constant of the workflow, not an exception.
591 for 591 does not mean Chinese TTS has no mines. This script happened to step on most of them, so here is the map for anyone recording long-form:
House rule — this section is never skipped:
Recommended — for long-form Chinese narration, ElevenLabs (Ethan Zhang in this test) can record a full piece in one pass and pass character-by-character verification; we have a published video standing on it. Two conditions: (1) lock the script before recording, or verification has no reference; (2) verify with an ASR diff plus human homophone adjudication — without the adjudication step, the diff will wrongly convict good takes and can just as easily acquit bad ones. Plan pricing and character costs were not part of this test’s records; check the official current plans before buying.
On this test, yes: a 591-character, 10-segment narration matched the locked script exactly — no missing, added or reordered sentences. The preconditions are a locked, smoothed script and verification by ASR diff plus human adjudication; rare proper nouns and numbers remain the spots to spot-check by ear.
Three steps: transcribe the finished audio with faster-whisper; run a normalized character-by-character diff against the locked script with per-segment alignment confidence; then adjudicate every difference by listening to the original audio. Mandarin homophones mean roughly half the raw diff is the recognizer’s fault, so skipping adjudication means misjudging the take.
This recording runs 591 characters in 160.84 seconds — about 220 characters per minute, a steady documentary pace. Segments run 6.4 to 22.1 seconds, and the timestamp table doubles as the edit’s alignment reference.
Veiled Lore Atlas’s series-wide spec is Simplified Chinese for both subtitles and scripts, so the recording script and the subtitle text are the same document — no second text to align, no second place for errors. That’s a channel-spec choice, not an ElevenLabs requirement.
This production didn’t log the plan or character spend, and we don’t publish figures we didn’t record. ElevenLabs is subscription-based and metered by characters; 591 characters is a small amount, but check the official current plans for a real per-episode figure.
Our reviews, pricing and use-case notes on ElevenLabs and the other voice and video tools live at DC Affiliate — same hands-on standard, same costs on the table.
From fact-checked dossiers and locked scripts to character-verified narration, this pipeline is available as a done-for-you or consulting engagement at David Chen Studio.