Shruti Bengali
Speech to text for Bengali and English, on your device, with no server.
Try it now · in your browser · free, no login
Speak Bengali, English or both. Shruti Bengali 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 Bengali, English or both.
The language is detected for you. English words stay in English (Latin script) and are underlined here; Bengali is written in Bengali 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 Bengali · 29.7 MB · Bengali and English · 3 November 2026
On conversations that mix in English, fewer errors than Bengali models three and five times its size.
Shruti Bengali writes Bengali in Bengali script and keeps English words in English, the way people type: বাচ্চাদের রবীন্দ্রসঙ্গীতের rehearsal শনিবার. On real conversations that mix in English, scored with English words written in English, it makes fewer errors than Vosk Bengali (90 MB) and IndicConformer Bengali (138 MB): DiarBench 36.0 against 42.8 and 39.3. It writes about half of the English words in English letters; both of those models write none. It runs offline on a five-year-old phone, 12.6× 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 Bengali | 29.7 MB | 36.0 | 29.9 | 22.2 |
| Whisper tiny | 43.5 MB | 540.9 | 361.6 | 403.7 |
| Whisper base | 81.8 MB | 339.9 | 176.7 | 214.5 |
| Vosk Bengali int8 (third-party copy) | 28.6 MB | 43.3 | 20.9 | 22.4 |
| Vosk Bengali (Zipformer) | 90.0 MB | 42.8 | 20.8 | 21.7 |
| Dolphin-base int8 | 103.7 MB | 93.0 | 41.1 | 45.9 |
| IndicConformer Bengali | 137.7 MB | 39.3 | 20.7 | 12.1 |
Word error rate %, lower is better; 200 clips per set, the same scorer for every model, measured 2 November 2026. DiarBench is conversation that mixes in English, scored with English words written in English; FLEURS and Kathbath are read Bengali. With the English words dropped from the DiarBench reference, both larger models are ahead (34.8 and 38.5 against 41.8). SraVaani-1.0 (909 MB) is ahead on every set (DiarBench 34.6). Whisper adds words, so its rates pass 100%.
Where it falls short
- On read Bengali, Vosk Bengali and IndicConformer Bengali are clearly more accurate (FLEURS 20.8 and 20.7 against 29.9), and so is a 28.6 MB int8 copy of Vosk Bengali (20.9), slightly smaller than Shruti Bengali.
- Some English words come out in Bengali script (derby as ডার্ভিটা), and spelling variants count as errors.
- Noise, music and speaker-played audio were not tested.
Try Shruti Bengali Shruti Bengali 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-bengali.cact, from Shruti Bengali's Hugging Face repo
./needle --model shruti-bengali.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-bengali.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 Bengali’s model card on Hugging Face lists its training datasets and their licences.