Nawah-ASR-60M-Max-Arabic

A 62.7M-parameter Parakeet-style Token-and-Duration Transducer for Arabic speech recognition β€” FastConformer encoder, TDT objective β€” trained from scratch on 8,723 hours of Arabic speech, with no pretrained encoder and no external language model.

On the six test sets of the Open Universal Arabic ASR Leaderboard it reaches 29.86 average WER / 13.13 CER, which places it 4th of 38 evaluated systems.

Every model ranked above it is between 2.35B and 7B parameters or a commercial API. It is 37Γ— smaller than the 2.35B system at rank 1, and it is ahead of omniASR_LLM_1B and 3B, Qwen3-Omni-30B-A3B, Voxtral-Small-24B, gemma-4-E4B, Qwen3-ASR-1.7B and every Whisper model.

Leaderboard

Averages are recomputed over these same six sets for every model, so the ordering is consistent. Baseline figures are the leaderboard's published numbers.

# Model Avg WER Avg CER Params
1 audarai/Audar-ASR-V1-Turbo 23.17 9.22 2.35B
2 CohereLabs/cohere-transcribe-arabic-07-2026 25.87 11.80 β€”
3 omnilingual-asr/omniASR_LLM_7B 28.32 12.52 7B
4 Nawah-ASR-60M-Max-Arabic (this model) 29.86 13.13 62.7M
5 omnilingual-asr/omniASR_LLM_1B 29.95 13.40 1B
6 omnilingual-asr/omniASR_LLM_3B 29.96 13.77 3B
7 CohereLabs/cohere-transcribe-03-2026 30.67 16.37 β€”
8 Qwen/Qwen3-Omni-30B-A3B-Instruct 30.71 13.66 30B
9 audarai/Audar-ASR-V1-Flash 32.04 13.65 β€”
10 nvidia-conformer-ctc-large-arabic (lm) 32.91 13.85 0.12B
12 google/gemma-4-E4B-it 32.98 13.71 4B
13 Qwen/Qwen3-ASR-1.7B 33.69 12.33 1.7B
14 mistralai/Voxtral-Small-24B-2507 34.46 15.29 24B
18 openai/whisper-large-v3 36.86 17.21 1.55B
23 openai/whisper-large-v3-turbo 40.05 18.87 0.81B
35 openai/whisper-small 55.13 21.68 244M
38 speechbrain/asr-wav2vec2-commonvoice-14-ar 65.74 30.93 β€”

Full table in eval/ranking.json.

Per-set results

Scored with the leaderboard's own eval.py β€” its normalize_arabic_text and NeMo's word_error_rate β€” unmodified. Every clip in every set was decoded; nothing was skipped.

Test set Clips Hours WER CER
MASC clean 8,612 10.49 13.04 5.37
MGB-2 5,365 9.58 18.15 8.01
Common Voice 18 10,471 12.66 20.69 7.87
MASC noisy 9,394 8.92 26.45 11.10
SADA 6,186 10.75 41.95 19.41
Casablanca 6,818 7.85 58.86 27.02

On MASC noisy (26.45) and MASC clean (13.04) it is ahead of the 2.35B system at rank 1 (28.57 and 18.00).

Usage

import soundfile as sf
from tokenizers import Tokenizer
import parakeet_model as P                       # ships in this repo

tok = Tokenizer.from_file("tokenizer_bpe1024.json")
model = P.load("nawah_asr_60m_max_arabic.pt")    # dims are read from the checkpoint
wav, sr = sf.read("clip.wav", dtype="float32")   # 16 kHz mono
print(P.transcribe(model, wav, tok))

Needs torch, torchaudio (for the kaldi fbank) and tokenizers. Nothing else β€” the three model files here are self-contained.

No 30-second window

Whisper-family models chunk audio into 30-second pieces. This encoder uses clamped relative position bias, so it transcribes any length in a single pass. Measured on 2 CPU threads:

Audio Time Realtime factor
5.7 s clip 0.08 s 69Γ—
8.3 s clip 0.09 s 90Γ—
1 minute 0.9 s 69Γ—
5 minutes 11.6 s 26Γ—

The full 46,846-clip leaderboard sweep runs on CPU alone in about 27 minutes.

Architecture

encoder FastConformer, 17 layers, d=384, 6 heads, FFN 1536, Γ—8 subsampling β†’ 12.5 Hz
predictor 2-layer LSTM, 320 hidden
joiner additive, 384 β†’ 1029 (1024 tokens + 5 duration classes)
objective TDT, durations [0,1,2,3,4], auxiliary CTC head at weight 0.2
tokenizer 1024-unit Metaspace BPE, blank at id 0
training 8,723 hours of Arabic speech, 1 epoch, 290,606 steps on one RTX 5090
stability zero non-finite losses across the run

The published checkpoint is the final step, which was also the best by held-out WER β€” the curve was still improving when the schedule ended.

Files

File
nawah_asr_60m_max_arabic.pt weights (240 MB fp32)
parakeet_model.py model definition, load() and transcribe()
fastconformer.py the encoder
parakeet_data.py fbank features and encoder-length arithmetic
tokenizer_bpe1024.json the 1024-unit BPE this model was trained with
config.json descriptive architecture config
eval/leaderboard_results.json per-set numbers
eval/ranking.json the recomputed board
eval/lb_norm.py, eval/run_bench.py the scorer and runner, to reproduce the table

config.json is descriptive only. It is not a transformers config β€” AutoModel.from_pretrained will not load this model; use parakeet_model.load(), which reads the encoder width, depth, head count, FFN size and vocabulary out of the checkpoint rather than trusting defaults.

Limitations

  • Maghrebi is the weakest region by a wide margin: Casablanca 58.86 against 13.04 on MASC clean. It is better than Voxtral-Small-24B and every Whisper model on that set, but the gap to the best system (47.02) is real.
  • SADA at 41.95 is the second weakest. Saudi broadcast speech with heavy overlap and code-switching remains hard at this size.
  • No punctuation or diacritics. Targets were stripped of tashkeel, and the model emits neither.
  • Mixed orthography. The model writes ta-marbuta (Ψ©) in some words and ha (Ω‡) in others. The leaderboard normalizer does not fold the two, so every such mismatch scores as a word error; folding Ψ©β†’Ω‡ on both sides is worth about 0.7 WER on the six-set average. The numbers above are the unfolded, as-scored figures.
  • Single-pass long audio is lightly tested. Training spans were capped at 20 s. Long audio decodes in one pass and the timings above are real, but accuracy on multi-minute input has not been measured against a reference.
  • Test-set overlap was measured acoustically, not assumed. All 1,793,600 training clips were fingerprinted (32-band log-mel at a 50 ms hop, Haitsma-Kalker) against all 46,846 clips of the six test sets, with each candidate confirmed by bit-error rate over the aligned overlap. The detector was validated at 97.9% recall on test clips re-encoded at 48 kbps Opus with 0/960 false positives. Result: 39 training clips (0.0022%) matched a test clip, touching 0.14% of MASC clean, 0.10% of MASC noisy, 0.09% of Casablanca, 0.05% of SADA and 0.00% of MGB-2 and Common Voice 18. Re-scoring with every implicated test clip removed moves the six-set average by βˆ’0.007 WER (29.86 β†’ 29.85), so the figures above stand to two decimals. The method does not detect time-scaled, pitch-shifted or differently-cut versions of the same material.
Downloads last month
63
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for oddadmix/Nawah-ASR-60M-Max-Arabic

Quantizations
1 model

Space using oddadmix/Nawah-ASR-60M-Max-Arabic 1