--- license: apache-2.0 base_model: Audio8/ARK-ASR-0.6B base_model_relation: quantized library_name: onnx-asr pipeline_tag: automatic-speech-recognition tags: - onnx - onnxruntime - automatic-speech-recognition - speech - audio - asr - int8 - speech-llm language: - zh - en - de - ja - fr - ko - es - pl - it - ro - hu - cs - nl - fi - hr - sk - sl - et - lt --- # ARK-ASR-0.6B ONNX ONNX export of [Audio8/ARK-ASR-0.6B](https://huggingface.co/Audio8/ARK-ASR-0.6B) for [onnx-asr](https://github.com/istupakov/onnx-asr). All credit for the model goes to Audio8 (AutoArk AI). This repository only contains the converted graphs; the weights are the original ones. The model is a speech-LLM: a Whisper-large-v3-style audio encoder with rotary position embeddings, an MLP adapter that merges four encoder frames into one embedding, and a Qwen2 0.6B causal language model that writes the transcription. ## Usage ```sh pip install onnx-asr[cpu,hub] ``` ```py import onnx_asr model = onnx_asr.load_model("speech-llm", "OpenVoiceOS/ARK-ASR-0.6B-onnx") print(model.recognize("audio.wav")) # int8 weights model = onnx_asr.load_model("speech-llm", "OpenVoiceOS/ARK-ASR-0.6B-onnx", quantization="int8") ``` ## Files | File | Contents | | --- | --- | | `encoder.onnx` | audio encoder and MLP adapter, log-mel features in, LM embeddings out | | `embed_tokens.onnx` | token embedding table | | `decoder.onnx` | Qwen2 decoder with KV cache, logits out | | `*.int8.onnx` | dynamically quantized int8 weights | | `config.json` | model type, prompt token ids, suppressed token ids | | `vocab.json` | tokenizer vocabulary for detokenization | ## Graph contract | Graph | Inputs | Outputs | | --- | --- | --- | | `encoder.onnx` | `input_features (1, 128, frames)` | `audio_embeds (1, frames/8, 896)` | | `embed_tokens.onnx` | `input_ids (1, S)` | `inputs_embeds (1, S, 896)` | | `decoder.onnx` | `inputs_embeds (1, S, 896)`, `attn_bias (1, 1, S, P+S)`, `position_ids (1, S)`, `past_key_values.{0..23}.{key,value} (1, 2, P, 64)` | `logits (1, S, 163958)`, `present.{0..23}.{key,value} (1, 2, P+S, 64)` | ## Accuracy Four FLEURS clips (2 English, 2 Mandarin), greedy decoding, compared against the PyTorch model in float32: * fp32 ONNX: 4 of 4 transcriptions identical to PyTorch, character for character. * int8 ONNX: 3 of 4 identical. One Mandarin clip stops early and loses the last clause. Speed on a 12-core CPU under load: RTF 0.35 to 0.61 (fp32) and 0.09 to 0.29 (int8). ## Licence Apache 2.0, the same licence as the source model. The model was published by Audio8; see the [source repository](https://huggingface.co/Audio8/ARK-ASR-0.6B) and the paper [arXiv:2605.28139](https://arxiv.org/abs/2605.28139).