Hindi / Bengali → Latin · runs in your browser

gomanize रोमनीकरण

Romanize Hindi or experimental Bengali into readable Latin script. Everything runs client-side on WebAssembly; nothing is ever sent to a server.

live

Choose the language of your input.

options · rule tweaks & learned models
Rule tweaks (Hindi)
Learned (opt-in)
paste or type
Romanized output loading engine
tool
install
# CLI (Homebrew, macOS/Linux)
brew install budhash/tools/gomanize

# CLI (Go)
go install github.com/budhash/gomanize/cmd/gomanize@latest

# library
go get github.com/budhash/gomanize
command line
gomanize "नमस्ते दुनिया"       # namaste duniya
echo "हिंदी गाना" | gomanize   # hindi gana
gomanize --language=bengali "আমি বাংলা" # ami bangla
go library
g, _ := gomanize.New("hindi")
fmt.Println(g.Translit("नमस्ते दुनिया")) // namaste duniya
javascript / npm
// npm install @budhash/gomanize  — the same engine (this page runs it)
import { load } from "@budhash/gomanize";
const g = await load();
g.translit("नमस्ते दुनिया"); // "namaste duniya"
g.translit("আমি বাংলা", { language: "bengali" }); // "ami bangla"

The toggles in the demo above are the CLI flags — --long-vowels, --simple-nasals, --keep-medial-schwa, --schwa-model, --lexicon, --rerank. Full reference in the README.

About gomanize रोमनीकरण

gomanize romanizes Hindi and experimental Bengali into readable, diacritic-free Latin script — built for song lyrics and other colloquial text. It follows how words are pronounced (romanization / phonetic transliteration), rather than the strict, reversible transliteration of schemes like IAST or ISO 15919.

How it works

A rule-based engine makes the core decisions — schwa deletion, and consonant, vowel, and rendering rules. Three optional learned components, toggleable above, trade a little more computation for accuracy: a decision-tree schwa model (for Bengali, an inherent-vowel model), an attested-spelling lexicon (about 8,400 Hindi / 9,000 Bengali words), and, for Hindi, a character-model re-ranker.

Accuracy

Hindi, on the curated Dakshina benchmark: 86.2% exact (pure) and 92.9% match-any-attested-variant, rising to 94.8% with the re-ranker. On a 43-line lyrics set the character error rate is ≈ 0.049 (0.039 with the lexicon) — close to the ~0.054 human floor.

Bengali is experimental: on held-out Dakshina words, 58.7% match-any with rules and 64.76% with the vowel model. Its lyrics references are not yet reviewed.

Privacy

Everything runs client-side in your browser via WebAssembly. No text is ever sent to a server.