# Shruti Marathi

Canonical: https://udgamlabs.com/models/shruti/marathi · Updated: 2026-11-02

Models · Shruti · 29.7 MB · released 2 November 2026

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

Try it in your browser: [https://udgamlabs.com/models/shruti/marathi#try](https://udgamlabs.com/models/shruti/marathi#try)

Shruti Marathi · 29.7 MB · Marathi and English · 2 November 2026

## The most accurate open Marathi speech-to-text model under 100 MB that we measured.

Shruti Marathi writes Marathi in Devanagari and keeps English words in English, the way people type: उद्या सकाळी नऊ वाजता physics ची exam आहे. Every other open model under 100 MB we measured gets more Marathi words wrong than right. It is within 1.33× of IndicConformer Marathi’s error rate on FLEURS (29.9 against 22.4) at about a fifth of its size, and on conversations that mix in English it makes fewer errors than that model when English words are written in English. It runs offline on a five-year-old phone, 12× faster than real time in 64 MB of memory with the native engine, and it invented no words on 100 silent clips.

| Model | File | FLEURS | Kathbath | DiarBench | IndicVoices | SPRING-INX | Vaani |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Shruti Marathi | 29.7 MB | 29.9 | 24.5 | 38.2 | 22.2 | 42.9 | 32.2 |
| Whisper tiny | 44 MB | 273.1 | 278.1 | 373.9 | 321.8 | 375.6 | 338.7 |
| Whisper base | 82 MB | 177.9 | 193.2 | 402.9 | 450.2 | 420.6 | 412.3 |
| marathi-conformer-33m-moe | 136.7 MB | 41.0 | 32.2 | 76.7 | 66.0 | 77.3 | 64.0 |
| IndicConformer Marathi | 137.7 MB | 22.4 | 14.1 | 41.5 | 27.6 | 53.0 | 44.0 |

Word error rate %, lower is better; 200 clips per set, the same scorer for every model, measured 30 October to 2 November 2026. FLEURS and Kathbath are read Marathi; the other four are conversations that mix in English, scored with English words written in English. With the English words dropped from those references, IndicConformer Marathi is ahead (DiarBench 32.3 against 40.9). Whisper tiny and base add words, so their rates pass 100%.

### Where it falls short

- On pure Marathi, IndicConformer Marathi (about 5× larger) makes about a quarter fewer errors on FLEURS and about 40% fewer on Kathbath.
- Spelling variants (उशिरा/उशीरा) and joined words count as errors and are common; some English loanwords come out in Devanagari.
- It does not do Hindi: pick Hindi above for Shruti Hindi.
- Noise, music and speaker-played audio were not tested.

[Try Shruti Marathi](#try) [Shruti Marathi on Hugging Face](https://huggingface.co/udgamlabs/shruti-marathi) 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-marathi.cact, from Shruti Marathi's Hugging Face repo
./needle --model shruti-marathi.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-marathi.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](https://huggingface.co/Cactus-Compute/whistle) and runs in the [needle engine](https://github.com/cactus-compute/needle), both by Cactus Compute under Apache-2.0. The engine files on this page are Cactus’s WebAssembly build, unmodified, served with [its licence](https://udgamlabs.com/models/shruti/needle/LICENSE.txt) and [notice](https://udgamlabs.com/models/shruti/needle/NOTICE.txt). Shruti Marathi’s model card on Hugging Face lists its training datasets and their licences.

[Every Shruti language](https://udgamlabs.com/models/shruti#languages)

---

## About Udgam Labs

Udgam Labs is an independent AI research lab. We work from first principles: before we build, we understand why things work, whether we are training a model, fine-tuning one or applying AI to a new problem. Today that means open models such as Gargi, a 384M-parameter language model that comes within 2 points of Qwen2.5-0.5B on three reasoning benchmarks with about 1,000× less training data. Next come products, custom models for businesses, and AI in the physical world. Udgam (उद्गम) is Sanskrit for origin.

Udgam Labs · AI research from first principles · https://udgamlabs.com
