Results
Normalized WER/CER (%) on the frozen validation splits. Every system is scored with one
identical Arabic normalizer applied to hypotheses and references —
eval/asr_score.py.
Table with columns: System, Quran WER, Quran CER, Hadith WER, Hadith CER, MGB-2 WER, MGB-2 CER| System | Quran WER | Quran CER | Hadith WER | Hadith CER | MGB-2 WER | MGB-2 CER |
|---|
| whisper-large-v3 (zero-shot) | 3.50 | 0.81 | 7.49 | 2.22 | 10.85 | 4.76 |
| Cohere Transcribe Arabic | 3.96 | 2.73 | 3.99 | 1.46 | 6.77 | 3.60 |
| this model | 0.33 | 0.10 | 3.60 | 0.99 | 9.52 | 2.92 |
Split sizes: Quran 7,280 clips · Hadith 4,752 · MGB-2 494.
On sacred text this is the state of the art: 0.33 vs 3.96 WER on Quran against the strongest
open Arabic model — a ≈12× relative reduction — and 3.60 vs 3.99 on Hadith. Relative to its own
zero-shot base: −91 % Quran, −52 % Hadith, −12 % MGB-2.
On general broadcast MSA we are competitive, not leading. Cohere reaches 6.77 WER to our
9.52 — but on CER we are ahead, 2.92 vs 3.60, meaning our errors are shallow near-misses
rather than dropped or wrong words. MGB-2 is strictly zero-shot for this model and may be
in-domain for the others.
Usage
import torchfrom transformers import pipeline pipe = pipeline( "automatic-speech-recognition", model="Dr-AliGomaa/whisper-large-v3-ar", torch_dtype=torch.float16, device="cuda:0", chunk_length_s=30,) # The decoding config the reported numbers use -- fixed, not tuned per dataset.gen = { "language": "arabic", "task": "transcribe", "num_beams": 5, "temperature": (0.2), "condition_on_prev_tokens": False, "compression_ratio_threshold": 1.35, "logprob_threshold": -1.0, "return_timestamps": False, "max_new_tokens": 444,} print(pipe("audio.mp3", generate_kwargs=gen)["text"])
This model does not emit timestamps. For time-aligned output use
whisper-large-v3-ar-eg-timestamps.
Two things that will otherwise cost you accuracy
1. Run the audio pipeline first. The model was trained on optimized audio: silence-trimmed,
loudness-normalized to −16 LUFS, edge-padded 100 ms, gain-corrected, segmented ≤ 30 s. Applying
the same chain at inference is required to reproduce these numbers — it is the single most
common reason people can't. Scripts:
pipeline/.
2. Score with eval/asr_score.py. Arabic WER moves materially with the normalizer, so a
number computed under a different one is not comparable to the table above.
Training
Table | |
|---|
| Base | openai/whisper-large-v3 |
| Trained on | Quran + Hadith + Common Voice 17 + FLEURS + MediaSpeech. No Egyptian, no MGB-2. |
| Learning rate | 5e-6, linear decay with warmup |
| Batch | 4 per device × 8 GPUs = 32 effective |
| Precision / distributed | bf16 + tf32, DeepSpeed ZeRO |
| Weight decay | 0.05 (no dropout, no label smoothing) |
| Augmentation | waveform (MUSAN + ESC-50 + Gaussian, band-pass) via audiomentations; Quran/Hadith oversampled through independently-augmented passes |
Full recipe: training/training.py.
Intended use and limits
- For transcription assistance and research. Not an authority on the correct text of the
Quran or hadith — verify output against canonical written sources before any religious use.
- Output is Imlāʾī orthography without tashkīl, and numerals are written as Arabic
words — do not use for numeric or mathematical transcription.
- Trained overwhelmingly on classical/MSA register; it is not a dialect model.
- The religious content of this work was reviewed and approved by Prof. Ali Gomaa, former
Grand Mufti of Egypt and member of Al-Azhar's Council of Senior Scholars, under whose
patronage it was carried out.
Citation
@misc{kotb2026quranhadith, title = {A Quran and Hadith Speech Resource and Benchmark for Arabic ASR, with Professional-Reciter Training and Validation}, author = {Mohamed Kotb}, year = {2026}, publisher = {Zenodo}, doi = {10.5281/zenodo.21927416}, url = {https://doi.org/10.5281/zenodo.21927416}, note = {Preprint}}