Vietnamese is one of the hardest languages to synthesise well — and one of the most rewarding when you do. Six tones, two major accent families your audience has strong feelings about, and a writing system where one wrong diacritic changes the meaning of a word entirely. A production voiceover pipeline is not "pick a voice, paste the script"; it is a system with accent strategy, text preprocessing and a QC loop. Here is how we build it.
Accent is an audience decision, not a preference
Vietnamese listeners immediately place a voice as Northern (giọng Bắc), Southern (giọng Nam) or Central — and respond differently to each depending on where they live and what they associate the accent with. There is no universally "correct" choice:
- Selling nationally with a formal, informational tone? Northern-accented voices carry broadcast-news associations for many listeners.
- Selling into HCMC and the Mekong Delta with a warm, conversational pitch? Southern-accented voices tend to land as friendlier and closer.
- Running ads regionally? Render the same script in both accents and let the ad platform's regional targeting decide — the pipeline makes this a variant, not a re-recording.
Emotion and prosody are part of the script
Modern TTS systems expose controls for emotion, emphasis, pacing and pauses. Treat these as first-class script markup, stored with the template: the price hook gets emphasis, the CTA gets an upbeat lift, the disclaimer reads flat and quick. A script template that carries its prosody markup produces consistent delivery across hundreds of renders — which is exactly what your product video pipeline needs feeding it.
Multi-voice dialogue
The step beyond single-narrator ads is dialogue: two voices trading lines sells a conversation, an objection and an answer. The same machinery scales to long-form audio — our lab runs an automatic audiobook studio that takes raw text and produces multi-voice-actor audio, assigning characters to distinct voices with inflection and emotion per line. What works for a novel's dialogue works for a 30-second skit ad.
Text preprocessing: where most pipelines fail
Raw scripts contain things TTS engines mangle. A preprocessing layer normalises them before synthesis:
| Input | Risk | Preprocessing rule |
|---|---|---|
| Brand names ("XCyber", "Shopee") | Read letter-by-letter, or with Vietnamese phonetics applied to English spelling | Pronunciation dictionary: map each brand to a phonetic respelling, maintained per voice |
| Numbers & currency | "100.000đ" read as digits, or in the wrong style for the audience | Expand to words in the chosen register — "một trăm nghìn đồng" for formal, "một trăm k" for casual — set per template, never left to the engine |
| Foreign words ("sale", "combo", "freeship") | Anglicised or hyper-corrected pronunciation that sounds wrong to everyone | Respell to the pronunciation Vietnamese speakers actually use |
| Abbreviations ("TP.HCM", "km") | Read as letters or skipped | Expansion table applied before synthesis |
The QC loop: make the machine check the machine
Every rendered track goes back through speech-to-text, and the transcript is diffed against the source script. Matches within tolerance auto-pass; mismatches — a skipped word, a garbled brand name, a number read in the wrong style — route to a human with the audio cued to the exact second. This closes the loop cheaply: you listen only to the seconds that are probably wrong, not to every minute of every render.
Loudness: the last step everyone skips
Platforms normalise audio differently, and a track mastered for one will sound quiet or crushed on another. Normalise loudness to each destination's expectations as an export step — one source render, per-platform loudness targets — so your ad does not play noticeably quieter than the video before it. Store the normalised derivatives alongside the master with the same naming convention your video and auto-posting pipelines already use.
Where voice fits in the stack
Voiceover is a supporting station in the end-to-end automation stack: scripts flow in from the content engine, tracks flow out to video rendering and publication. Built once — accent strategy, pronunciation dictionary, QC loop — it turns every script into broadcast-ready Vietnamese audio in minutes, in whichever accent your customer wants to hear.
Start small and deliberate: pick one voice per accent, build the pronunciation dictionary from your actual product catalogue and price list, and run the speech-to-text diff on everything from day one. The dictionary grows a few entries a week and quickly becomes a moat — a new competitor's pipeline will mispronounce for months the names yours already says perfectly. When the single-narrator flow is boringly reliable, add the second voice and start telling stories instead of reading scripts.