Shruti: every language
Models · Shruti · 29.7 MB · released 3 November 2026

Shruti Tamil

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

Try it now · in your browser · free, no login

Speak Tamil, English or both. Shruti Tamil 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.

Load Shruti, then press Record and speak Tamil, English or both.

The language is detected for you. English words stay in English (Latin script) and are underlined here; Tamil is written in Tamil 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 Tamil · 29.7 MB · Tamil and English · 3 November 2026

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

Shruti Tamil writes Tamil in Tamil script and keeps English words in English, the way people type: கல்யாணத்துக்கு catering order confirm பண்ணிட்டேன். Every other open model under 100 MB we measured gets more Tamil words wrong than right. On conversations that mix in English it makes fewer errors than IndicConformer Tamil, about five times its size, when English words are written in English (DiarBench 52.5 against 58.7). It runs offline on a five-year-old phone, 10.8× faster than real time in 64 MB of memory with the native engine, and it invented no words on 100 silent clips.

ModelFileFLEURSKathbathDiarBench
Shruti Tamil29.7 MB38.533.252.5
Whisper tiny43.5 MB226.7239.6244.8
Whisper base81.8 MB124.5108.8152.5
Thedal v11 (non-commercial)102.6 MB42.238.170.1
IndicConformer Tamil137.7 MB27.825.058.7
deepdml whisper-base-ta290.4 MB38.739.181.1

Word error rate %, lower is better; 200 clips per set, the same scorer for every model, measured 2 November 2026. FLEURS and Kathbath are read Tamil; DiarBench is conversation that mixes in English, scored with English words written in English. With the English words dropped from the reference, IndicConformer Tamil is ahead (51.4 against 62.2). On FLEURS, deepdml’s whisper-base-ta (290 MB as published) is level with Shruti Tamil. Whisper adds words, so its rates pass 100%.

Where it falls short

  • On pure Tamil, IndicConformer Tamil (about 5× larger) makes about 28% fewer errors on FLEURS and 25% fewer on Kathbath.
  • Nearby number words can be swapped (நூத்தம்பது heard as மூத்தம்பது), and some English loanwords come out in Tamil script.
  • Language detection can pick English for Tamil speech with many English words.
  • Noise, music and speaker-played audio were not tested.

Try Shruti Tamil Shruti Tamil 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-tamil.cact, from Shruti Tamil's Hugging Face repo
./needle --model shruti-tamil.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-tamil.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 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 Tamil’s model card on Hugging Face lists its training datasets and their licences.

Every Shruti language