This model is a fine-tuned version of
Noobbbbb/whisper-small-bn
on the
Noobbbbb/bengali-ai-asr-80k dataset,
for automatic speech recognition (ASR) in Bengali.
Training was continued for 5 additional epochs from the Stage 1 checkpoint.
This was run on an out-of-domain evaluation set (i.e. not the in-domain validation
subset used for Stage 1 tracking). Compared to Stage 1's in-domain validation numbers,
WER improved (40.75% → 38.90%) while CER is slightly higher (12.62% → 13.98%) —
consistent with evaluating on different, harder data rather than a straightforward
regression.
Qualitatively, Stage 2 predictions track the reference more closely than Stage 1
(fewer inserted/garbled syllables), though small substitution and diacritic errors remain.
1from transformers import WhisperProcessor, WhisperForConditionalGeneration
2import torch, librosa
3
4repo_id = "Noobbbbb/bengali-ai-asr-80k" # update if you rename the repo
5
6processor = WhisperProcessor.from_pretrained(repo_id)
7model = WhisperForConditionalGeneration.from_pretrained(repo_id)
8
9model.generation_config.language = "bengali"
10model.generation_config.task = "transcribe"
11
12waveform, sr = librosa.load("audio.wav", sr=16000, mono=True)
13inputs = processor(waveform, sampling_rate=16000, return_tensors="pt")
14
15with torch.no_grad():
16 predicted_ids = model.generate(inputs["input_features"])
17
18transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)[0]
19print(transcription)
1from transformers import pipeline, WhisperForConditionalGeneration, WhisperProcessor, AutoModelForSpeechSeq2Seq
2
3model_id = "Noobbbbb/whisper-small-bn-v2"
4
5model = AutoModelForSpeechSeq2Seq.from_pretrained(model_id)
6
7if isinstance(model.generation_config.eos_token_id, list):
8 model.generation_config.eos_token_id = model.generation_config.eos_token_id[0]
9
10if isinstance(model.config.eos_token_id, list):
11 model.config.eos_token_id = model.config.eos_token_id[0]
12
13processor = WhisperProcessor.from_pretrained(model_id)
14
15waveform, _ = librosa.load("/content/yt.mp3")
16
17pipe = pipeline(
18 "automatic-speech-recognition",
19 model=model,
20 tokenizer=processor.tokenizer,
21 feature_extractor=processor.feature_extractor,
22 device=0 if torch.cuda.is_available() else -1,
23)
24
25result = pipe(
26 waveform,
27 return_timestamps=True, # enables long-form transcription
28 generate_kwargs={"language": "bengali"}
29)