2
stars
4
commits
1
linked in READMEs
May 1, 2026
updated
CTranslate2 int8 build of openai/whisper-large-v3-turbo fine-tuned with QLoRA on a dialect-balanced Arabic mix (MSA + Egyptian + Levantine + Gulf). 820 MB on disk, runs at real-time on commodity CPU.
This is the production-deployable artifact (model.bin + tokenizer + normalizer). For the float16/bf16 PyTorch version, see whisper-large-v3-turbo-arabic-ft; for the LoRA adapter (further fine-tuning), see whisper-large-v3-turbo-arabic-ft-lora. Note (2026-05): the -lora and -ft repos linked above currently host v1 weights (LoRA r=32). The int8 here is v2 (r=8, the recipe that survives int8 quantization without WER regression). See paper §6.2/§6.5.
50% Casablanca + 50% broadcast (MGB-3 / MASC) for Egyptian and Levantine; 100% Casablanca UAE for Gulf (no public broadcast Gulf source); 100% FLEURS broadcast for MSA. Same exact recordings + decoding config used for both rows.
| Dialect | Test composition | Zero-shot turbo CT2 int8 | This model (v2-ft) | Δ |
|---|---|---|---|---|
| MSA | FLEURS (broadcast) | 10.20% [8.29, 12.19] | 11.42% [8.99, 14.31] | +1.22 pp |
| Egyptian | 50 Casablanca + 50 MGB-3 | 44.61% [40.46, 49.25] | 36.09% [31.20, 41.65] | −8.52 pp ✅ |
| Levantine | 50 Casablanca + 50 MASC | 41.53% [36.30, 47.28] | 40.49% [34.80, 46.47] | −1.04 pp (tie within CIs) |
| Gulf | Casablanca UAE | 59.00% [53.69, 63.72] | 53.92% [49.44, 58.33] | −5.08 pp ✅ |
| avg-4 | 38.84% | 35.48% | −3.35 pp ✅ |
v2-ft wins by 3.35 pp average on the mixed-domain test, with dominant gains on Egyptian (−8.52) and Gulf (−5.08). The signed-test-set version (paper §6.5, Casablanca-only) showed only −0.72 pp average; the mixed-domain test reveals the model's real advantage on dialect-diverse traffic that broadcast-only or Casablanca-only tests obscure.
pip install faster-whisper
huggingface-cli download dev-ahmedhany/whisper-large-v3-turbo-arabic-ft-ct2-int8 \
--local-dir ./whisper-ar-int8
from faster_whisper import WhisperModel
model = WhisperModel(
"./whisper-ar-int8",
device="cpu", compute_type="int8", cpu_threads=8, # 8 threads recommended
)
segments, info = model.transcribe(
"audio.wav",
beam_size=2, # paper §6.6 sweet spot — best avg WER per RTF
language="ar",
task="transcribe",
)
print(" ".join(s.text for s in segments))
Inference RTF ≈ 0.5–0.6 (MSA) to 1.4–1.7 (dialects) on a c3-standard-8 (Intel Sapphire Rapids), peak RAM ~1.4 GB. For lower-latency real-time captioning, set beam_size=1 (≈30% faster, ~1pp WER cost).
openai/whisper-large-v3-turbor=8, α=16, dropout 0.05, target modules = q/v/k/out_proj + fc1/fc2load_best_model_at_end=True so the saved adapter is the best-WER checkpointct2-transformers-converter \
--model checkpoints/v2-merged \
--output_dir checkpoints/v2-ct2-int8 \
--quantization int8 \
--copy_files preprocessor_config.json tokenizer_config.json normalizer.json \
special_tokens_map.json added_tokens.json merges.txt vocab.json tokenizer.json
@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},
}
Apache-2.0 (inherits from base openai/whisper-large-v3-turbo).
4 commits
2
stars
4
commits
1
linked in READMEs
May 1, 2026
updated
CTranslate2 int8 build of openai/whisper-large-v3-turbo fine-tuned with QLoRA on a dialect-balanced Arabic mix (MSA + Egyptian + Levantine + Gulf). 820 MB on disk, runs at real-time on commodity CPU.
This is the production-deployable artifact (model.bin + tokenizer + normalizer). For the float16/bf16 PyTorch version, see whisper-large-v3-turbo-arabic-ft; for the LoRA adapter (further fine-tuning), see whisper-large-v3-turbo-arabic-ft-lora. Note (2026-05): the -lora and -ft repos linked above currently host v1 weights (LoRA r=32). The int8 here is v2 (r=8, the recipe that survives int8 quantization without WER regression). See paper §6.2/§6.5.
50% Casablanca + 50% broadcast (MGB-3 / MASC) for Egyptian and Levantine; 100% Casablanca UAE for Gulf (no public broadcast Gulf source); 100% FLEURS broadcast for MSA. Same exact recordings + decoding config used for both rows.
| Dialect | Test composition | Zero-shot turbo CT2 int8 | This model (v2-ft) | Δ |
|---|---|---|---|---|
| MSA | FLEURS (broadcast) | 10.20% [8.29, 12.19] | 11.42% [8.99, 14.31] | +1.22 pp |
| Egyptian | 50 Casablanca + 50 MGB-3 | 44.61% [40.46, 49.25] | 36.09% [31.20, 41.65] | −8.52 pp ✅ |
| Levantine | 50 Casablanca + 50 MASC | 41.53% [36.30, 47.28] | 40.49% [34.80, 46.47] | −1.04 pp (tie within CIs) |
| Gulf | Casablanca UAE | 59.00% [53.69, 63.72] | 53.92% [49.44, 58.33] | −5.08 pp ✅ |
| avg-4 | 38.84% | 35.48% | −3.35 pp ✅ |
v2-ft wins by 3.35 pp average on the mixed-domain test, with dominant gains on Egyptian (−8.52) and Gulf (−5.08). The signed-test-set version (paper §6.5, Casablanca-only) showed only −0.72 pp average; the mixed-domain test reveals the model's real advantage on dialect-diverse traffic that broadcast-only or Casablanca-only tests obscure.
pip install faster-whisper
huggingface-cli download dev-ahmedhany/whisper-large-v3-turbo-arabic-ft-ct2-int8 \
--local-dir ./whisper-ar-int8
from faster_whisper import WhisperModel
model = WhisperModel(
"./whisper-ar-int8",
device="cpu", compute_type="int8", cpu_threads=8, # 8 threads recommended
)
segments, info = model.transcribe(
"audio.wav",
beam_size=2, # paper §6.6 sweet spot — best avg WER per RTF
language="ar",
task="transcribe",
)
print(" ".join(s.text for s in segments))
Inference RTF ≈ 0.5–0.6 (MSA) to 1.4–1.7 (dialects) on a c3-standard-8 (Intel Sapphire Rapids), peak RAM ~1.4 GB. For lower-latency real-time captioning, set beam_size=1 (≈30% faster, ~1pp WER cost).
openai/whisper-large-v3-turbor=8, α=16, dropout 0.05, target modules = q/v/k/out_proj + fc1/fc2load_best_model_at_end=True so the saved adapter is the best-WER checkpointct2-transformers-converter \
--model checkpoints/v2-merged \
--output_dir checkpoints/v2-ct2-int8 \
--quantization int8 \
--copy_files preprocessor_config.json tokenizer_config.json normalizer.json \
special_tokens_map.json added_tokens.json merges.txt vocab.json tokenizer.json
@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},
}
Apache-2.0 (inherits from base openai/whisper-large-v3-turbo).
4 commits