Downloads · 30 days
101
68% of all-time downloads
princetunes/whisper-small-gujarati-talpada
whisper-small-gujarati-talpada is a automatic speech recognition model from princetunes. Use it when you need speech turned into text.
A fine-tuned Whisper Small ASR model for Gujarati (gu), trained so it also recognizes Talpada — the regional/village dialect of Gujarati — which vanilla Whisper frequently misses.
Downloads · 30 days
101
68% of all-time downloads
All-time downloads
148
Public
Parameters
242M
484 MB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors484 MB · 99%
From the Hugging Face model README
A fine-tuned Whisper Small ASR model for Gujarati (gu), trained so it also recognizes Talpada — the regional/village dialect of Gujarati — which vanilla Whisper frequently misses.
Model is saved in fp16 (~484 MB).
Base model: openai/whisper-small (244M params)
Dataset: shunyalabs/gujarati-speech-dataset — a large collection of Gujarati speech + transcripts, streamed from Hugging Face as parquet shards.
Fine-tuning strategy (memory-efficient, runs on 16 GB GPU / Colab free tier):
Result: training loss dropped 1.65 → 0.232.
Measured on 30 held-out samples from the same dataset:
| Metric | Value |
|---|---|
| Training loss (final) | 0.232 |
| Held-out WER | 72.37% |
⚠️ Read the WER carefully: during eval, input audio was truncated to 10 seconds while the reference transcripts were the full sentences (up to ~25s of speech). The model could not transcribe words it never heard, which inflates WER substantially. Qualitatively the model produces phonetically accurate Gujarati — most errors are minor spelling variants (e.g. ક્રાઉન ઑફિસ → ક્રાઉન ઑફેસ), not missed words.
Comparison to other models: no strict apples-to-apples baseline was run on the same held-out set. Gujarati is a weak language for vanilla Whisper, and this fine-tune is a domain adaptation for Gujarati/Talpada speech, not a state-of-the-art benchmark model. Expect it to clearly beat stock whisper-small on spoken Gujarati, while large models (whisper-large-v3) will still win on formal/news audio — this model's edge is dialect words and low-resource robustness.
from transformers import WhisperProcessor, WhisperForConditionalGeneration
import torch
processor = WhisperProcessor.from_pretrained("princetunes/whisper-small-gujarati-talpada")
model = WhisperForConditionalGeneration.from_pretrained("princetunes/whisper-small-gujarati-talpada")
model.to("cuda" if torch.cuda.is_available() else ("mps" if torch.backends.mps.is_available() else "cpu"))
model.eval()
import librosa
audio, sr = librosa.load("your_audio.wav", sr=16000, mono=True)
feats = processor(audio, sampling_rate=16000, return_tensors="pt").input_features.to(model.device)
forced = processor.get_decoder_prompt_ids(language="gujarati", task="transcribe")
with torch.no_grad():
ids = model.generate(input_features=feats, forced_decoder_ids=forced, max_length=225)
print(processor.batch_decode(ids, skip_special_tokens=True)[0])
Training was done in a Colab notebook (streamed data loading, frozen-encoder decoder fine-tune). See the shunyalabs/gujarati-speech-dataset repo for the raw data; contact the model author for the notebook.