← all repositories
speechio/chinese_text_normalization

The unglamorous plumbing behind Chinese speech recognition

Most repos 'support' text normalization; this one actually does it, tackling the messy, language-specific slog of Chinese ASR preprocessing.

734 stars Python Data ToolingDomain Apps
chinese_text_normalization
Not currently ranked — collecting fresh signals.
star history

What it does Converts raw Chinese text into speech-friendly forms by rewriting numbers, dates, currency, phone numbers, and fractions into spoken Mandarin—turning “324.75克” into “三百二十四点七五克”, for example. It also strips punctuation and adjusts English word casing to match ASR/TTS lexicon conventions, then emits results in plain text, Kaldi .ark, or TSV formats.

The interesting bit The author is refreshingly blunt about why good text normalization is scarce: it is language-specific, task-specific, and “dirty” work that commercial shops treat as a proprietary asset. Instead of adding another abstraction layer, the repo ships ready-to-run regex-based NSW normalizers and Thrax grammars for inverse text normalization.

Key highlights

  • Handles seven Non-Standard-Word types: cardinal, date, digit, fraction, money, percentage, and telephone numbers.
  • Reads three input formats natively: plain text, Kaldi archive (.ark), and TSV tables.
  • Adapts English casing to align with ASR/TTS lexicon requirements (upper or lower).
  • Includes both forward TN (Python) and inverse ITN (Thrax grammar) pipelines.
  • Ships as a working module, not a framework that merely “supports” normalization.

Caveats

  • The regex-based NSW normalizers suffer from “unintended matches” and need refinement.
  • ITN coverage is incomplete; the Thrax grammars handle only a subset of scenarios.
  • The repo is explicitly in maintenance mode: the author calls it “done is better than perfect” and does not plan frequent updates.

Verdict Grab this if you are building or maintaining a Chinese ASR pipeline and need a pragmatic normalizer that runs today. Skip it if you want a general NLP toolkit or a framework for other languages; this is tightly scoped to Chinese speech processing.

Frequently asked

What is speechio/chinese_text_normalization?
Most repos 'support' text normalization; this one actually does it, tackling the messy, language-specific slog of Chinese ASR preprocessing.
Is chinese_text_normalization open source?
Yes — speechio/chinese_text_normalization is open source, released under the MIT license.
What language is chinese_text_normalization written in?
speechio/chinese_text_normalization is primarily written in Python.
How popular is chinese_text_normalization?
speechio/chinese_text_normalization has 734 stars on GitHub.
Where can I find chinese_text_normalization?
speechio/chinese_text_normalization is on GitHub at https://github.com/speechio/chinese_text_normalization.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.