
NeMo Text Processing
https://github.com/nvidia/nemo-text-processing- Category
- AI Tools
- Rank
- No. 777Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- nvidia
- GitHub
- 498 stars
- Latest release
- r1.2.0
- Date
About
Text normalization and inverse text normalization toolkit for ASR and TTS pipelines.
What it does
NeMo Text Processing converts text between written and spoken-style representations. Its Python package exposes normalizers for standard, audio-aware, and inverse conversion, while finite-state grammar assets support rule-based processing and customization. An optional hybrid mode adds PyTorch-based processing.
Why it's ranked here
This is a focused, production-classified Python library with direct normalization interfaces, packaged finite-state assets, and tutorials for both quick starts and grammar customization. Its strongest case is controlled, inspectable text conversion. Installation constraints around Pynini narrow its practical reach outside Linux.
What's good
The package exposes separate normal, audio-aware, and inverse normalizers instead of hiding distinct jobs behind one interface. It distributes finite-state graphs and tabular resources with the package. The documentation also provides a quick-start notebook and a deeper grammar-customization tutorial.
Tradeoffs
Pip installation is supported only on x86-64 Linux. macOS and Windows users must install Pynini through Conda or arrange compatible OpenFst libraries themselves. Hybrid normalization adds an optional PyTorch installation, increasing environment complexity. The supplied text does not document a service API or MCP interface.
How to use it well
Pick it when a Python speech workflow needs explicit, customizable conversion between written and spoken-style text. Start with the quick-start tutorial, then use the finite-state tutorial when domain rules need adjustment. Treat it as a text-processing component, not a speech recognizer, synthesizer, or hosted service.
Technical notes+
nemo_text_processing/text_normalization/__init__.py exports Normalizer and NormalizerWithAudio, while nemo_text_processing/inverse_text_normalization/__init__.py exports InverseNormalizer. setup.py uses setuptools package discovery, includes *.tsv, *.far, and *.fst package data, defines test and all extras, and registers a custom style command using isort and Black. nemo_text_processing/text_normalization/ar/__init__.py probes for Pynini and logs a warning when unavailable. nemo_text_processing/text_normalization/en/__init__.py exposes classifier and verbalizer FST classes. README.md documents PyPI, Git-branch, editable-source, and Conda-oriented installation routes.
Observed
- License
- Apache License 2.0
- Primary language
- Python
- Install surface
- PyPI package, Git branch installation, editable source installation, and Conda environment guidance
- Interface
- Python library with normal, audio-aware, and inverse normalizer exports
- Pip platform support
- Supported on Linux x86-64; macOS and Windows require alternative Pynini and OpenFst setup
- Packaged assets
- Includes TSV tables, FAR archives, and FST files
- Optional mode
- Hybrid text normalization can use PyTorch
Read from README.md, setup.py, __init__.py, nemo_text_processing/__init__.py, nemo_text_processing/g2p/__init__.py, nemo_text_processing/utils/__init__.py, nemo_text_processing/hybrid/__init__.py, nemo_text_processing/fst_alignment/__init__.py, nemo_text_processing/text_normalization/__init__.py, nemo_text_processing/inverse_text_normalization/__init__.py, nemo_text_processing/g2p/data/__init__.py, nemo_text_processing/text_normalization/ar/__init__.py, nemo_text_processing/text_normalization/de/__init__.py, nemo_text_processing/text_normalization/en/__init__.py, nemo_text_processing/text_normalization/es/__init__.py.
What it can do
Normalize text for automatic speech recognition
Raw text with abbreviations, numbers, and symbols → Normalized text suitable for ASR training
Convert written numbers to spoken form
Text containing numerical digits → Text with numbers written as words
Expand abbreviations and acronyms
Text with shortened forms and abbreviations → Text with full expanded forms
Perform inverse text normalization
Spoken-form text from ASR output → Written-form text with proper formatting
Convert spoken numbers back to digits
Text with numbers written as words → Text with numerical digits
Normalize punctuation and symbols
Text with various punctuation marks and special symbols → Text with standardized punctuation representation
Process text for text-to-speech synthesis
Written text with mixed formatting → TTS-ready text with proper pronunciation guidance
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.