Skip to content

Revo Norm

Text normalization for Text-to-Speech, built for English and Malay (Bahasa Melayu).

Revo Norm converts written text — numbers, currency, dates, times, abbreviations, acronyms, and more — into natural spoken form so your TTS engine reads it the way a human would say it.


30-Second Quickstart

from revo_norm import normalize_text

# English
print(normalize_text("The price is RM50K due on 15/08/2025", language="en"))
# "The price is fifty thousand ringgit due on fifteen of August twenty twenty-five"

# Malay
print(normalize_text("Suhu 25C hari ini", language="ms"))
# "Suhu dua puluh lima celcius hari ini"

# Minimal — just fix spacing
print(normalize_text("Hello   world", language="en", profile="minimal"))
# "Hello world"

Key Features

  • Currency normalizationRM50K, $1.5M, USD 200B expanded and spoken
  • Date recognition15/08/2025, 2025-08-15, 15 August 2025
  • Time recognition3:30 pm, 14:00
  • Number-to-words — cardinal and ordinal numbers in English and Malay
  • Acronym handlingIBM → "I B M", NASA preserved, JSON → "J son"
  • Temperature25C, 100°F converted to spoken form
  • Fractions3/4 → "three over four"
  • Measurements5km, 10kg, 3GB
  • Entity protection — currency, URLs, emails, and dates shielded from cascading transforms
  • Pronunciation mappings — custom overrides with highest pipeline priority (GUI → "gooey")
  • Bilingual — full support for English (en) and Malay (ms)
  • Configurable profilesminimal, basic, standard, aggressive presets

Installation

# pip
pip install revo-norm

# uv (recommended)
uv add revo-norm

See the Installation Guide for all options including source installs and dev setup.

Documentation

Page Description
Installation Install via pip, uv, or from source
Quickstart Guide 5-minute walkthrough with examples
API Reference Full API documentation
Features Detailed feature guides

License

MIT