Qwen3-ForcedAligner-0.6B GGUF (bf16)
An unofficial GGUF conversion of Qwen/Qwen3-ForcedAligner-0.6B
(revision c7cbfc2048c462b0d63a45797104fc9db3ad62b7) for llama.cpp. Not affiliated with or
endorsed by the Qwen team. The weights are Qwen's, unchanged, at their native bf16 precision;
see the original model card for the model itself and its license (Apache-2.0).
Files
| File | Contents |
|---|---|
Qwen3-ForcedAligner-0.6B-LM-bf16.gguf | the text model as a standard qwen3 model |
Qwen3-ForcedAligner-0.6B-Audio-bf16.gguf | the audio encoder and projector (qwen3a projector type), plus the 5000-way timestamp head as F32 score.weight and the keys aligner.timestamp_segment_ms (80), aligner.timestamp_token_id (151705), aligner.n_buckets (5000) |
convert_aligner.py | the conversion script |
The two-file layout is the one read by the Qwen3-ForcedAligner runtime in
llama.cpp-omni PR 115 (tools/aligner).
Conversion
convert_aligner.py runs llama.cpp's own convert_hf_to_gguf.py (tag b10687) on the original
checkpoint, which is laid out as a Qwen3-ASR model whose lm_head is the timestamp head:
- The text model is written as plain
qwen3instead ofqwen3vl. With audio and text only, every M-RoPE section carries the same position, which is ordinary RoPE. thinker.lm_head.weightis left out of the text GGUF and stored in the audio GGUF asscore.weight.- The audio GGUF comes from the converter's standard
--mmprojpath for Qwen3-ASR.
Parity
Checked against the official transformers implementation (bf16) on the same audio and word units, using the llama.cpp-omni aligner built against llama.cpp b10687:
- AMI meeting audio, against AMI's manual word times: word-onset error median +0.010 s (IQR −0.015 to +0.040 s), the same as the reference.
- A 55-minute podcast chunk (467 words): 465 word starts and 466 word ends identical to the reference; the largest difference is one 80 ms slot.
Word units must be the ones the reference produces (punctuation removed, so "U.S." becomes "US" and "twenty-four" becomes "twentyfour").