cohere-transcribe-arabic-07-2026-dialectal-v2 β ONNX
ONNX export of oddadmix/cohere-transcribe-arabic-07-2026-dialectal-v2
(fine-tuned by oddadmix for dialectal Arabic, base model
CohereLabs/cohere-transcribe-arabic-07-2026,
itself a cohere_asr (NeMo Canary-derivative attention encoder-decoder) fine-tune
of CohereLabs/cohere-transcribe-03-2026) for onnx-asr's
stock nemo-conformer-aed model type β the same graph contract as
istupakov/canary-1b-v2-onnx and OpenVoiceOS/cohere-transcribe-2b-onnx
(the multilingual sibling of this model). fp32 and int8 (dynamic-quantized)
variants included.
License: apache-2.0 (verbatim from the base model card).
Export notes (reused recipe, adapted for this checkpoint)
model.decoder.proj(1280 -> 1024) is folded into the encoder wrapper's output.- The decoder's
EncoderDecoderCacheis re-expressed as NeMo-styledecoder_mems: element i holds the pre-layernorm hidden states entering decoder layer i (element 0 is the embedding-layernorm output), 9 mems total for 8 decoder layers. LayerNorm is per-position, so this caching is exact. Verified torch-only against nativemodel.generate(5/5 FLEURSar_egclips, character-exact) before touching ONNX. - Cross-attention K/V are recomputed from
encoder_embeddingseach decoder step (no cache), same as the multilingual export. - Deviation from the multilingual recipe: this checkpoint's encoder graph is
exported without an attention mask (every input frame is treated as
valid). The HF encoder's internal pairwise mask (query AND key both valid)
produces an all -inf softmax row for a padded query position; PyTorch's fused
SDPA silently zeroes that row in eager execution, but the ONNX-traced
decomposition (explicit softmax) turns it into NaN, which then poisons the
whole tensor via the conv module's batch-norm statistics. Since this graph is
used batch=1 with no padding, treating every input frame as valid sidesteps
the bug entirely with no measurable quality cost (verified below). Prompt ids
were pulled from this model's own processor (
get_decoder_prompt_ids("ar")), not the multilingual sibling's β they differ at the language-token slots.
Dialect coverage
Trained on oddadmix/lahgtna-v3-small (dialect-balanced, undiacritized targets),
the same corpus as the other oddadmix v2 dialectal releases. Per the family's
pattern, expect strongest results on Gulf/Saudi and Egyptian, weakest on
Maghrebi dialects. The source card also notes a "Tunisian failure mode" (WER >
1.0) and regressions on Libyan, Yemeni, and Syrian versus the un-fine-tuned
base β carried over unchanged by this export.
Usage
import onnx_asr
model = onnx_asr.load_model("nemo-conformer-aed", "path/to/this/repo") # or quantization="int8"
print(model.recognize("audio_16khz.wav", language="ar"))
Verification
Verified against FLEURS ar_eg clips (fp32 and int8) through the actual ONNX
runtime path (not just the torch wrapper): fluent, accurate undiacritized
Arabic transcriptions, closely matching the native transformers
CohereAsrForConditionalGeneration output (minor punctuation/quote-mark
differences only, no semantic drift). fp32 and int8 are close; int8 shows the
expected minor extra drift from dynamic weight quantization of a ~2.1B-param
model but stays intelligible and dialect-faithful.
RTF (CPU, homelab box, heavy contention during export batch): fp32 ~0.6-2.4, int8 ~0.9-1.7. Expect better RTF under normal (uncontended) load.
- Downloads last month
- 21
Model tree for OpenVoiceOS/cohere-transcribe-arabic-07-2026-dialectal-v2-onnx
Base model
CohereLabs/cohere-transcribe-03-2026