lemuralabs/lemura-arabic-asr-qwen3
<div align="center">
<img src="logo.png" width="150"/>
lemura-arabic-asr-qwen3
Lemura Labs' Arabic-first generative speech-recognition model — dialect-broad, production-oriented.
Built for the dialects your users actually speak.
<p><a href="#what-it-is"><b>Overview</b></a> · <a href="#benchmarks"><b>Benchmarks</b></a> · <a href="#transformers-inference"><b>Transformers</b></a> · <a href="#ms-swift-inference"><b>ms-swift</b></a> · <a href="#entity-and-name-biasing"><b>Entity Biasing</b></a> · <a href="https://huggingface.co/lemuralabs/lemura-arabic-asr-lite"><b>Sibling model</b></a></p>
</div>
What it is
lemura-arabic-asr-qwen3 is an Arabic-first generative speech-recognition model. It recasts transcription as audio-conditioned next-token prediction — an audio encoder feeding a Qwen3 language-model decoder, rather than a CTC or transducer objective — so it resolves ambiguity with linguistic context, not acoustics alone.
Fine-tuned from [Qwen/Qwen3-ASR-1.7B](https://huggingface.co/Qwen/Qwen3-ASR-1.7B), it transcribes Modern Standard Arabic and five major dialect groups — Gulf/Khaleeji, Egyptian, Levantine, Iraqi and Maghrebi/Darija — in a single compact 1.7B model.
- Audio-LLM architecture — generative ASR; context disambiguates where acoustics cannot.
- Genuinely multi-dialect — MSA plus five dialect groups, including Moroccan Darija, which most ASR systems handle badly.
- Entity and name biasing — accepts a guiding word-list to lock in brands, people and jargon.
- Robust to code-switching — Arabic ↔ English, common in Gulf business speech.
Built for the hard part of Arabic ASR: real dialectal speech, code-switching, and named entities.
Model summary
<table> <tbody> <tr><td width="210"><b>Model</b></td><td>lemura-arabic-asr-qwen3 — Arabic-first generative ASR</td></tr> <tr><td><b>Task</b></td><td>Automatic speech recognition (audio → text)</td></tr> <tr><td><b>Approach</b></td><td>Generative ASR — audio encoder + Qwen3 language-model decoder (audio-conditioned next-token prediction)</td></tr> <tr><td><b>Base model</b></td><td><code>Qwen/Qwen3-ASR-1.7B</code></td></tr> <tr><td><b>Architecture class</b></td><td><code>Qwen3ASRForConditionalGeneration</code> (<code>modeltype: qwen3asr</code>)</td></tr> <tr><td><b>Audio encoder</b></td><td>24 layers · d_model 1024 · 16 heads · 128 mel bins</td></tr> <tr><td><b>Total parameters</b></td><td>1.7B (bf16)</td></tr> <tr><td><b>Audio input</b></td><td>16 kHz mono; 30 s context window (longer audio is chunked)</td></tr> <tr><td><b>Languages</b></td><td>Arabic — MSA + Gulf / Egyptian / Levantine / Iraqi / Maghrebi, with Arabic–English code-switching</td></tr> <tr><td><b>Runtime</b></td><td>transformers · ms-swift — GPU</td></tr> <tr><td><b>License</b></td><td>Apache-2.0</td></tr> </tbody> </table>
Benchmarks
Open Universal Arabic ASR Leaderboard — full standings
Per-dataset WER % across all six leaderboard test sets, zero-shot. Lower is better; Avg WER is the ranking metric. Our sibling model lemura-arabic-asr-lite is evaluated here with the official leaderboard code; this model's base, Qwen/Qwen3-ASR-1.7B, is row 12.
Competitor rows are the published Open Universal Arabic ASR Leaderboard standings, reproduced for context; they are not our measurements. Casablanca (Moroccan Darija) is the hardest set for every system.
Transformers inference
The full-precision bf16 weights are published at the repo root (safetensors). Qwen3-ASR is supported natively in recent Transformers — no trust_remote_code needed.
# pip install "transformers>=4.57.6" torch librosa
import torch, librosa
from transformers import AutoProcessor, Qwen3ASRForConditionalGeneration
repo = "lemuralabs/lemura-arabic-asr-qwen3"
processor = AutoProcessor.from_pretrained(repo)
model = Qwen3ASRForConditionalGeneration.from_pretrained(
repo, dtype=torch.bfloat16, device_map="auto"
).eval()
audio, _ = librosa.load("clip.wav", sr=16_000) # 16 kHz mono
messages = [{"role": "user", "content": [{"type": "audio", "audio": audio}]}]
text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = processor(text=text, audio=audio, sampling_rate=16_000, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=256, do_sample=False)
print(processor.batch_decode(out[:, inputs["input_ids"].shape[1]:], skip_special_tokens=True)[0])ms-swift inference
For batch transcription over a dataset, ms-swift is the fastest path:
pip install ms-swift transformers==4.57.6 qwen-asr soundfile
swift infer \
--model lemuralabs/lemura-arabic-asr-qwen3 \
--val_dataset your_data.jsonl \
--infer_backend pt --max_new_tokens 256Dataset JSONL, one line per clip, audio 16 kHz mono:
{"messages": [{"role": "user", "content": "<audio>"}, {"role": "assistant", "content": ""}], "audios": ["/path/to/clip.wav"]}Entity and name biasing
Pass a short guiding word-list as a system message to lock in names, brands and jargon:
{"messages": [
{"role": "system", "content": "الكلمات المرشدة: أبوبي، موهان، لمُرا"},
{"role": "user", "content": "<audio>"},
{"role": "assistant", "content": ""}],
"audios": ["/path/to/clip.wav"]}This alone fixes most brand and name errors in real business audio.
Notes
- Long audio: the audio encoder uses a 30 s window (
chunk_length: 30); chunk longer inputs client-side and concatenate the transcripts. - Sample rate: input must be 16 kHz mono; resample before inference.
- Decoding: greedy (
do_sample=False) is recommended for transcription; sampling adds hallucination risk. - Precision: weights are bf16; fp16 works on older GPUs, but bf16 is what the model was trained and merged in.
Languages, dialects and tasks
- Primary: Arabic — MSA and dialectal (Gulf/Khaleeji, Egyptian, Levantine, Iraqi, Maghrebi/Darija), plus code-switched Arabic–English; emits dialect-faithful orthography from audio alone.
- Task: transcription (audio → UTF-8 text), optionally steered by a guiding word-list for entities.
- Audio: 16 kHz mono, 30 s window.
Intended use and limitations
Intended use. Transcribing Arabic speech across dialects — contact centres, voice notes, media captioning, voice agents and accessibility, especially Gulf and Maghrebi deployments; cloud or on-prem.
Limitations.
- Best on the dialects and domains it covers; fully unseen accents or domains will be harder.
- Maghrebi / Moroccan Darija remains the hardest condition, as it is for every system.
- Very noisy or far-field audio degrades accuracy; long recordings must be chunked.
- Not evaluated for, and must not be used for, covert speaker identification.
- May reflect biases present in the training corpora.
Related model
[lemura-arabic-asr-lite](https://huggingface.co/lemuralabs/lemura-arabic-asr-lite) — ~115M-parameter FastConformer-CTC, CPU and real-time capable, #2 of 36 zero-shot on the Open Universal Arabic ASR Leaderboard.
License
Apache-2.0, inheriting the base model's license. Please also respect the licenses of the training datasets.
Citation
@misc{lemura_arabic_asr_qwen3_2026,
title = {lemura-arabic-asr-qwen3: Generative Multi-Dialect Arabic Speech Recognition},
author = {Lemura Labs},
year = {2026},
url = {https://huggingface.co/lemuralabs/lemura-arabic-asr-qwen3}
}Acknowledgements
- Base model: Qwen/Qwen3-ASR-1.7B (Alibaba Qwen team)
- Evaluation: the Open Universal Arabic ASR Leaderboard official code
About Lemura Labs
<div align="center">
Arabic-first, efficiency-first speech intelligence.
Lemura Labs starts with the dialects people actually speak.
</div>
We build compact, deployable speech and language models — accuracy at a size and cost that works outside the datacentre. Our work spans speech recognition, dialectal language modelling, and efficient inference for real-world deployment, from edge devices to on-prem clusters.
Dialect-first. Efficient by design. Built to deploy.
<div align="center">
© 2026 Lemura Labs · Licensed under Apache-2.0
</div>
