Shruti: every language
Models · Shruti · 29.7 MB · released 6 November 2026

Shruti Assamese

Speech to text for Assamese and English, on your device, with no server.

Try it now · in your browser · free, no login

Speak Assamese, English or both. Shruti Assamese writes it down on your device.

Shruti · checking this device

Audio never leaves your device. Shruti and its open-source engine run inside this page.

Load Shruti, then press Record and speak Assamese, English or both.

Speak Assamese, English or both. English words can stay in English (Latin script) and are underlined here; Assamese is written in Assamese script. While you speak, words appear once they have settled, a second or two behind you; when you stop, Shruti reads the whole recording once more for the final text.

Shruti Assamese · 29.7 MB · Assamese and English · 6 November 2026

Assamese and English in one 29.7 MB file. On Assamese conversations that mix in English, fewer errors than IndicConformer-600M and SraVaani-1.0, models about 86 and 31 times its size.

Shruti Assamese writes Assamese in Assamese script, with its own ৰ and ৱ, and more than half of the English words stay in English letters: শনিবাৰে গুৱাহাটীত concert আছে. On real conversations (DiarBench, held out, 84 turns from 19 conversations), counting English words only in English letters, its word error rate is 30.2, against SraVaani-1.0’s 37.9 and IndicConformer-600M’s 39.8. It runs offline on a five-year-old phone, about 11× faster than real time in 64 MB of memory with the native engine, and it invented no words on 100 silent clips.

ModelFileFLEURS (read)DiarBench, English in EnglishDiarBench, native
Shruti Assamese29.7 MB35.130.243.2
Whisper tiny43.5 MB315.7255.8262.1
Whisper base81.8 MB191.9328.1337.1
SraVaani-1.0908.8 MB21.937.929.1
IndicConformer-600M2,560 MB20.239.825.9

Word error rate %, lower is better; FLEURS 200 clips, DiarBench 84 turns, the same scorer for every model, measured 2 November 2026. FLEURS is read speech we did not train on. DiarBench is real conversation from outside our training data; its English-in-English references write English words in English, and its native references write them in Assamese script. Whisper adds words and often writes the wrong script, so its rates pass 100%; Whisper small was not run on Assamese. Other Assamese speech models exist that we have not measured, including the original per-language IndicConformer Assamese checkpoint; these results cover only the models listed here.

Where it falls short

  • Read Assamese is far behind: FLEURS 35.1, against IndicConformer-600M’s 20.2 and SraVaani-1.0’s 21.9 (paired intervals +13.13 to +16.74 and +11.38 to +15.06). It is the only read test here.
  • The lead rests on English letters. Against the native reference on the same conversations, those two models are well ahead (25.9 and 29.1 against 43.2; +12.51 to +22.43 and +10.45 to +17.89). Character errors there are 26.69%, against 8.18% and 9.27%.
  • The conversation test is small: 84 turns from 19 conversations. No Assamese reader has reviewed this output yet.
  • IndicConformer-600M is AI4Bharat’s multilingual model. A 198.8 MB community int8 conversion of the per-language IndicConformer Assamese scores 42.5 on those conversations against our 30.2, and is ahead on the native reference (35.3 vs 43.2) and on FLEURS (24.3 vs 35.1).
  • Two training sets, SPRING-INX Assamese R1 and R2, name no licence on their pages (checked 6 November 2026). The SPRING-INX paper says “we are open sourcing SPRING-INX data”. We kept them in training and don’t claim a licence for them; the model card has the details.
  • About 69 of 375 English words on the conversation test come out in Assamese script (option as অপশ্যন), and 3 of 84 turns came out wholly in English letters. Real errors happen: চাহখিনি as জাহখিনি, flush as flash.
  • In a browser it was tested on seven lines played into this page on one phone’s Chrome, with the language set; all seven came out in Assamese script. Not yet tested with a live microphone. On the other Shruti languages where we measured it, plain English loses a little accuracy this way.
  • No punctuation, and numbers come out as words. Noise, music, far-field and speaker-played audio were not tested. In loud noise, Shruti models sometimes repeat a phrase over and over (measured on Hindi-family models, not on Assamese).

Try Shruti Assamese Shruti Assamese on Hugging Face the model file, the full results and how each model was run

Use it in your app

Every Shruti model runs in Cactus’s open-source needle engine. Download the engine for your platform and the file for your language, and pass it a WAV file or 16 kHz audio.

# Command line (Mac, Linux, Windows)
# Engine: huggingface.co/Cactus-Compute/needle3, your platform
# Model:  shruti-assamese.cact, from Shruti Assamese's Hugging Face repo
./needle --model shruti-assamese.cact --audio clip.wav
# for speech that is only English: --audio-language en

# Python
pip install cactus-needle

import needle
shruti = needle.Whistle(weights="shruti-assamese.cact")
print(shruti.transcribe("clip.wav")["text"])
  • Android, iOS and the web: call the engine’s C API. needle_load takes the model file, needle_transcribe a clip, and needle_stream_transcribe_process about a second of live audio at a time. The demo on this page makes the same calls, from WebAssembly in a Web Worker.
  • Leave the language unset for Hindi and Hinglish: detection does as well as setting it on Hindi, Hinglish, accented Hindi and US English. Set English when the speech is only English with an Indian accent, which detection often takes for Hindi. On a subset of Svarah: 21.13% word errors with English set, 25.75% detected.
  • Keywords, one per line, favour the names, places and product words your users say.
  • Cactus’s Python package (cactus-needle) sends anonymous usage counts by default; set NEEDLE_TELEMETRY=0 to turn that off. The command-line engine and the WebAssembly engine on this page make no network requests of their own.

Credits

Every Shruti model is built on Cactus Whistle and runs in the needle engine, both by Cactus Compute under Apache-2.0. The engine files on this page are Cactus’s WebAssembly build, unmodified, served with its licence and notice. Shruti Assamese’s model card on Hugging Face lists its training datasets and their licences.

Every Shruti language