Shruti Malayalam
Speech to text for Malayalam and English, on your device, with no server.
Try it now · in your browser · free, no login
Speak Malayalam, English or both. Shruti Malayalam 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.
(or drop one on the transcript)
Load Shruti, then press Record and speak Malayalam, English or both.
Speak Malayalam, English or both. English words can stay in English (Latin script) and are underlined here; Malayalam is written in Malayalam 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 Malayalam · 29.7 MB · Malayalam and English · 6 November 2026
Malayalam and English in one 29.7 MB file that runs on your device.
Shruti Malayalam writes Malayalam in Malayalam script, and about 4 in 10 English words stay in English letters: ഒരു cab book ചെയ്തു. It runs offline on a five-year-old phone, about 10× faster than real time in 64 MB of memory with the native engine, and it invented no words on 100 silent clips. It is one small file, and larger models are more accurate; we make no headline comparison for it.
| Model | File | FLEURS (read) | Kathbath test-unknown (read) | DiarBench, English in English | DiarBench, native |
|---|---|---|---|---|---|
| Shruti Malayalam | 29.7 MB | 36.0 | 44.9 | 56.8 | 65.4 |
| Whisper tiny | 43.5 MB | 509.4 | 910.2 | 555.0 | 559.6 |
| Whisper base | 81.8 MB | 186.3 | 275.1 | 217.8 | 219.4 |
| IndicConformer Malayalam | 137.7 MB | 31.6 | 35.0 | 61.7 | 53.2 |
| Whisper small | 264.5 MB | 316.8 | 251.8 | 238.9 | 244.7 |
| SraVaani-1.0 | 908.8 MB | 22.6 | 30.4 | 55.2 | 45.2 |
Word error rate %, lower is better; 200 clips or turns per test, the same scorer for every model, measured 2 November 2026. FLEURS is read speech we did not train on. Kathbath test-unknown has unseen speakers, but Kathbath’s training split is in our training data. DiarBench is real conversation from outside it; its English-in-English references write English words in English, and its native references write them in Malayalam script. Whisper adds words and often writes the wrong script, so its rates pass 100%. Other Malayalam speech models exist that we have not measured; these results cover only the models listed here.
Where it falls short
- Larger models are more accurate. IndicConformer Malayalam and SraVaani-1.0 are ahead on FLEURS, on Kathbath and on conversation against the native reference (53.2 and 45.2 against 65.4; paired intervals +9.49 to +15.18 and +17.56 to +23.18).
- With English written in English letters, the conversation test gives 56.8 against IndicConformer Malayalam’s 61.7, but that lead is weak: -8.28 to -1.79 by clip, -9.45 to +1.23 with whole conversations resampled, and -4.48 to +1.50 with script ignored. SraVaani-1.0 is level as written (-1.29 to +4.81) and ahead with script ignored (+0.43 to +6.27).
- More than half of the words are wrong on conversations. Malayalam fuses words, so word scores look harsher than the text reads (Kathbath: 44.9% of words, 9.0% of characters), but on conversation character errors are 35.77%, against 19.03% and 16.03% for the two models above. Expect to correct a lot.
- English words often come out in Malayalam script: about 336 of 1,038 on the conversation test (cinema as സിനിമ). At 39.1% in English letters, it is the lowest of the Shruti single-language models so far.
- Real errors happen: തേങ്ങയിടാൻ as തേങ്ങയുടെ തന്നെ, പൊള്ളിച്ചത് (fried) as പൊളിച്ചത് (broken). Joined words and spelling variants count as errors. No Malayalam reader has reviewed this output yet.
- In a browser it was tested on nine lines played into this page on one phone’s Chrome, with the language set; all nine came out in Malayalam 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 Malayalam).
Try Shruti Malayalam Shruti Malayalam 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-malayalam.cact, from Shruti Malayalam's Hugging Face repo
./needle --model shruti-malayalam.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-malayalam.cact")
print(shruti.transcribe("clip.wav")["text"])- Android, iOS and the web: call the engine’s C API.
needle_loadtakes the model file,needle_transcribea clip, andneedle_stream_transcribe_processabout 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=0to 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 Malayalam’s model card on Hugging Face lists its training datasets and their licences.