Views
No views yet
| Model | WER% ↓ | BLEU ↑ | METEOR ↑ | BERTScore F1 ↑ | Rank |
|---|---|---|---|---|---|
| SpecDox-Whisper-Medium | 36.25 | 53.30 | 0.7804 | 0.9405 | #1 |
| Faster Whisper (SpecDox) | 36.28 | 53.24 | 0.7811 | 0.9402 | #2 |
| Whisper Large-v3 | 42.88 | 46.86 | 0.7105 | 0.9270 | #3 |
| Whisper Medium (Baseline) | 45.33 | 44.16 | 0.6882 | 0.9226 | #4 |
| SeamlessM4T Medium | 72.04 | 18.84 | 0.3697 | 0.8429 | #5 |
Engineering Takeaway: Despite being a lighter architecture, the fine-tuned SpecDox Medium model outperforms the baseline Whisper Large-v3 by a massive 6.63% absolute reduction in WER and yields significantly higher translation quality metrics (BLEU/METEOR). This justifies the choice of Whisper Medium for production environments requiring fast inference speeds and low GPU footprints.
1from transformers import WhisperForConditionalGeneration, WhisperProcessor
2import torch
3
4device = "cuda" if torch.cuda.is_available() else "cpu"
5
6# Load the SpecDox Whisper model
7processor = WhisperProcessor.from_pretrained("Shzaib/SpecDox-Whisper-Medium")
8model = WhisperForConditionalGeneration.from_pretrained("Shzaib/SpecDox-Whisper-Medium").to(device)
9
10def translate_urdu_audio(audio_array, sampling_rate=16000):
11 inputs = processor(audio_array, sampling_rate=sampling_rate, return_tensors="pt").to(device)
12
13 # Force the decoder to translate Urdu to English
14 forced_decoder_ids = processor.get_decoder_prompt_ids(language="urdu", task="translate")
15 predicted_ids = model.generate(inputs["input_features"], forced_decoder_ids=forced_decoder_ids)
16
17 return processor.batch_decode(predicted_ids, skip_special_tokens=True)[0]