Intended use
- Offline Arabic speech-to-text (meetings, podcasts, YouTube-style audio, broadcast)
- MSA and dialectal Arabic transcription
- Research and open experimentation on Arabic ASR
Training data (approx.)
Table with columns: Source, Role| Source | Role |
|---|
| MASC (mined train) | ~73 h |
| MGB-2 train | ~50 h |
| SADA train | ~34 h |
| Common Voice 18 Arabic train | ~12 h |
| FLEURS ar_eg + MGB-3 Egyptian | ~13 h |
Total ~180 h. Official test splits of SADA, Common Voice, MGB-2, MASC, and Casablanca were not used for training.
Results
Evaluated with the Tahqiq harness on the common / api slice (~1k utterances per set), greedy decoding, elm normalizer — same protocol as community leaderboard rows.
Table with columns: Set, WER %, CER %| Set | WER % | CER % |
|---|
| Casablanca | 40.59 | 15.50 |
| Common Voice 18 | 5.29 | 1.74 |
| MASC clean | 15.40 | 4.48 |
| MASC noisy | 23.38 | 7.41 |
| MGB-2 | 9.35 | 4.87 |
| SADA | 27.18 | 13.25 |
| Average | 20.20 | 7.88 |
vs base Cohere Transcribe Arabic 07-2026 (same protocol)
Table with columns: Avg WER, Avg CER | Avg WER | Avg CER |
|---|
| Cohere Arabic 07-2026 | 23.59 | 10.81 |
| Arabic-Asr-cohere-v2 (this model) | 20.20 | 7.88 |
| Δ | −3.39 | −2.93 |
Usage
This model is supported natively in transformers. This is the recommended way to use it for offline inference. For online inference, see the vLLM integration example below.
pip install transformers>=5.4.0 torch huggingface_hub soundfile librosa sentencepiece protobuf accelerate
Quick start
from transformers import AutoProcessor, CohereAsrForConditionalGenerationfrom transformers.audio_utils import load_audio repo = "Abdelrahman-M/Arabic-Asr-cohere-v2"processor = AutoProcessor.from_pretrained(repo)model = CohereAsrForConditionalGeneration.from_pretrained(repo, device_map="auto") audio = load_audio("your_audio.wav", sampling_rate=16000)inputs = processor(audio, sampling_rate=16000, return_tensors="pt", language="ar")inputs.to(model.device, dtype=model.dtype) outputs = model.generate(**inputs, max_new_tokens=256)text = processor.decode(outputs, skip_special_tokens=True)print(text)
For audio longer than the feature extractor's max_audio_clip_s, the feature extractor automatically splits the waveform into chunks. The processor reassembles the per-chunk transcriptions using the returned audio_chunk_index.
from transformers import AutoProcessor, CohereAsrForConditionalGenerationfrom transformers.audio_utils import load_audioimport time repo = "Abdelrahman-M/Arabic-Asr-cohere-v2"processor = AutoProcessor.from_pretrained(repo)model = CohereAsrForConditionalGeneration.from_pretrained(repo, device_map="auto") audio = load_audio("your_long_audio.wav", sampling_rate=16000)sr = 16000duration_s = len(audio) / sr inputs = processor(audio=audio, sampling_rate=sr, return_tensors="pt", language="ar")audio_chunk_index = inputs.get("audio_chunk_index")inputs.to(model.device, dtype=model.dtype) start = time.time()outputs = model.generate(**inputs, max_new_tokens=256)text = processor.decode( outputs, skip_special_tokens=True, audio_chunk_index=audio_chunk_index, language="ar")[0]elapsed = time.time() - startprint(f"Transcribed in {elapsed:.1f}s — RTFx: {duration_s / elapsed:.1f}")print(text)
vLLM integration
vllm serve Abdelrahman-M/Arabic-Asr-cohere-v2 --trust-remote-code
curl -v -X POST http://localhost:8000/v1/audio/transcriptions \ -H "Authorization: Bearer $VLLM_API_KEY" \ -F "file=@$(realpath ${AUDIO_PATH})" \ -F "model=Abdelrahman-M/Arabic-Asr-cohere-v2"
Limitations
- Single language. The model performs best when remaining in-distribution of a single, pre-specified language. It does not feature explicit, automatic language detection and exhibits inconsistent performance on code-switched audio.
- Timestamps / speaker diarization. The model does not feature either of these.
- Silence. Like most AED speech models, this model is eager to transcribe, even non-speech sounds. It benefits from prepending a noise gate or VAD (voice activity detection) in order to prevent low-volume, floor noise from turning into hallucinations.
- Dialect coverage. Maghrebi dialects remain harder than MSA / Egyptian / Gulf-style speech covered more heavily in the fine-tune mix.
Credit
- Base: Cohere Labs — Cohere Transcribe Arabic 07-2026
- Fine-tune: Abdelrahman-M