✦ Open model · 100% on-device · No server

The world’s 3rd most spoken language, typed on the world’s most used keyboard. In under 8 MB.

Hindi typed in English letters → Devanagari, fully offline. Context-aware, as you type. The whole thing is under 8 MB, starts typing at 0.6 MB and runs inside this tab; nothing you write ever leaves your device.

#3most spoken language
in the world
611Mpeople speak Hindi
(first or second language)
< 8 MBto type it, with
no server and no GPU

Source: Ethnologue 200, 2026 (29th edition, SIL Global). Speaker counts include second-language speakers.

Romanized Hindi
देवनागरी
आपका देवनागरी पाठ यहाँ दिखेगा
Suggestions
Click any word in the output — or just keep typing — to see ranked alternatives.
Latency—
Download—
Parameters—
Dictionary—
Runs onYour device 🔒
Downloading model…
Real-world comparison

Same input, typed casually

Left: a real phone screenshot of a popular keyboard (supplied by the author, cropped to its text lines, text unaltered). Right: AksharaLP v2 in this tab, offline. Measured 2026-11-01.

A popular phone keyboard (screenshot)
Phone screenshot: a keyboard wrote बोहट अ थे भाई for 'Boht ache h Bhai'
You typeBoht ache h BhaiIt writesबोहट अ थे भाई
AksharaLP v2 · in this tab, offline
You typeBoht ache h BhaiIt writes

Computed live by the released runtime.

Standard Hindi spelling: बहुत अच्छे है भाई. Words in standard spelling: keyboard 1 of 4, AksharaLP v2 3 of 4; AksharaLP v2 writes बोहत (standard: बहुत). One sentence, shown as a showcase: not a test or tuning item and not an accuracy measurement.

Try an example

Every preview below is computed live by the model in your browser.

Live in this tab

What it brings on-device

No server in the loop. Every example below is computed right now, inside this page.

Small model. Serious accuracy.

Built for keyboards, chat apps and browsers where every kilobyte and millisecond counts.

Fits where big models can’t

Download size of the core and of core + dictionary versus a widely used open transliteration model.

Benchmarks · one test run per system

Accuracy, measured

Aksharantar Hindi test set (9,991 romanized words) for top-1/3/8, and the Dakshina Hindi sentence test (4,976 sentences) for whole-sentence word accuracy; the same scoring script for every system. Brackets are 95% bootstrap intervals; — means not measured.

SystemDownloadTop-1 %Top-3 %Top-8 %Sentences word %
AksharaLP-1M-v2 · core + dictionary pack7.92 MB70.04[69.16–70.90]88.3193.6389.02
AksharaLP-1M-v2 · core only0.57 MB56.01[55.06–56.96]76.9185.0970.23
IndicXlit full package404 MB69.33[68.44–70.23]85.4088.29—
IndicXlit model only46.0 MB59.16[58.14–60.13]79.9588.2967.55
AksharaLP-1M (v1)4.53 MB70.37[69.50–71.26]87.6692.7987.55

Our training pairs contain no Aksharantar test or validation native words (checked). The 3M-word dictionary pack is built from IndicCorp v2 text and naturally contains most test words: with every test reference word removed from the dictionary the same system scores 16.37% top-1 (42.51% top-3, 70.33% top-8), and the core alone scores 56.01% top-1. All tuning, the reranker fits, the dictionary size and the sentence weights used validation and internal dev data only; each test number comes from a single run.

WhatsApp-style Hindi

Chat spelling, handled

Hand-written chat-style sentences (h, nhi, bht, thk, dropped vowels, stretched letters): held-out half of an internal dev set, never used for fitting. Word accuracy per spelling pattern, v1 vs v2.

Spelling patternExampleSentencesv1 word %v2 word %
Single letter for a doubled consonantacha theek hai2679.392.4
Extra doubled letterstumm kahan ho2595.298.4
Missing h in kh / th / bhkana bana do2654.271.2
Extra hthera naam kya hai2576.485.5
Long / short vowel spellingkhana khaya2685.796.4
e for aikese ho2589.396.4
o for aukon hai2570.584.1
Dropped or added akarna hai2576.997.4
Dropped vowelskya kr rhe ho2562.590.0
Missing nasal (n)mai ghar ja raha hu2570.086.0
w / v, z / j, f / phvo kaun hai2697.8100.0
s for shsukriya2572.786.4
ri / ru for ऋkrupya dhyan de2696.4100.0
Word-final y / h endingshy na2555.383.0
Stretched lettershaaan2575.082.1
Chat abbreviations (h, nhi, yr)ok yr2545.891.7
English words in Hindi chatphone karo2596.898.4
Ambiguous short wordsghar main hai2594.993.6
Standard spelling (control)mera naam rahul hai2597.997.9
All chat-spelling sentences48080.291.5

480 sentences. Overall word accuracy 80.16% → 91.54% (paired bootstrap gain +11.38 points, 95% CI 9.14 to 13.71); whole-sentence exact match 62.92% → 82.50%. Internal set written by the author; small per-pattern counts, so per-row numbers are indicative.

Use it in your app

Three lines of JavaScript

Load the 0.57 MB core, start typing, and let the 7.35 MB dictionary pack download once in the background. It is cached by the browser (Cache API), so later visits work offline.

import { AksharaLP } from "https://huggingface.co/sourojitdotcom/AksharaLP-1M-v2/resolve/main/aksharalp.mjs";

const aklp = await AksharaLP.load("https://huggingface.co/sourojitdotcom/AksharaLP-1M-v2/resolve/main/", { dict: false });  // core: usable now
aklp.loadDict();                                   // dictionary pack: fetched once, cached, attached when ready
aklp.transliterate("Boht ache h Bhai").output;     // → बोहत अच्छे है भाई

How it works

  1. 1Generate

    A 4-bit character Transformer (the core) proposes spellings. With the dictionary pack attached it also searches a lexicon trie and consonant-skeleton matches, and adds acronym and spelling-variant candidates.

  2. 2Rerank

    A tiny learned reranker scores every candidate with model, lexicon and frequency features.

  3. 3Decide in context

    With the dictionary pack, a compact word-bigram language model chooses the best sentence, e.g. मैं vs में. Without it, each word keeps its top-ranked spelling.

Apache-2.0 · Copyright 2026 Sourojit Dhua

License & attribution

Free for commercial use. Credit AksharaLP and Sourojit Dhua when you ship it.

✓

Commercial use allowed

Use, modify and ship the model and runtime in commercial products, free of charge, under the Apache License 2.0.

§

Attribution required

Apache-2.0 §4(d): every redistribution or derivative (apps, web pages, extensions, SDKs, fine-tuned or converted models) must include the NOTICE file. The runtime keeps its /*! … */ header, including when minified.

Attribution text (required)
Transliteration by AksharaLP (Sourojit Dhua) — https://huggingface.co/sourojitdotcom/AksharaLP-1M-v2
In-app credit (recommended)
Hindi typing powered by <a href="https://huggingface.co/sourojitdotcom/AksharaLP-1M-v2">AksharaLP by Sourojit Dhua</a>
Citation (BibTeX)
@software{dhua_aksharalp_2026,
  author  = {Dhua, Sourojit},
  title   = {AksharaLP: Tiny, Context-Aware Hindi Transliteration for the Browser},
  year    = {2026},
  url     = {https://huggingface.co/sourojitdotcom/AksharaLP-1M-v2},
  license = {Apache-2.0}
}