nemo-text-processing
NeMo text processing for ASR and TTS
What it is and what it does
nemo-text-processing is a Python library for bidirectional text normalization—converting written text to spoken form and back. It uses weighted finite-state transducers (WFST) and language models to handle complex linguistic rules. The package is designed for speech pipelines: text-to-speech systems need normalized input, and automatic speech recognition systems produce text that often needs denormalization for readability.
The library depends on pynini (OpenFst bindings), transformers, pandas, and several NLP utilities. It's maintained by NVIDIA as part of the NeMo ecosystem. Installation via pip works on Linux x86_64; macOS and Windows users should use conda-forge to avoid compilation issues with pynini. The package is actively maintained and production-stable.
Use it for:
- Prepare text for TTS systems by normalizing written forms into spoken equivalents
- Clean ASR output by converting spoken-form text back to written conventions
- Build custom text normalization rules using WFST grammar files for domain-specific language
- Preprocess multilingual text for NLP pipelines that require consistent text representation
- Integrate text normalization into speech processing workflows alongside transformers models
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Converts text to normalized form and back (inverse normalization) for speech recognition and synthesis pipelines, using weighted finite-state transducers and language models.
Yes, if you work with speech systems (ASR or TTS) and need robust text normalization. The package is actively maintained, permissively licensed, and has low install friction on Linux. On macOS or Windows, install pynini via conda-forge first. No known vulnerabilities. Not necessary if you only need basic string replacements.
Install
nemo-text-processing on PyPI
pip
pip install nemo-text-processinguv
uv add nemo-text-processingpoetry
poetry add nemo-text-processingInstalling nemo-text-processing
Before you install
Low friction: pure Python wheel with no compiled dependencies beyond pynini. Active maintenance (last commit 2026-07-30, release 70 days ago). Note: pynini requires OpenFst; pip install on macOS and Windows may fail unless OpenFst is pre-installed; conda-forge recommended for those platforms.
License in practice
Apache 2.0 permissive license allows commercial use, modification, and distribution with minimal restrictions—suitable for most projects.
Quickstart
pip install nemo_text_processing
from nemo_text_processing.text_normalization.normalize import Normalizer
normalizer = Normalizer(lang='en')
result = normalizer.normalize("I paid fifty dollars")
On macOS and Windows, pynini requires pre-installed OpenFst libraries; use conda-forge instead: conda install -c conda-forge pynini=2.1.6.post1
Verify before relying
- Whether hybrid text normalization features (mentioned in docs) require PyTorch or are optional
- Actual Python version floor (classifiers list 3.8 and 3.9, but requires_python is unspecified)
- Specific text normalization capabilities beyond numbers and currencies
Package facts
| License | Apache2 (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 13 — cdifflib, editdistance, inflect, joblib, pandas, pynini, regex, sacremoses, setuptools, tqdm, transformers, wget, wrapt |
| Maintenance | actively maintained — 70 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 126,296/month — #11,780 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: nemo_text_processing-1.2.0-py3-none-any.whl
Keywords: NeMo, nvidia, tts, asr, text processing, text normalization, inverse text normalization, language
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
nemo-toolkitnemo-toolkit provides a PyTorch framework for…
permissive · top 5,000 on PyPI
pyniniPynini compiles grammar rules into weighted…
permissive · top 15,000 on PyPI
wetextNormalizes and denormalizes text in Chinese,…
permissive · top 15,000 on PyPI
pyctcdecodeDecodes CTC (Connectionist Temporal…
permissive · top 15,000 on PyPI
f5-ttsF5-TTS generates natural-sounding speech from…
permissive · top 15,000 on PyPI
kokoro-onnxConverts text to speech using ONNX Runtime,…
unclear · top 15,000 on PyPI
coqui-ttsCoqui TTS synthesizes speech from text using…
copyleft · top 15,000 on PyPI
whisper-normalizerStandardizes and normalizes text using the…
permissive · top 15,000 on PyPI
chatterbox-ttsChatterbox TTS converts text to speech using…
permissive · top 15,000 on PyPI
torchtexttorchtext provides text datasets, preprocessing…
permissive · top 15,000 on PyPI