nemo-text-processing
NeMo text processing for ASR and TTS
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- On macOS and Windows, pynini requires pre-installed OpenFst libraries; use conda-forge instead: conda install -c conda-forge pynini=2.1.6.post1
- Low friction: pure Python wheel with no compiled dependencies beyond pynini.
- Active maintenance (last commit 2026-07-30, release 70 days ago).
License · maintenance · safety
Apache2 (permissive) — Apache 2.0 permissive license allows commercial use, modification, and distribution with minimal restrictions—suitable for most projects.
last release 2026-06-05 (70 days) · last repo commit 2026-07-30 · 491 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 126,296 downloads/mo, #11,780 on PyPI
Alternatives
Verify before relying
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")- 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
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 on it.
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
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.
On macOS and Windows, pynini requires pre-installed OpenFst libraries; use conda-forge instead: conda install -c conda-forge pynini=2.1.6.post1
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")
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 packagescdifflibeditdistanceinflectjoblibpandaspyniniregexsacremosessetuptoolstqdmtransformerswgetwrapt |
| 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 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleIntended Audience :: DevelopersIntended Audience :: Information TechnologyIntended Audience :: Science/ResearchLicense :: OSI Approved :: Apache Software LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Scientific/EngineeringTopic :: Scientific/Engineering :: Artificial IntelligenceTopic :: Scientific/Engineering :: Image RecognitionTopic :: Scientific/Engineering :: MathematicsTopic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Python ModulesTopic :: Utilities |
Evidence: nemo_text_processing-1.2.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “text normalization for ASR TTS”
- nemo-text-processingConverts text to normalized form and back (inverse normalization) for…
- whisper-normalizerStandardizes and normalizes text using the algorithm from OpenAI's…
- nemo-toolkitnemo-toolkit provides a PyTorch framework for building, training, and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also nemo-toolkit · pynini · wetext · pyctcdecode · f5-tts · kokoro-onnx · coqui-tts · whisper-normalizer · chatterbox-tts · torchtext