Recipe (task arithmetic)
model = run6b + 0.6 x (run10 - run6b) + 0.6 x (avg - run6b)
Merged tensor by tensor in float32, saved in bf16; config, tokenizer and processor from run10. merge.json holds the
recipe.
Results
bf16, greedy decoding, through the qwen3-asr-arabic-api server (long files cut at pauses into
chunks of at most 30 s). Word error rate in %, the same normalizer applied to reference and hypothesis.
Table with columns: set, base Qwen3-ASR-1.7B, this model| set | base Qwen3-ASR-1.7B | this model |
|---|
| Audioluna call samples (20 calls, Arabic + English; mean of 3 runs, normalize_ext) | 22.01 | 12.35 |
| Audioluna, plain scoring (lower-case, punctuation removed) | - | 13.40 |
| Test Arabic (505 segments) | 18.55 | 9.87 |
| SIP call sample (held out) | 45.58 | 13.86 (9.16 with every digit counted as a word) |
| FLEURS ar_eg | 8.98 | 4.64 |
| Casablanca Morocco / Egypt / Jordan / UAE | 85.80 / 55.66 / 35.80 / 48.76 | 37.56 / 27.16 / 19.04 / 32.06 |
| SADA (Saudi) | 44.27 | 25.12 |
| Common Voice 17 Arabic | 17.72 | 5.91 |
| Mixat (Emirati Arabic-English code-switching) | 25.04 | 15.05 |
| AMI / Earnings22 | 18.53 / 10.22 | 14.92 / 9.21 |
| LibriSpeech clean / other | 1.60 / 3.73 | 1.72 / 4.77 |
| GigaSpeech / SPGISpeech / VoxPopuli / Common Voice English | 8.10 / 2.72 / 5.52 / 7.44 | 9.12 / 3.77 / 6.01 / 9.81 |
The public sets are 250 random test utterances each (Mixat 198; seed 0), scored with Whisper's English normalizer for
English and normalize_ext for Arabic. The model is much better than the base model on Arabic, dialects, code-switching
and calls (13 of 19 sets, paired bootstrap 95 %) and 0.5-2.4 points worse on clean read English (5 sets).
Caveat: the merge and its weights (0.6 / 0.6) were chosen on Audioluna, so the Audioluna number is slightly
optimistic; the other sets were not used for any choice.
Usage
No system prompt and the model's own language detection give the default written format (numbers as digits, English
in Latin script). Loadable with from_pretrained (bf16 weights + processor) and with vLLM. Long recordings: cut at
pauses into chunks of at most ~25-30 s; two-channel calls summed to mono.