Downloads · 30 days
99
45% of all-time downloads
zindagi-technologies/whisper-small-hindi
whisper-small-hindi is a automatic speech recognition model from zindagi-technologies. Use it when you need speech turned into text. It is set up for transformers. The card lists the license as apache-2.0.
Publisher: Zindagi Technologies Pvt Ltd, New Delhi · Model card version: 1.3 (2026-09-03) Public location: https://huggingface.co/zindagi-technologies/whisper-small-hindi (published 2026-09-03)
Downloads · 30 days
99
45% of all-time downloads
All-time downloads
220
Public
Parameters
242M
967 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors967 MB · 100%
From the Hugging Face model README
openai/whisper-small fine-tuned for Hindi ASR on AI4Bharat KathbathPublisher: Zindagi Technologies Pvt Ltd, New Delhi · Model card version: 1.3 (2026-09-03) Public location: https://huggingface.co/zindagi-technologies/whisper-small-hindi (published 2026-09-03)
This is OpenAI's open-source whisper-small (244 M parameters, Apache-2.0) fully fine-tuned for
Hindi speech-to-text on 134.75 hours of the AI4Bharat Kathbath Hindi corpus. On the held-out Kathbath
Hindi test set the word error rate falls from 97.94% (base model, correctly configured for Hindi)
to 14.87%; on the independent FLEURS hi_in test set from 80.23% to 19.54%. Every number
below is derived from a file in the project repository; see Evaluation and Reproducibility.
| Base model | openai/whisper-small (244 M parameters; Radford et al., 2022) |
| Architecture | unchanged Whisper encoder–decoder; full-parameter fine-tune, no adapters |
| Language / task | Hindi (hi), transcription; no translation, no timestamps trained |
| Input | 16 kHz mono audio, ≤ 30 s per segment (Whisper's fixed window); longer audio must be chunked by the caller |
| Output | Devanagari text in Kathbath's transcription style: no punctuation, numbers written as words, English loanwords in Devanagari; emitted no Latin or Arabic script and no digits on either test set |
| Weights | model.safetensors, 966,995,080 bytes (verified equal on both evaluation hosts and the Hub backup), SHA-256 e78339cfa00a7d61592c1c82db6cbc783c8c0354e975cebe884add3efe148bed |
| Licence (weights) | Apache-2.0 (inherited from the base model) |
Training data source. AI4Bharat Kathbath, Hindi configuration, train split, obtained from
the Hugging Face dataset ai4bharat/Kathbath (gated, auto-approved on accepting the terms;
licence cc-by-4.0 per the dataset card's metadata, visible after access is granted; the
packaging is CC0). Kathbath is described in Javed et al. (2022), IndicSUPERB
(arXiv:2208.11761): 1,684 hours of read speech across 12 Indian languages from 1,218
contributors in 203 districts, collected with a maker–checker verification flow; every sentence
is spoken once, and the corpus provides a speaker-disjoint ("test-unknown") test split. We
verified on the data actually used that no test speaker appears in training (below).
Version. Dataset fingerprint of the train split as served on 2026-09-02: 9638f862dc22c910
(valid: 623dd9832d844bba), recorded in logs/download_manifest.json. Rows: 91,752 train /
3,151 valid. Measured duration: train 134.75 h (mean clip 5.29 s, max 20.06 s),
valid 4.84 h (logs/train_data_hours.json). Hindi speakers in the training split: 101.
Preprocessing (scripts/train.py, configs/train_small.json):
logs/train/train_full.log);<|hi|><|transcribe|><|notimestamps|>;valid (seed 42) used for dev-WER.| Hyper-parameter | Value |
|---|---|
| Epochs / optimizer steps | 3 / 8,604 |
| Effective batch size | 32 (16 × 2 gradient accumulation) |
| Learning rate / schedule | 1e-05 / linear decay, 500 warm-up steps |
| Optimizer | adamw_bnb_8bit (8-bit AdamW) |
| Precision | bf16; gradient checkpointing on |
| Seed | 42 |
| Model selection | best dev-WER checkpoint (evaluated every 1,000 steps) — the final step (12.62% at step 8,604) |
| Hardware / time | 1 × NVIDIA RTX 4090 (24 GB), train_runtime 98 min (1.464 steps/s) |
| Final training loss | 0.2016 |
| Software | transformers 5.16.1, torch 2.8.0+cu128, datasets 5.0.1, bitsandbytes 0.50.2 (full list: logs/pod_env_freeze.txt) |
Dev-WER (Vistaar-normalized) at steps 1,000 … 8,000 and final: 22.19, 17.78, 15.03, 14.70, 14.19, 13.39, 13.20, 12.96, 12.62.
Identical protocol for the base and fine-tuned model (scripts/eval.py): greedy decoding,
language="hindi", task="transcribe", no timestamps, max_new_tokens=440, bf16. Headline
WER/CER use the AI4Bharat/Vistaar text normalization (strip punctuation and danda marks →
indic-nlp-library Hindi normalizer → collapse whitespace), applied identically to reference and
hypothesis; raw (un-normalized) figures are given alongside.
| Test set | n | Model | WER | CER | WER (raw) | CER (raw) |
|---|---|---|---|---|---|---|
| Kathbath Hindi test (held-out) | 1,927 | whisper-small (zero-shot) | 97.94% [90.00, 106.31] | 58.64% | 99.44% | 59.25% |
| fine-tuned (this work) | 14.87% [14.17, 15.52] | 5.18% | 14.87% | 5.18% | ||
| relative reduction | −84.8% | −91.2% | ||||
| FLEURS hi_in test (independent) | 418 | whisper-small (zero-shot) | 80.23% [70.80, 89.36] | 45.60% | 82.23% | 46.14% |
| fine-tuned (this work) | 19.54% [18.39, 20.77] | 7.74% | 20.01% | 7.89% | ||
| relative reduction | −75.6% | −83.0% |
Test-set integrity: the Kathbath test set is the official Vistaar benchmark archive
(SHA-256 cb7d4fcdef4d3dc6…), cross-checked 100% against an independent mirror; a pre-training
audit found 0 file-name overlaps and 2 verbatim transcript duplicates with the training split, which were
excluded (n = 1,929 → 1,927); test and training speakers are disjoint (20 vs 101, overlap 0).
FLEURS hi_in test: 418 recordings of 265 sentences from the official parquet (the dataset card's
"920" is stale). The FLEURS runs are the corrected runs of 2026-09-03: a first version of the
evaluation set had scored only 265 distinct recordings for the 418 rows because files were keyed on
the FLEURS sentence id; the builder was fixed and both models re-evaluated (D2 report, §8).
Full report with per-utterance statistics, commands and the audit trail: D2 benchmark report
(whitepaper/D2_BENCHMARK.md).
max_new_tokens up to
440 for dense 30 s segments. The base model's near-100% zero-shot WER is dominated by
repetition loops; with beam search (5) it reaches 59.81% on Kathbath, still four times the
fine-tuned model's 14.87% (D2 §8.3).import torch
from transformers import WhisperForConditionalGeneration, WhisperProcessor
repo = "zindagi-technologies/whisper-small-hindi"
processor = WhisperProcessor.from_pretrained(repo, language="hindi", task="transcribe")
model = WhisperForConditionalGeneration.from_pretrained(repo, dtype=torch.float32).eval()
# `audio` is a 16 kHz mono float32 numpy array of up to 30 s
features = processor.feature_extractor([audio], sampling_rate=16000, return_tensors="pt").input_features
with torch.no_grad():
ids = model.generate(input_features=features, max_new_tokens=440, num_beams=1)
print(processor.batch_decode(ids, skip_special_tokens=True)[0])
scripts/, configs/train_small.json, results/, logs/).logs/pod_env_freeze.txt (training host) and
logs/pod/rerun/rerun_env_freeze.txt (protocol-v3 evaluation host); the scripts on both
hosts were hash-verified against the committed versions (83088d3 and e0941aa).logs/d1_model_manifest.json.openai/whisper-small.ai4bharat/Kathbath;
packaging CC0; the Hub access terms were accepted by the publisher on 2026-09-02). Attribution: AI4Bharat, IIT Madras — Javed et al., IndicSUPERB: A Speech
Processing Universal Performance Benchmark for Indian languages, arXiv:2208.11761 (2022).google/fleurs; Conneau et al., FLEURS: Few-shot Learning Evaluation of Universal
Representations of Speech, arXiv:2205.12446, 2022).AI4Bharat/vistaar) using indic-nlp-library.@misc{zindagi2026whispersmallhindi,
title = {whisper-small-hindi: openai/whisper-small fine-tuned for Hindi ASR on AI4Bharat Kathbath},
author = {Zindagi Technologies Pvt Ltd},
year = {2026},
note = {Hugging Face model card, version 1.3}
}
Zindagi Technologies Pvt Ltd, New Delhi — https://zindagitech.com