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 EncoderDecoderCache is re-expressed as NeMo-style decoder_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 native model.generate (5/5 FLEURS ar_eg clips, character-exact) before touching ONNX.
  • Cross-attention K/V are recomputed from encoder_embeddings each 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
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for OpenVoiceOS/cohere-transcribe-arabic-07-2026-dialectal-v2-onnx

Collections including OpenVoiceOS/cohere-transcribe-arabic-07-2026-dialectal-v2-onnx