arXiv · 2026 · Preprint

Hung Vu Nguyen et al. (Australian Catholic University / ICMS / FPT University / KETEMU / RMIT University Vietnam / NGHI Studio / Phuong Hai JSC) · → Paper · Demo: ✗ · Code: ✓

VietNormalizer is an open-source, dependency-free Python library that converts Vietnamese non-standard words (numbers, dates, times, currency, percentages, acronyms, and loanwords) into fully pronounceable Vietnamese text for TTS and general NLP pipelines.

Problem

Text normalization (TN) is the first frontend stage of TTS: an acoustic model operating on graphemes or phonemes cannot correctly synthesize tokens like “14:30” or “1.500.000 dong” unless they are first expanded into their full verbal form. For English, mature TN tooling exists (Google’s Text Normalization Dataset and WFST tools, NVIDIA NeMo’s inverse text normalization), but for Vietnamese, existing tools fall into two unsatisfying categories: heavy neural pipelines (e.g., a BERT-BiGRU-CRF non-standard-word detector followed by rule-based expansion) that cover a broad range of non-standard-word (NSW) types but require GPU-scale dependencies unsuitable for lightweight or embedded deployment, and toolkit-embedded normalizers (e.g., underthesea) that perform only Unicode/diacritic standardization without covering number, date, currency, or acronym expansion, while dragging in a full NLP toolkit’s deep-learning dependencies. No existing tool combines full NSW coverage, zero-dependency installation, user-extensibility, and production-grade throughput for Vietnamese.

Method

VietNormalizer implements a rule-based normalization pipeline built from two classes: VietnameseTextProcessor, which holds the core normalization rules, and VietnameseNormalizer, which composes the processor with dictionary-based replacement and exposes the public API. Input text passes through an ordered sequence of transformations: Unicode NFC normalization and emoji/non-printable-character removal; date normalization (DD/MM/YYYY and related patterns converted to spoken Vietnamese date strings); time normalization (HH:MM[:SS] converted to spoken forms); currency normalization (VND and USD amounts, with recognition of the đồng suffix); percentage expansion (“X%” to “X phần trăm”); general integer/decimal verbalization via recursive decomposition; and finally dictionary-based replacement for acronyms (e.g., NASA to na-sa) and foreign loanwords (e.g., container to công-tê-nơ), using a single compiled alternation regex so replacement cost scales with input length rather than with dictionary size. The transformation ordering is deliberate: currency and date patterns are resolved before general number normalization to prevent partial-match conflicts, such as a date token being partially consumed by the plain-number rule. Number verbalization handles Vietnamese-specific irregularities directly in the recursive decomposition (e.g., distinct forms for the tens-position “ten” versus the ones-position “one” depending on context). All regular expression patterns are pre-compiled once at class initialization, so the library performs a bounded number of passes over the input text regardless of dictionary size, and both built-in and user-supplied CSV dictionaries can be swapped in at initialization or reloaded at runtime. The library has no GPU or external API dependency and targets pure Python 3.8+.

Key Results

The paper reports no quantitative normalization-accuracy, latency, or downstream-TTS-quality results. Its central comparative artifact is Table 1, a qualitative capability comparison (supported / partial / unsupported) against four prior Vietnamese TN approaches (Tuan et al. 2012, Trang et al. 2022, ViSoLex, and underthesea) across seven dimensions: numbers, date/time, currency, acronyms, loanwords, zero-dependency installation, and PyPI availability. VietNormalizer is the only tool in the comparison marked as fully supporting all seven dimensions. The paper also states, without a benchmarked figure, that the pre-compiled-regex design supports “tens of thousands of utterances per minute on a single CPU core,” and reports that the library has been used to preprocess transcriptions in the authors’ own VietSuperSpeech data pipeline prior to ASR fine-tuning, a usage example rather than a measured evaluation.

Novelty Assessment

VietNormalizer’s contribution is packaging, not new normalization theory: number verbalization, date/currency expansion, and dictionary-based acronym/loanword substitution are all established rule-based TN techniques tracing back to Sproat et al.’s semiotic-class framework and prior Vietnamese TN work (Tuan et al. 2012; Trang et al. 2022). What is new is combining full NSW-class coverage with a genuinely zero-dependency, pip-installable, user-extensible package, a combination the paper argues (via Table 1) no prior public Vietnamese tool offers. The single-pass, pre-compiled-regex dictionary design is a reasonable engineering choice for throughput but is not benchmarked against a naive baseline, so its practical speed advantage is asserted rather than demonstrated. Section 5’s discussion of generalizing the architecture to other tonal, agglutinative, and morphologically rich languages is a conceptual framing exercise, not an implementation: no non-Vietnamese version of the library is built or tested in this paper.

Field Significance

low — VietNormalizer fills a genuine, previously undocumented tooling gap for Vietnamese TTS/NLP preprocessing by shipping a rule-based normalizer with broader non-standard-word coverage and a lighter dependency footprint than prior public options, and makes it directly installable via PyPI. Its contribution is confined to text-frontend engineering: the paper reports no quantitative normalization accuracy, latency benchmark, or downstream TTS-quality evaluation of any kind, so the practical benefit over prior tools is argued qualitatively (Table 1) rather than measured.

Claims

  • supports: Rule-based text normalization pipelines can be built as fully deterministic, dependency-free software libraries that avoid the installation and inference-latency costs of neural non-standard-word detection, while still covering a broad range of non-standard-word categories.

    Evidence: VietNormalizer covers seven NSW categories (numbers, dates, times, currency, percentages, acronyms, loanwords) in pure Python 3.8+ with no external dependencies, contrasted in Table 1 against neural/hybrid Vietnamese TN systems (Trang et al. 2022’s BERT-BiGRU-CRF tagger, ViSoLex’s weakly-supervised model) that require GPU-scale model weights. (§3.1, §4.1, Table 1)

  • complicates: Feature-coverage comparisons between text-normalization tools do not by themselves establish normalization accuracy or downstream synthesis quality.

    Evidence: The paper’s sole comparative evidence for VietNormalizer’s advantage over prior Vietnamese TN tools is a qualitative supported/partial/unsupported capability table across seven dimensions; no normalization accuracy metric, error rate, or downstream TTS listening-test result is reported for VietNormalizer or any baseline. (§2.1, Table 1)

  • complicates: Rule-based text normalization built on priority-ordered pattern matching cannot fully resolve context-dependent semiotic ambiguities, such as a token that could be a date, a fraction, or an address, without sentence-level parsing.

    Evidence: The system resolves cases like “2/9” (which can denote a date, a fraction, or a street address in Vietnamese) via fixed priority ordering of pattern types plus surrounding-keyword heuristics, and falls back to the single most frequent interpretation when ambiguity remains unresolved. (§4.3)

Limitations and Open Questions

Warning

The paper reports no quantitative evaluation of any kind: no normalization accuracy or error rate on any NSW category, no latency benchmark, and no downstream TTS quality metric (MOS, WER, or otherwise). Every comparative claim against prior Vietnamese TN tools rests on the qualitative feature-support table (Table 1), not on measured performance.

Beyond the absence of quantitative evaluation, the authors themselves note several open gaps (§7): rule-based disambiguation cannot resolve all context-dependent ambiguities without sentence-level parsing; proper-noun (person/organization/place name) handling is not addressed and would require a separate NER module; unseen code-switched (Vietnamese-English mixed) terms outside the loanword dictionary are not resolved without a language-identification step; the built-in acronym and loanword dictionaries are acknowledged as non-exhaustive; and inverse text normalization (spoken-to-written conversion for ASR postprocessing) is left to future work. The claimed applicability to other low-resource tonal and agglutinative languages (§5) is a design discussion, not a demonstrated result: no non-Vietnamese implementation is built or tested in this paper.

Wiki Connections

No qualifying concept connections: this paper’s contribution is a rule-based Vietnamese text-normalization library for the TTS/NLP preprocessing frontend, not a speech generation, conditioning, or evaluation mechanism meeting any of this wiki’s tracked concept definitions. No in-corpus paper is cited by this work; all 15 references are external prior text-normalization and NLP literature.