Illustration: a crowned gem on a laptop transcribes Nepali speech beneath crossed-out server towers.
// speech recognition · ratna रत्न

Nepali text while you speak.

Try Ratna रत्न

Runs in your browser

Ratna writes Nepali text on your device while you are still talking.

यहाँ तपाईंको बोली देखिन्छ।
Live model output

Ready when you are. Model downloads on first use.

Or try a sample

Samples play aloud as the text grows. All use the same synthetic voice.

Inference speedPendingRun a sample or use your mic
Audio processedPendingMeasured on your device
Model loadPendingDownload + initialization

Runs entirely in your browser. Audio never leaves your device.

35.10 MBint8 bundle · 31,963,576 parametersReceipt
27.29 msdecode time per second of audio · one Apple M2 Ultra CPU threadReceipt
27.15%Fresh natural-speech CER · frozen legacy scorerReceipt
320 msstreaming step · text appears while you speakReceipt

Ratna is Ampixa's small streaming Nepali speech recognizer. It produces text as audio arrives and runs locally on a CPU. Its size and speed suit captions, voice typing and first-pass transcripts that a person can correct.

The tests below cover read speech, natural speech, real Nepali phone audio and exact capture of identifiers.

From your voice to text.

Your browser processes audio in chunks. The streaming Zipformer2 encoder, prediction network and joiner produce text through sherpa-onnx WebAssembly. The model is exported as int8 ONNX. Audio stays on your device.

Audio features enter a streaming Zipformer encoder with cached context. A token decoder and joiner produce Nepali text.
Simplified streaming transducer. CPU inference in your browser.
What does the speed readout measure?

RTF is inference compute time divided by audio time. The readout includes waveform processing, decoding and the silence flush. It excludes model loading, audio decoding, playback waits and screen updates. Short clips vary with device load. These synthetic samples demonstrate streaming; they are not an accuracy benchmark.

What did we build?

A streaming transducer with a causal Zipformer2 encoder, a prediction network and a joiner. Ratna uses greedy decoding with a vocabulary of 2,048 tokens.

The release advances in 320 ms audio chunks. This is the step size, not a measured speech-to-screen delay. Its conversational-memory pathway is empty; each utterance is decoded independently.

Training used public and synthetic speech, including machine-generated labels. Label provenance is incomplete for part of the material, so this is a research release.

Which tests are these?

The frozen benchmark scores every model on the same audio under its legacy normalization. CER counts character edits, including spaces; WER counts word edits. Both are percentages of the reference length.

TestEvaluation size
PV, read speech100 recordings, four speakers
Fresh, natural speech96 clips, twelve voices; machine-drafted, corrected references
FLEURS, Nepali read speech726 sentences
Exact entities132 real Nepali customer-service phone calls

Intervals use 10,000 bootstrap resamples at 95% confidence: speaker groups for PV and Fresh, sentences for FLEURS. Some test transcripts overlap Ratna's training text; training exposure of comparison models is not established. Whisper uses fixed Nepali, greedy, 30-second windows. Ratna runs int8; comparison models retain their standard float32 setups.

NepTel 0.2 and the public PVSpeech half use NepTel 0.2 normalization and are separate from the legacy-scored benchmark.

What does the smaller file buy?

ModelFile size, MBPeak RAM, MiB
Ratna, int835.10205
AI4Bharat IndicConformer5232,720
Whisper-small9672,257

The 205 MiB peak is observed process memory including the runtime, not memory per stream. CPU timing uses one Apple M2 Ultra thread and batch one. The 27.29 ms figure measures decoding per second of audio, not end-to-end latency or concurrent-stream capacity.

The release files have run on macOS, Linux, Windows and Chrome through WebAssembly. A phone and Raspberry Pi have not been measured.

Where Ratna loses

ModelPV CER %Fresh CER %FLEURS CER %
Ratna16.3327.1528.03
AI4Bharat IndicConformer9.9415.447.43
Ampixa earlier streaming model12.6817.7823.74
omni-1b v27.8520.609.01

CER %, lower is better. Frozen legacy scorer.

Ratna trails larger Nepali models across these speech tests. On the degraded-audio controls its CER reaches 69.48% on PV and 68% on Fresh.

Fresh CER %, lower is betterRatna27.15omni-300m v226.64MMS29.11Whisper-large-v368.89Fresh CER %, lower is betterRatna27.15omni-300m v226.64MMS29.11Whisper-large-v368.89
Natural speech, frozen legacy scorer. Bars use the same scale. Paired intervals do not establish a difference between Ratna and omni-300m v2 or MMS.

The natural-speech result is below Whisper-large-v3 in CER. CER can exceed 100% when a recognizer inserts enough text that was never spoken.

On the separate evaluation of 132 real Nepali customer-service phone calls, Ratna captures 0 of 298 phone numbers, 23 of 152 amounts and 0 of 123 full emails.

keep a human check

What happens on NepTel 0.2?

Real Nepali phone audio: 78 segments and 2,647 reference words. Ratna uses the same streaming int8 greedy setup. Comparators use the same key and scorer.

ModelNepTel 0.2 WER %
Rani33.51
AI4Bharat IndicConformer47.60
Ratna67.32

The paired WER gap to Rani is +33.79 percentage points, with a 95% interval of [+30.97, +36.58]. Ratna was not trained on real call audio. NepTel is the hardest setting for it.

What does the public PV half show?

The public PVSpeech half has 50 clips from two speakers. Its result uses NepTel 0.2 normalization.

EvaluationCER %WER %
Public PVSpeech half, NepTel 0.2 normalization18.8743.09
Full PV bench, frozen legacy scorer16.3339.26

The full 100-sentence PV bench uses the frozen legacy scorer. Different recordings and normalization mean these rows do not measure a change in model quality.

Where can I use it?

use Ratna for

  • local captions and voice typing
  • editable first-pass transcripts
  • applications with a small memory budget

choose a larger model for

  • transcripts needing higher accuracy
  • critical phone numbers, amounts, codes and emails
  • noisy or degraded speech

Read the technical blog for the release, test methods and results, or try Ratna above. The model files are on Hugging Face.

If you use Ratna, distill it, train or evaluate on its outputs, or build on it, name it properly: Ratna (Ampixa Labs), in your model card or documentation. Anyone you pass it to keeps that credit.

// receipts · every measured number
  • Bundle, parameters, RAM, timing, legacy accuracy and exact entities: frozen benchmark and aggregate JSON. CPU timing converts the median real-time factor to milliseconds per second.
  • NepTel 0.2 and public PV half: release numerical receipts, including every displayed score, test size, interval, normalization and comparator name. These supplementary results use NepTel 0.2 normalization.
  • Architecture: release description: 2,048 tokens, 320 ms chunks, empty memory pathway.
  • Test method: frozen aggregates and release description: 95% intervals, 10,000 resamples, 30-second Whisper windows; CER may exceed 100% through insertions.
  • Illustration: approved Ratna art. The 35 MB label rounds the measured bundle. The crossed-out 8 GB server label is symbolic, not a measured hardware requirement.
  • Release date: requested for 2026-11-09. Section ordinals identify the datasheet sections.

Source: Ratna technical release and evaluation.