dev-ahmedhany/whisper-large-v3-arabic-ft-v3

Model

1

stars

3

commits

1

repos using this model

1

linked in READMEs

May 2, 2026

updated

arabic
automatic-speech-recognition
model-index
multi-dialect
safetensors
transformers
whisper
Browse cluster: Speech Recognition and Audio Processing

README

Whisper-large-v3 — Arabic 4-dialect FT v3 (merged HF safetensors)

The float32 PyTorch safetensors version of openai/whisper-large-v3 (1.55 B base) fine-tuned with QLoRA on 38 hours of dialect-balanced Arabic. The "v3" of the project — bigger base + bigger data than the v2 turbo variant.

This is the transformers-ready merged model. For production CPU inference, prefer the int8 CT2 build at whisper-large-v3-arabic-ft-v3-ct2-int8 (1.6 GB, real-time on commodity CPU). For further fine-tuning or to inspect the training trajectory, use the LoRA adapter repo which has every save during training as a Git revision.

Headline WER (n=100/dialect, eval at int8/beam=2/threads=8)

50% Casablanca + 50% broadcast for Egyptian/Levantine; 100% Casablanca UAE for Gulf; 100% FLEURS for MSA. Same exact recordings + decoding config used for both rows.

DialectTest compositionZero-shot Whisper-large-v3This model (v3-ft)Δ
MSAFLEURS broadcast8.51%10.52%+2.01 pp
Egyptian50 Casablanca + 50 MGB-338.48%23.90%−14.58 pp
Levantine50 Casablanca JO + 50 MASC37.70%30.63%−7.07 pp
GulfCasablanca UAE52.72%41.46%−11.26 pp
avg-434.35%26.63%−7.72 pp

v3-ft beats zero-shot Whisper-large-v3 by 7.72 pp average WER, with double-digit gains on Egyptian and Gulf. MSA loses 2.01 pp — known dialect-vs-MSA tradeoff that v4 (planned) addresses.

Quickstart with transformers

from transformers import pipeline

asr = pipeline("automatic-speech-recognition",
               model="dev-ahmedhany/whisper-large-v3-arabic-ft-v3",
               torch_dtype="bfloat16", device_map="cuda")
out = asr("audio.wav", generate_kwargs={"language": "ar", "task": "transcribe"})
print(out["text"])

For CPU production deployment, use the CT2 int8 build instead — same weights, ~5× faster on CPU.

Training recipe

  • Base: openai/whisper-large-v3 (1.55 B params)
  • QLoRA: NF4 + bf16, r=8, α=16, dropout 0.05, target modules q/v/k/out_proj + fc1/fc2
  • Optimizer: paged_adamw_8bit, lr=1e-4, warmup 0.1
  • Effective batch 16 (per-device 4 × grad-accum 4), gradient_checkpointing
  • Best checkpoint: step 4750 of 10000 (early-stop after plateau across ckpts 5000-6000)
  • Training data: ~38 h, 26,817 train / 924 val rows
    • MSA (9.6 h): Common Voice 18 Arabic (capped 15 h)
    • Egyptian (18.6 h): Casablanca Egypt + MGB-3 + cleaned MGB-3
    • Levantine (9.8 h): Casablanca Jordan + Palestine + MASC
    • Gulf (1.9 h): Casablanca UAE + Yemen
  • Maghrebi excluded (84.7% zero-shot WER too far gone for QLoRA budget)
  • Compute: ~25-28 h on a single GCP L4

Limitations

  • Maghrebi out of scope — zero-shot-quality (≥80% WER) on Algerian/Moroccan/Tunisian dialects.
  • MSA: zero-shot Whisper-large-v3 is slightly better. If your traffic is overwhelmingly broadcast Arabic, plain zero-shot is fine.
  • Gulf test is Casablanca-only — no public broadcast Gulf corpus available.

Citation

@misc{hany2026whisperarabic,
  title        = {Production-Aware Fine-Tuning of Whisper Variants for Multi-Dialect
                  Arabic ASR: A Cross-Platform CPU Inference Study},
  author       = {Hany, Ahmed},
  year         = {2026},
  howpublished = {Preprint, arXiv (in preparation)},
  url          = {https://github.com/dev-ahmedhany/whisper-arabic-dialects},
}

License

Apache-2.0 (inherits from openai/whisper-large-v3).

Contributors

dev-ahmedhany

3 commits

dev-ahmedhany/whisper-large-v3-arabic-ft-v3

Model

1

stars

3

commits

1

repos using this model

1

linked in READMEs

May 2, 2026

updated

arabic
automatic-speech-recognition
model-index
multi-dialect
safetensors
transformers
whisper
Browse cluster: Speech Recognition and Audio Processing

README

Whisper-large-v3 — Arabic 4-dialect FT v3 (merged HF safetensors)

The float32 PyTorch safetensors version of openai/whisper-large-v3 (1.55 B base) fine-tuned with QLoRA on 38 hours of dialect-balanced Arabic. The "v3" of the project — bigger base + bigger data than the v2 turbo variant.

This is the transformers-ready merged model. For production CPU inference, prefer the int8 CT2 build at whisper-large-v3-arabic-ft-v3-ct2-int8 (1.6 GB, real-time on commodity CPU). For further fine-tuning or to inspect the training trajectory, use the LoRA adapter repo which has every save during training as a Git revision.

Headline WER (n=100/dialect, eval at int8/beam=2/threads=8)

50% Casablanca + 50% broadcast for Egyptian/Levantine; 100% Casablanca UAE for Gulf; 100% FLEURS for MSA. Same exact recordings + decoding config used for both rows.

DialectTest compositionZero-shot Whisper-large-v3This model (v3-ft)Δ
MSAFLEURS broadcast8.51%10.52%+2.01 pp
Egyptian50 Casablanca + 50 MGB-338.48%23.90%−14.58 pp
Levantine50 Casablanca JO + 50 MASC37.70%30.63%−7.07 pp
GulfCasablanca UAE52.72%41.46%−11.26 pp
avg-434.35%26.63%−7.72 pp

v3-ft beats zero-shot Whisper-large-v3 by 7.72 pp average WER, with double-digit gains on Egyptian and Gulf. MSA loses 2.01 pp — known dialect-vs-MSA tradeoff that v4 (planned) addresses.

Quickstart with transformers

from transformers import pipeline

asr = pipeline("automatic-speech-recognition",
               model="dev-ahmedhany/whisper-large-v3-arabic-ft-v3",
               torch_dtype="bfloat16", device_map="cuda")
out = asr("audio.wav", generate_kwargs={"language": "ar", "task": "transcribe"})
print(out["text"])

For CPU production deployment, use the CT2 int8 build instead — same weights, ~5× faster on CPU.

Training recipe

  • Base: openai/whisper-large-v3 (1.55 B params)
  • QLoRA: NF4 + bf16, r=8, α=16, dropout 0.05, target modules q/v/k/out_proj + fc1/fc2
  • Optimizer: paged_adamw_8bit, lr=1e-4, warmup 0.1
  • Effective batch 16 (per-device 4 × grad-accum 4), gradient_checkpointing
  • Best checkpoint: step 4750 of 10000 (early-stop after plateau across ckpts 5000-6000)
  • Training data: ~38 h, 26,817 train / 924 val rows
    • MSA (9.6 h): Common Voice 18 Arabic (capped 15 h)
    • Egyptian (18.6 h): Casablanca Egypt + MGB-3 + cleaned MGB-3
    • Levantine (9.8 h): Casablanca Jordan + Palestine + MASC
    • Gulf (1.9 h): Casablanca UAE + Yemen
  • Maghrebi excluded (84.7% zero-shot WER too far gone for QLoRA budget)
  • Compute: ~25-28 h on a single GCP L4

Limitations

  • Maghrebi out of scope — zero-shot-quality (≥80% WER) on Algerian/Moroccan/Tunisian dialects.
  • MSA: zero-shot Whisper-large-v3 is slightly better. If your traffic is overwhelmingly broadcast Arabic, plain zero-shot is fine.
  • Gulf test is Casablanca-only — no public broadcast Gulf corpus available.

Citation

@misc{hany2026whisperarabic,
  title        = {Production-Aware Fine-Tuning of Whisper Variants for Multi-Dialect
                  Arabic ASR: A Cross-Platform CPU Inference Study},
  author       = {Hany, Ahmed},
  year         = {2026},
  howpublished = {Preprint, arXiv (in preparation)},
  url          = {https://github.com/dev-ahmedhany/whisper-arabic-dialects},
}

License

Apache-2.0 (inherits from openai/whisper-large-v3).

Contributors

dev-ahmedhany

3 commits