Vibeleaderboard
Index / tool
Visit github.com
Category
AI Tools
Rank
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 symbolsNormalized text suitable for ASR training

  • Convert written numbers to spoken form

    Text containing numerical digitsText with numbers written as words

  • Expand abbreviations and acronyms

    Text with shortened forms and abbreviationsText with full expanded forms

  • Perform inverse text normalization

    Spoken-form text from ASR outputWritten-form text with proper formatting

  • Convert spoken numbers back to digits

    Text with numbers written as wordsText with numerical digits

  • Normalize punctuation and symbols

    Text with various punctuation marks and special symbolsText with standardized punctuation representation

  • Process text for text-to-speech synthesis

    Written text with mixed formattingTTS-ready text with proper pronunciation guidance

Tags

nlpasrttstext-normalizationpython

Tech Stack

C++DockerfileJupyter NotebookPythonShell

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.