# Shruti, speech to text for Hindi, English and Hinglish that runs in your browser

Canonical: https://udgamlabs.com/blog/shruti · Updated: 2026-10-19

> One 29.5 MB model that writes Hindi, English and Hinglish offline, on a phone or in a browser tab. 100× smaller than Whisper large-v3 and more accurate on Hindi.

Release · 2026-10-19 · By Jitesh K Prasad

Most people in India do not speak one language at a time. "आज office जाते वक़्त traffic बहुत ज़्यादा था, तो मैंने boss को
message कर दिया" is an ordinary sentence. Speech-to-text tools usually make you choose: Hindi or English, a large model
or a server in the cloud.

Shruti is our attempt at the other option: **one small file that hears Hindi, English and Hinglish, and runs on the
device you already have**, including inside a browser tab with the internet switched off. *Shruti* (श्रुति) is Sanskrit for
"that which is heard".

## What we built

- **Shruti**, a 55M-parameter speech-to-text model in one **29.5 MB** file (4-bit weights, 8-bit activations).
- It writes Hindi in Devanagari and keeps English words in English, the way people type Hinglish: *मेरा order कब आएगा*.
- It is **built on [Cactus Whistle](https://huggingface.co/Cactus-Compute/whistle)**, an open speech model from Cactus
  Compute. We added 714 Devanagari vocabulary pieces and fine-tuned all 55M weights, with 4-bit quantisation-aware
  training, on 2,732 hours of openly licensed Indian speech.
- It runs offline in Cactus's open-source needle engine: on a Mac, Linux, Windows, Android, iOS, and in the browser as
  WebAssembly.
- Open weights, **Apache-2.0**.

## The result

> **Result.** 100× smaller than OpenAI's Whisper large-v3, and more accurate on Hindi. On English, Whisper is clearly better.

We ran Whisper large-v3 ourselves, on the same test clips, with the same text normaliser and scorer as Shruti. Whisper's
file is 3,087 MB; Shruti's is 29.5 MB. Word error rate, lower is better:

| Test (clips) | Shruti | Whisper large-v3 |
|---|---|---|
| Monsoon Hindi, leaderboard scorer (753) | **20.46** | 33.29 |
| FLEURS Hindi (418) | **20.14** | 28.88 |
| Lahaja, Hindi accents (first 300) | **22.87** | 31.19 |
| Svarah, Indian English (first 300) | 21.35 | **7.39** |
| LibriSpeech, US English (first 300) | 5.76 | **2.25** |
| Words invented on 100 silent clips | **0** | 538 |

Whisper ran on a Mac GPU in fp16 with beam 5 and the language set; Shruti ran in its on-device engine. Whisper's beam
search without its temperature fallback sometimes repeats itself; with those clips removed, Shruti still leads on every
Hindi set. The Hugging Face Hindi leaderboard's own Whisper large-v3 number on Monsoon, with its own decoding, is 28.17.

## Hinglish

On MUCS 2021, a test set of Hindi-English code-mixed lectures (3,136 clips), Shruti made **the fewest mistakes of the
open models we measured**: 35.21% word error rate, against 57.51% for Koyal-hi-120M, 61.14% for Vosk small and 64.48% for
IndicConformer Hindi.

Two Whisper models fine-tuned for Hinglish write everything in Roman script, so we also scored every system after
converting both sides to Roman script with the same function. Shruti stays ahead: 34.32% against 43.45% for
whisper-base-hinglish and 44.94% for whisper-tiny-hinglish-v2. Their model cards report 28.4% and 32.0% on a 250-clip
sample with their author's own converter, which we did not run, so we do not compare against those numbers.

## In your browser, with the internet off

The demo at [udgamlabs.com/models/shruti](https://udgamlabs.com/models/shruti), and now on our home page, runs the whole model inside the
page. Press **Load** once: the 29.5 MB file downloads from Hugging Face and stays in your browser. After that, transcription
happens on your device, and keeps working in airplane mode. Audio never leaves the page.

We checked it on the live site in Chrome on an Android phone, in Chrome on a Mac, and in Safari on an iPhone (in Apple's
simulator, where the model loads and transcribes a file; we have not yet tested the iPhone microphone). While you speak,
words appear once they have settled; when you stop, Shruti reads the whole recording once more for the final text.

On a 2021 Samsung Galaxy F62, which sold for about ₹18,000, the native engine transcribes a 7-second sentence in about
a second, including loading the model, with 80 MB of peak memory. In that phone's browser, the final pass takes about a
third as long as the speech.

## Where it falls short

- **Pure Hindi.** Hindi-only models about 16× larger are clearly more accurate: Koyal-hi-120M scores 9.56% on FLEURS Hindi
  and IndicConformer 11.31%, against Shruti's 19.92%.
- **English.** Whisper large-v3 is far better on Indian English (7.39% against 21.35% on the same Svarah clips) and on
  LibriSpeech.
- **Names it has never heard** are spelled by sound. In our own phone test it wrote its name as "सूती" and Udgam Labs as
  "outgum labs".
- **Far-away or speaker-played audio.** Played from a small computer speaker across a desk, Hinglish was often taken
  for English; the same clips given as files were transcribed correctly. Speak close to the device.
- **Noise and music** were not tested. There is no punctuation, and numbers come out as words.

## Try it

- In your browser, on your phone or laptop: [udgamlabs.com/models/shruti](https://udgamlabs.com/models/shruti)
- The demo on Hugging Face: [huggingface.co/spaces/udgamlabs/Shruti](https://huggingface.co/spaces/udgamlabs/Shruti)
- Weights: [huggingface.co/udgamlabs/Shruti](https://huggingface.co/udgamlabs/Shruti)
- Code and examples (Python, command line, a web page you can host): [github.com/udgamlabs/shruti](https://github.com/udgamlabs/shruti)
- The technical report, with every comparison: [udgamlabs.com/research/shruti](https://udgamlabs.com/research/shruti)

Shruti stands on Cactus Compute's Whistle model and needle engine, and on openly licensed speech from AI4Bharat
(IndicVoices, Shrutilipi, NPTEL, Kathbath, Rural Women ASR), ARTPARK-IISc Vaani, Mozilla Common Voice, LibriSpeech,
MUCS 2021 and Google FLEURS. Thank you to everyone who built and shared them.

---

## 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
