ampixa

एम्पिक्सा ल्याब्स (Ampixa Labs)

live speech in, speech out — every demo below runs on our own models, on one Mac Studio in Kathmandu.


listen — Nepali speech recognition

NepaliConformer: a 121M-parameter Conformer trained on ~1,700 h of conversational Nepali. 33.8 WER on real call-centre audio, where Whisper-large-v3 scores 96. Full-context decoding on CPU.

Model: ampixa/nepali-conformer-offline (CC-BY-NC-4.0) · code and the NepTel benchmark: Ampixa/nepaliconformer. Audio is transcribed and discarded; nothing is stored. Known weak spots: English words, singing, very slow speech.


speak — text-to-speech for the languages of Nepal

Sixteen server voices in five languages plus three that run inside your browser. Nepali via Kokoro/StyleTTS2 fine-tunes and the Kala VITS family; Limbu, Gurung, Dhimal and Bantawa via rule-based G2P and small VITS voices.

loading voices…

Kokoro voices: kokoro-nepali-tts · Kala: ampixa/kalaTTS (CC-BY-SA-4.0) · Gurung: gurung-tts-v0 · Limbu: limbu-piper-lifwbt · sanoTTS (browser, GPL-3.0): Ampixa/sanoTTS, weights. Limbu, Gurung, Dhimal and Bantawa input is Devanagari; the Bible-audio voices (Gurung, Bantawa, Limbu) are research prototypes.


translate — Limbu ↔ Nepali ↔ English

NLLB-200 (600M) fine-tuned on a Limbu (Yakthung) parallel corpus, routed per direction to whichever of two checkpoints scores higher. Limbu directions sit around chrF 22 (zero-shot NLLB: 7.5) — a low-resource fine-tune demo, not a finished translator. Nepali ↔ English is the base model's own strength.

Models: ampixa/nllb-limbu-600m and a gold-tuned sibling (CC-BY-NC-4.0, inherits NLLB). Limbu is written in Devanagari here and rides NLLB's hin_Deva tag. Beam search, 4 beams, on CPU: expect a few seconds.


read — Limbu (Sirijonga) and Devanagari OCR

LimbuOCR: page-to-book OCR for the Sirijonga script (U+1900–U+194F) with a Devanagari route for the wider Nepal language pack. 0.47% codepoint CER on 902 held-out Sirijonga lines; 2.6% page CER end to end. PaddleOCR detection plus fine-tuned PP-OCRv5 recognisers.

drop a page or line image here, or click to choose (png/jpg/webp, ≤ 10 MB)
Sirijonga line Sirijonga column Devanagari column

Code and paper: Ampixa/limbu-ocr. Sample crops are from Gorkhapatra's Limbu-language e-paper (© Gorkhapatra Sansthan, shown here for demonstration only). A page with 100+ lines takes 15–30 s on CPU; pick the script explicitly, the auto router is tuned for Sirijonga.


type — keyboards for the scripts of Nepal

Nepa Keyboard is an offline-first keyboard for Nepali, Limbu, Nepal Bhasa, Lohorung, Dhimal, Yakkha, Tamang, Khaling and Dumi, in Devanagari, Sirijonga and Prachalit (Newa) script. These are the phone layouts from the project's layout registry, rendered live: click the keys, or use your physical keyboard (QWERTY positions map to the rows).

Layouts adapted from xkeyboard-config (Nepali basic) and project-authored derivatives under native-speaker review; the Android IME, dictionary packs (33 targets, 74 input methods) and validation evidence live in the Nepa Keyboard repository.


sign — Nepali Sign Language

Two live pieces from our NSL research: fingerspelling recognition that runs entirely in your browser, and isolated-sign retrieval against a 3,653-sign dictionary on the server. Plus the numbers, including the ones that are not good yet.

fingerspell in the browser

Show one hand to the camera and form NSL alphabet letters. MediaPipe hand landmarks feed a 42×128×128×49 MLP trained on the public nsl-fingerspelling-poses set (CC-BY-4.0). Leave-one-signer-out top-1 78%, top-3 94%; camera frames never leave your browser.

loading…

sign a word

Record one isolated sign (2–4 s). RTMPose keypoints → frozen Uni-Sign pose encoder → nearest dictionary glosses. Honest signer-independent accuracy for this path: top-1 11%, top-5 30% against 3,653 signs (chance 0.03%). Takes 10–30 s on CPU.

isolated signstop-5 ≈ 0.30 against a 3,653-entry gallery — works, modestly (that is the demo above)
continuous signingtop-5 ≈ 0.05; no trained checkpoint beats the untrained baseline under matched evaluation
sign → textthe translator collapses to a language-model prior and ignores the pose input
whybroadcast interpreters sign the gist, not the words; caption-derived labels are weak supervision. Next step is human-verified alignment with the deaf community.

~5,000 (signing, text) pairs from parliamentary broadcasts, a 2,699-sign gloss dictionary, a 219-clip human-confirmed benchmark. Project page: ampixa.github.io/nsl-site.


grammar — reference grammars and language toolkits

For each language we keep the linguistics next to the models: a rule-based G2P you can read, a reference grammar, parallel corpora with provenance, and native-speaker review tools.

Limbu · Yakthung

limbu.ampixa.com

Translator, reference grammar (phonology, case, pronouns, verb, syntax), Muna Madan in Limbu, and a native-speaker review tool.

limbu-speech-toolkit · nepal-ttf2utf (legacy font → Unicode)

Gurung · Tamu Kyi

Gurung toolkit

Rule-based Devanagari → IPA G2P with the first characterisation of Gurung's ZWJ half-consonant clusters (म्ह, न्ह, ल्ह); drives the voice above.

gurung-speech-toolkit · gurung-language-toolkit

Magar

Magar toolkit

G2P, transliteration and a Magar ↔ Nepali parallel corpus with NLLB baselines.

magar-speech-toolkit · magar-toolkit

Dhimal

Dhimal toolkit

Contrast-preserving G2P (breathy series kept, visarga read as length) and the voice above.

dhimal-speech-toolkit

Rai · Bantawa

Rai toolkit

Bantawa G2P with a 2,040-entry gold IPA lexicon that recovers /ɨ/ and /ʔ/ Devanagari cannot write.

rai-speech-toolkit

Nepali

Nepali text frontend

The G2P, normaliser and prosody frontend behind every Nepali voice on this page (profile real_nepali_v0.3).

nepa-newa-text-frontend · all toolkits


music — Nepali folk generation and transcription

ACE-Step 1.5 with a Nepali LoRA (r=64 on the diffusion renderer) trained on 706 pre-2024 clips: 281 folk songs and 425 isolated madal, sarangi and bansuri recordings. It moved diction and timbre; the tune only follows when a real reference recording is supplied.

loading samples…

Live generation (12 s clips, 20 steps, ~10 s on an idle M2 Ultra) is wired as a worker but switched off while this box is shared with training jobs. muscript, our transcription pilot, ran five MIDI transcription systems and a 108-run stem ablation over dohori recordings; the annotation dashboard stays on the lab network.


about this page

Everything here runs on one Mac Studio (M2 Ultra) on CPU, behind a Cloudflare tunnel: six model workers and a gateway, no GPU, no cloud inference. Requests are processed and dropped; nothing you say, type or upload is kept.

demomodelruntimelicence
listennepali-conformer-offline, 121M Conformer TDT/CTCNeMo, CPU, RTF ~0.05CC-BY-NC-4.0
speak · NepaliKokoro-82M fine-tunes (Sama Thapa, male v1) · Kala v0.4 six speakersPyTorch / ONNX Runtime, CPU, RTF 0.02–0.2Apache-2.0 · CC-BY-SA-4.0
speak · other languagesLimbu, Gurung, Dhimal, Bantawa (Piper/VITS)PyTorch / ONNX Runtime, CPU, RTF < 0.05research; Bible-audio voices CC-BY-NC-ND
speak · in browsersanoTTS nepali, hindi, heart-nano (294k params)WebAssembly in your tabGPL-3.0
translatenllb-limbu-600m + gold-tuned siblingTransformers, CPU, 2–8 s per sentenceCC-BY-NC-4.0
readLimbuOCR Sirijonga ft-v2, deva-v2, PP-OCRv6 detectorPaddleOCR, CPUApache-2.0

Source for this page and its workers is in the Ampixa GitHub organisation. Find us at github.com/Ampixa, huggingface.co/ampixa, or ampixa.com.