ARK-ASR-0.6B-onnx / README.md
Jarbas's picture
ONNX export of Audio8/ARK-ASR-0.6B for onnx-asr
ce380b1 verified
|
Raw
History Blame Contribute Delete
2.76 kB
---
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).