OpenASR's picture
publish qwen3-forced-aligner-0.6b OpenASR packs
3a82628 verified
|
Raw
History Blame Contribute Delete
6.65 kB
---
license: apache-2.0
base_model: Qwen/Qwen3-ForcedAligner-0.6B
pipeline_tag: automatic-speech-recognition
library_name: openasr
tags:
- openasr
- oasr
- qwen3-forced-aligner-0.6b
---
<div align="center">
# Qwen3-ForcedAligner 0.6B Β· OpenASR
**Word-level forced alignment for OpenASR transcripts -- a non-autoregressive Qwen3 audio+text model that refines per-word timestamps**
[![License](https://img.shields.io/badge/license-Apache--2.0-2563eb.svg)](https://huggingface.co/Qwen/Qwen3-ForcedAligner-0.6B/blob/c7cbfc2048c462b0d63a45797104fc9db3ad62b7/LICENSE)
[![Format](https://img.shields.io/badge/format-.oasr-7c3aed.svg)](https://github.com/QuintinShaw/openasr)
[![Runtime](https://img.shields.io/badge/runtime-OpenASR-111827.svg)](https://openasr.org)
[![Base model](https://img.shields.io/badge/base-Qwen3--ForcedAligner--0.6B-f59e0b.svg)](https://huggingface.co/Qwen/Qwen3-ForcedAligner-0.6B)
A capability-pack support model for the **[OpenASR](https://github.com/QuintinShaw/openasr)**
runtime β€” pure-Rust inference, **no Python at inference time**. Not a standalone
transcription model: it augments another OpenASR ASR model's own decode path.
</div>
---
## ✨ Highlights
- 🎯 **Refined word timestamps** β€” consumes a finished transcript's text plus the source audio and replaces a model family's own approximate per-word timestamps with aligner-refined spans (`--word-timestamps=aligned`)
- ⚑ **Non-autoregressive** β€” a single forward pass over interleaved audio/text with argmax at `<timestamp>` positions (5000 80ms-wide bins), not incremental greedy decoding, so it is not dispatched through the qwen3-asr runtime
- 🧩 **Shares its backbone with Qwen3-ASR** β€” the same audio-encoder + LM `thinker` tensor layout, byte-for-byte; only the final head differs (an independent 5000-way classification head instead of the tied vocabulary head)
- πŸ”Œ **Shared attribution dependency** β€” used explicitly by `--word-timestamps=aligned` and internally when external diarization must split a coarse ASR segment at speaker changes
- πŸ¦€ **Validated native Q4_K default** β€” the public q4_k name follows OpenASR's unified tier naming, while boundary-sensitive audio, token-embedding, and timestamp-head matrices stay Q8_0; Q8_0 and FP16 remain available
- πŸ¦€ **Native in OpenASR** β€” `.oasr` packs run with no Python at inference, engineered for peak performance on CPU & GPU
## πŸš€ Quickstart
```bash
# 1. Install the OpenASR CLI Β· https://openasr.org
# 2. Pull the pack
openasr pull qwen3-forced-aligner-0.6b:q4
# 3. Use it as an opt-in refinement for another model's transcribe call
openasr transcribe meeting.wav --model <asr-model> --word-timestamps=aligned
```
## πŸ“¦ Pack
| Quant | File (`.oasr`) | Size |
|:------|:---------------|-----:|
| fp16 | `qwen3-forced-aligner-0.6b-fp16.oasr` | 1.84 GB |
| q8_0 | `qwen3-forced-aligner-0.6b-q8_0.oasr` | 986 MB |
| q4_k | `qwen3-forced-aligner-0.6b-q4_k.oasr` | 765 MB |
## 🧠 About Qwen3-ForcedAligner 0.6B
Qwen3-ForcedAligner-0.6B is a **word-level forced-alignment** model from **Qwen**, sharing its
audio-encoder + LM `thinker` tensor layout byte-for-byte with **Qwen3-ASR** (same
`Qwen3ASRForConditionalGeneration` architecture). The only structural difference is the final
head: instead of a tied vocabulary `lm_head`, it uses an independent `Linear(hidden_size,
5000)` classification head over 80ms-wide timestamp bins. Given a transcript's text and its
source audio, it runs a single non-autoregressive forward pass and reads off word-boundary
timestamps at argmax `<timestamp>` positions -- refining a model family's own (typically
decode-time-approximate) per-word timestamps. This OpenASR repo repackages the weights as
`.oasr` packs that run natively in the OpenASR runtime -- no Python at inference, all decoding
local. OpenASR recommends the validated **q4_k** tier and also ships **q8_0** and an **fp16**
full-precision reference tier. The q4_k label is the catalog's unified product name, not a claim
that every matrix uses Q4_K: the audio encoder, token embedding, and timestamp head remain Q8_0,
and pack verification replays the exact per-tensor policy. Q3 and legacy all-Q4 packs are rejected
because small logit perturbations can move a word boundary across multiple 80ms bins.
**Not a standalone transcription model.** This pack cannot transcribe audio by itself; it is an
alignment dependency consumed explicitly via `openasr transcribe <audio> --model <asr-model>
--word-timestamps=aligned`. It is also invoked internally when external speaker diarization
must split a coarse ASR segment at speaker changes; internally requested word anchors are
removed again unless the caller asked to receive them.
**Verification:** local verification covers a tensor-parity check against the real upstream
checkpoint -- every source safetensors tensor maps 1:1 to a destination tensor, plus the two
synthesized frontend tensors. On the fixed 205-item Chinese alignment set, the recommended q4_k
pack's CPU and Apple M1 Metal outputs each stayed within 320ms of the official reference and within
one 80ms model bin of q8_0. All published tiers pass their declared per-tensor quantization policy.
## βš™οΈ How this pack was made
Converted from [Qwen/Qwen3-ForcedAligner-0.6B](https://huggingface.co/Qwen/Qwen3-ForcedAligner-0.6B) with the OpenASR local-source
importer (`openasr model-pack import qwen-forced-aligner ...`).
The `.oasr` container is GGUF-backed; each shipped quant stores weights at the
requested precision while parity-sensitive tensors stay f32 where required.
## βš–οΈ License
This pack **inherits the upstream model's license: Apache-2.0**
([source](https://huggingface.co/Qwen/Qwen3-ForcedAligner-0.6B/blob/c7cbfc2048c462b0d63a45797104fc9db3ad62b7/LICENSE)). OpenASR packaging retains the upstream copyright;
the only modifications are format conversion and quantization.
## πŸ™ Acknowledgements
This pack is a redistribution of **Qwen3-ForcedAligner-0.6B**, created and open-sourced by
**Qwen** ([Qwen/Qwen3-ForcedAligner-0.6B](https://huggingface.co/Qwen/Qwen3-ForcedAligner-0.6B)).
All credit for the original architecture, training, and weights belongs to the authors; the
license is inherited from and identical to the upstream model (Apache-2.0). OpenASR only
performs format conversion, quantization, runtime verification, and local-inference adaptation.
## πŸ”— Links
- πŸ¦€ **OpenASR** β€” <https://github.com/QuintinShaw/openasr>
- 🌐 **Website** β€” <https://openasr.org>
- πŸ€— **Upstream model** β€” [Qwen/Qwen3-ForcedAligner-0.6B](https://huggingface.co/Qwen/Qwen3-ForcedAligner-0.6B)