Model reference · open weights

qwen3-asr-onnx-merged

Audio rhasspy Speech→text 1 build Open weights 72 dl/mo

qwen3-asr-onnx-merged is an open-weight audio or speech model from Rhasspy. qwen3-asr-0.6b-onnx-int4-merged (INT4) weighs 311 MB; the smallest configuration that runs it is RTX 3060 12 GB.

  • qwen3-asr-onnx-merged is an automatic speech recognition model by Rhasspy, published as rhasspy/qwen3-asr-0.6b-onnx-int4-merged.
  • It is a multilingual model licensed under apache-2.0 that uses a merged decoder to accept a KV cache and dynamic sequence length, reducing latency and memory usage compared to the split export.
  • The package includes a 340 MB merged decoder, an encoder, and an embedding table, and requires a runtime that supports the merged layout.

Summary of the rhasspy/qwen3-asr-0.6b-onnx-int4-merged model card, 2026-10-01

What it is

Released byRhasspy
Released2026-08-13
VRAM311 MB for the weights

What it runs on

Memory and cards for qwen3-asr-0.6b-onnx-int4-merged (INT4)

311 MBweights, file size
1.6 GBruntime overhead
CardOne streamMemory
RTX 3060 12 GBfits11.6 GB
RTX 4060 Ti 16 GBfits15.4 GB
RTX 3090 24 GBfits23.4 GB
RTX 4090 24 GBfits23.4 GB
RTX 5090 32 GBfits31.0 GB
L40S 48 GBfits44.0 GB
A100 80 GBfits78.2 GB
H100 80 GBfits78.1 GB
RTX PRO 6000 Blackwell 96 GBfits93.8 GB
DGX Spark (GB10) 128 GB unifiedfits107 GB
H200 141 GBfits138 GB
B200 180 GBfits176 GB

From the model card

What Rhasspy says about qwen3-asr-onnx-merged

Read the model card

rhasspy/qwen3-asr-0.6b-onnx-int4 with its two decoder graphs replaced by a single merged decoder that accepts a KV cache alongside a dynamic sequence length.

This makes a context-biasing prompt cheap to reuse, and makes the package substantially smaller.

Why

Qwen3-ASR takes free-form text in the chat template's system turn to bias decoding toward particular spellings — the reason it can be told that "Ecobee" is a word. But the model must read that prompt before it starts decoding, at roughly 2.8 ms per token, so a 50-name vocabulary (~180 tokens) can double the time for a short command.

The prompt sits ahead of the audio, so its attention state depends only on the prompt tokens and never changes between utterances. The original split export cannot exploit that: decoder_init accepts no KV cache, and decoder_step is pinned to a single token. This export takes both a cache and a dynamic sequence length, so the prompt's state is computed once and reused.

Because the graph takes embeddings as input rather than doing the lookup internally, it also drops the in-graph embedding table: the shared decoder weights go from 962 MB to 340 MB.

Measurements

Raspberry Pi 5, 4 threads, 3.2 s command, 50-name prompt, compared against the split export:

splitmerged
latency3.42 s2.20 s
peak RSS2.25 GB1.55 GB
on disk1407 MB785 MB

The latency benefit scales with how much of the work is prompt. It is largest for short voice commands and small for long-form audio — a 30 s clip gained only ~1.04x. The memory saving goes the other way and grows with length: on that same 30 s clip, 4.16 GB → 2.87 GB.

Accuracy

Transcripts were compared against the split export directly: identical on 20/20 checks on x86, and 39/40 on a Pi 5 (10 short English clips × 4 prompt sizes, scored against ground truth). Both exports scored the same 39/40. The three differing transcripts were "13 percent" vs "thirteen percent" (both correct) and two spellings of a name that both exports get wrong when given no prompt.

This is not a WER evaluation. It is a check that the re-export did not change behavior on a small set of short English utterances. Independent quantization plus a restructured graph can flip near-tie tokens, so treat measured WER on the split export as indicative rather than transferred.

Requires a runtime that supports the merged layout

The graph filenames and input signature differ from the split export (decoder_merged.int4.onnx, with an attention_mask input; no decoder_init or decoder_step). Software that expects the split layout will not load this repo — use rhasspy/qwen3-asr-0.6b-onnx-int4 there instead, which remains published and unchanged.

In wyoming-faster-whisper, the layout is detected automatically from the files present:

wyoming-faster-whisper --stt-library qwen3-asr \
    --model rhasspy/qwen3-asr-0.6b-onnx-int4-merged \
    --language en --uri 'tcp://0.0.0.0:10300' --data-dir /data

Files

file
decoder_merged.int4.onnx + .datathe merged decoder (340 MB)
encoder.int4.onnx + .dataunchanged from qwen3-asr-0.6b-onnx-int4
embed_tokens.binfp16 embedding table, used by the caller
tokenizer.json, config.jsonunchanged

Provenance

The decoder was exported from Qwen/Qwen3-ASR-0.6B-hf with a DecoderMergedWrapper added to a clone of andrewleech/qwen3-asr-onnx, then quantized with the same recipe as the original decoders: RTN, block_size=64, accuracy_level=4. The encoder, tokenizer, config and embedding table are the files from rhasspy/qwen3-asr-0.6b-onnx-int4, byte for byte — the exported embedding table was verified identical to the published one before reuse.

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

How it works

How audio & music work

Audio or textinputAudio modelrecognise / synthesiseText or audiooutputSpeech-to-text turns audio into text; text-to-speech and music models turn text into audio.
© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms