# Shruti Kannada

Canonical: https://udgamlabs.com/models/shruti/kannada · Updated: 2026-11-06

Models · Shruti · 29.7 MB · released 6 November 2026

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

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

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

## On Kannada conversations that mix in English, fewer errors than IndicConformer Kannada, a model almost five times its size, and Whisper Kannada fine-tunes up to 33 times its size.

Shruti Kannada writes Kannada in Kannada script and keeps English words in English, the way people type: ಮನೆ owner ಹತ್ತು ತಿಂಗಳ ಬಾಡಿಗೆ advance ಕೇಳ್ತಿದ್ದಾರೆ. On real Kannada conversations that mix in English, scored with English words written in English, it makes fewer errors than IndicConformer Kannada (138 MB) and the three Whisper Kannada fine-tunes we measured (151 MB to 967 MB): DiarBench 56.6 against 67.1 and 88.7 to 91.4, same clips and scorer, 2 November 2026. Over half of the words are still wrong on that test. It writes about half of the English words in English letters (53.1%); IndicConformer Kannada, SraVaani-1.0 and those fine-tunes write none. 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.

| Model | File | DiarBench | FLEURS | Kathbath |
| --- | --- | --- | --- | --- |
| Shruti Kannada | 29.7 MB | 56.6 | 33.1 | 29.4 |
| Whisper tiny | 43.5 MB | 574.5 | 305.5 | 371.7 |
| Whisper base | 81.8 MB | 248.8 | 179.5 | 178.5 |
| IndicConformer Kannada | 137.7 MB | 67.1 | 20.4 | 19.8 |
| Whisper-tiny Kannada fine-tune (vasista22) | 151.1 MB | 91.4 | 29.7 | 34.2 |
| Whisper small | 264.5 MB | 118.9 | 103.0 | 100.8 |
| Whisper-base Kannada fine-tune (vasista22) | 290.5 MB | 90.9 | 25.6 | 31.0 |
| SraVaani-1.0 | 908.8 MB | 60.7 | 19.1 | 15.3 |
| Whisper-small Kannada fine-tune (vasista22) | 967.1 MB | 88.7 | 20.8 | 26.5 |

Word error rate %, lower is better; 200 clips per set, the same scorer for every model, measured 2 November 2026. DiarBench is real conversation that mixes in English, held out for every model, scored with English words written in English; FLEURS and Kathbath are read Kannada. IndicConformer Kannada’s gap holds in a paired bootstrap (interval -13.21 to -7.82 points), with whole conversations resampled and with script ignored. SraVaani-1.0’s 60.7 does not: the two are level with script ignored, so we claim no lead over it. Whisper adds words, so its rates pass 100%. Other Kannada speech models exist that we have not measured; these results cover only the models listed here.

### Where it falls short

- Over half of the words are wrong on the conversation test: 56.6% with English in English letters and 69.5% against the native reference, with character errors of 38.78% (IndicConformer Kannada 20.72%, SraVaani-1.0 15.48%). If you try it on everyday talk, expect to correct a lot.
- On conversations scored against the native reference, which writes English words in Kannada script, IndicConformer Kannada (56.7) and SraVaani-1.0 (46.4) are clearly ahead of Shruti Kannada (69.5).
- On read Kannada, IndicConformer Kannada (almost 5× larger) and SraVaani-1.0 (about 31× larger) are ahead on both sets (FLEURS 20.4 and 19.1 against 33.1; Kathbath 19.8 and 15.3 against 29.4), and all three Whisper Kannada fine-tunes are ahead on FLEURS.
- In a phone’s browser, leaving the language to the engine went wrong: 1 of 4 English-heavy lines played into this page on 5 November came out as English words for the whole line. This page now tells the engine the language you picked, and that line stayed in Kannada script on 6 November. Plain English loses a little accuracy this way. Not yet tested with a live microphone.
- Some English words come out in Kannada script (monday as ಮಂಡೆ, laptop as ಲ್ಯಾಪ್‌ಟಾಪ್‌ನ). Real errors happen (parcel as ಭಾರಿಸಲ್ಲ, hard disk as hardness), and joined words and spelling variants count as errors.
- 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 Kannada). No Kannada speaker has reviewed this output yet.

[Try Shruti Kannada](#try) [Shruti Kannada on Hugging Face](https://huggingface.co/udgamlabs/shruti-kannada) 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-kannada.cact, from Shruti Kannada's Hugging Face repo
./needle --model shruti-kannada.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-kannada.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 Kannada’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
