Loading…
Loading…
A fine-tune of openai/whisper-tiny that
transcribes Hindi, English, and code-switched Hinglish Indian speech directly into
natural Roman script — the way people actually type Hinglish (kya scene hai, not क्या सीन है
and not a stiff academic transliteration).
This is a small model. It is fast and convenient, not state-of-the-art. See Limitations.
The model emits Roman text directly from audio. Target style (illustrative):
| Speech (reference) | Model output style |
|---|---|
| "…with my daughter और जो मेरी daughter है उसको बहुत पसंद है diwali…" | …with my daughter aur jo meri daughter hai usko bahut pasand hai diwali… |
| "वीर बड़े भाई known for his curiosity and दीया छोटी बहन…" | veer bade bhai known for his curiosity and deeya chhoti bahan… |
| "आपका hometown किस city में है…" | aapka hometown kis city mein hai… |
| "दिवाली मनाते हैं साथ में पटाखे जलाते हैं" | diwali manate hain saath mein patakhe jalate hain |
English spans are kept verbatim; Hindi spans come out in natural Roman spelling.
from transformers import pipeline
asr = pipeline("automatic-speech-recognition",
model="<your-username>/whisper-tiny-hinglish",
chunk_length_s=30) # for clips longer than 30 s
print(asr("clip.wav")["text"])
Or with raw 16 kHz mono audio:
import soundfile as sf
audio, sr = sf.read("clip.wav") # resample to 16 kHz mono if needed
print(asr({"raw": audio, "sampling_rate": 16000})["text"])
The model does not require a forced language token — it was trained to emit Roman for every input. No post-processing / transliteration is needed.
Fine-tuned on Indian-accent, read- and prompted-speech corpora, chosen for their heavy Hindi–English code-switching:
| Source | Content |
|---|---|
| HiACC (adult + children) | Indian-accented Hindi/English/Hinglish read & conversational speech |
| MUCS (Hindi–English) | Code-switched Hindi–English utterances (Kaldi-segmented) |
| Common Voice (Hindi / Indic) | Crowdsourced Hindi read speech |
Utterances were filtered to ~0.5–20 s. Original transcripts are mixed Devanagari + Latin.
The goal is Roman output. So every training target was converted to natural Roman before fine-tuning:
क्या → kya, है → hai, जो → jo), not academic IAST.The model then learns audio → Roman end-to-end, so LIPI is only a data-prep tool and is not needed at inference.
crackers → crackers/crakers), since the training signal is Indian-accented and
Hindi-weighted.hai/hain, ki/kii). There is no single "correct" Roman spelling.chunk_length_s=30 for longer audio, quality
on very long recordings is untested.The model weights are released under the MIT License, the same as the base model openai/whisper-tiny. You can use, modify, and redistribute the model, including in commercial and free apps.
The model was fine-tuned on:
No dataset audio or transcripts are distributed with this model. MUCS is CC BY-SA 4.0. Whether ShareAlike terms carry over to model weights trained on such data is legally unsettled. If this matters for your use case, please review those terms yourself.
@misc{whisper-tiny-hinglish,
title = {Whisper-tiny Hinglish (Romanized)},
author = {Abhishek Gautam},
year = {2026},
note = {Fine-tuned openai/whisper-tiny for romanized Hindi/English/Hinglish ASR;
targets romanized with LIPI (https://github.com/ABHISHEKgauti25/lipi)}
}
openai/whisper-tiny