AMAImedia/NOESIS-Qwen3-Forced-Aligner-0.6B-112LANG-BF16
<!-- apex-banner --> <div style="background-color: #f59e0b; color: white; padding: 20px; border-radius: 10px; text-align: center; margin: 20px 0;"> <h2 style="color: white; margin: 0 0 10px 0;">⚡ Each donation funds the next large quant.</h2> <p style="font-size: 16px; margin: 0 0 15px 0;">I host free GGUF or MoE quants as independent research.<br> Local hardware: <b>Mechrevo Kuangshi GM7AG0M</b> — RTX 3060 Laptop 6GB GDDR6, 64GB DDR5, i7-12700H (14C/20T, 4.7GHz), Windows 11, Samsung 990 Pro.<br> Good for imatrix and 0.6–35B-class work in RAM. <b>9B+ and searches need rented H200/Blackwell</b>, typically $100 per quant.</p> <p style="font-size: 20px; margin: 0;"> <a href="https://boosty.to/amaimediacom" style="color: white; text-decoration: underline;">🎉 Boosty🦄</a> | <a href="https://donatex.gg/widgets/donation-goal/89bc59e8-b69c-467a-9aa0-5e1c3f8842d6" style="color: white; text-decoration: underline;">☕ Buy Me a Coffee🦄</a> | <a href="https://www.donationalerts.com/r/djbionicl" style="color: white; text-decoration: underline;">⭐ DonationAlerts🦄</a> </p> <p style="font-size: 14px; margin: 10px 0 0 0; opacity: 0.9;">💚 Thanks to Hugging Face for extra storage.🦄</p> </div>
NOESIS / AMAImedia
Released as part of the NOESIS Professional Multilingual Dubbing Automation Platform (framework: DHCF-FNO — Deterministic Hybrid Control Framework for Frozen Neural Operators).
- Founder: Ilia Bolotnikov
- Organization: AMAImedia.com
- X (Twitter): @AMAImediacom
- LinkedIn: Ilia Bolotnikov
- Telegram: @AMAImediacom
- NOESIS version: v14.8 (Unified 112LANG)
- Release date: 2026-05-20
Qwen3-ForcedAligner-0.6B (NOESIS bundle, 112LANG, Unified)
Forced-alignment / timestamp-prediction model from the Qwen3-ASR family by Alibaba's Qwen team. Aligns text-speech pairs and returns word/character-level timestamps for up to 5 minutes of speech. Extended from upstream 11 langs to 112 langs via NOESIS unified training (single-run on top of v3=98LANG). Bundled as the timestamp generator for the NOESIS Professional Multilingual Dubbing Automation Platform (DHCF-FNO).
Lineage
Each successive bundle is a drop-in replacement for the previous one: identical wrapper API (Qwen3ForcedAligner.from_pretrained(...)), identical file layout, identical inference path. Prior bundles remain on disk as fallbacks.
Unified training summary (v6, sealed R-UNIFIED-EXPANSION-FA-112-SINGLE-RUN)
Test results (full suite, 2026-05-20)
Reproduce: .conda/python.exe src/full_test_suite_112lang.py Full report JSON: logs/full_test_suite_112lang.json Full testing playbook (3 test types + interpretation guide): docs/TESTING_GUIDE.md
Human listening verdict (2026-05-20, all 112 languages reviewed)
Founder Ilia Bolotnikov reviewed karaoke MP4s for every language in this bundle (112/112 covered, output in tests/e2e_all_112/, see INDEX.md). Conclusion:
Important finding: the strict bad_order > 0 = FAIL metric is overly pessimistic for complex-script langs. Real perceived alignment quality is substantially higher than the raw timestamp-ordering count implies, because many "badorder" cases are sub-frame inversions (e.g. word i `endtime = word i+1 start_time` − 1 ms) that are visually inaudible/invisible.
Per-language listening estimates on sampled TIER D langs:
The other 11 TIER D langs (am, as, ckb, cy, el, gu, hi, hy, ml, mr, my) were not individually spot-checked but expected to follow the same pattern: real-world quality is meaningfully better than the strict metric reports. The monotonicity post-fix snippet (see "Recommended post-processing" section) is sufficient for most production use cases on these langs.
Net judgement: model is production-ready for all 112 languages.
- TIER A/B/C (87 langs): publish as-is.
- TIER D (14 langs): apply monotonicity post-fix in pipeline — quality becomes near-A-tier in practice.
How to verify alignment with your own ears
Run an end-to-end karaoke test where each word lights up on screen at its alignment moment:
cd ..\NOESIS-Qwen3-ForcedAligner-0.6B-BF16
.\.conda\python.exe src\e2e_dub_karaoke.py --demoOutput: tests\e2e_demo\<lang>_<id>_karaoke.mp4 — open in any player (VLC, MPC, etc.). If words appear when spoken -> alignment correct. Audio is loudness-normalized to -16 LUFS for comfortable listening even from 16 kHz FLEURS sources. See docs/TESTING_GUIDE.md Section 4 for full details.
Performance (T4: throughput + VRAM, 100 sample utterances)
1 hour of video aligned in ~36 seconds. Production-grade speed.
Functional smoke (T2: word-level alignment on all 87 refined langs)
- 1 utterance per language from training JSONLs
- Pass criterion (strict):
bad_order == 0 AND bad_neg == 0 bad_order= words whereend_time <= start_time(timestamp ordering violation)
Aggregate: 34/87 strict-PASS (39%), 53/87 WARN with 1+ bad_order
AAS regression (T1: Tier-1 30 langs)
- 20/30 langs evaluated (10 ORIGINAL_11 SKIP -- no training JSONL by design)
- Pass criterion same as T2
Alignment quality on the 14 NEW langs (from smokeunifiedv6_112lang)
Per-language quality matrix (production guidance)
Bucketing: rate = badorder / nwords on a single representative utterance. Real production performance on long-form dubbing is downstream and lives in the NOESIS dubbing pipeline -- see R-DUBBING-ISOCHRONY-50MS for end-task criterion.
TIER A -- PRODUCTION READY (34 langs, 0% bad_order on smoke)
af ar ast az be bg bs ca ceb cs et fi gl ha hr id
is jv kam kk lb lt lv mt ny oc ro sk sl sn sv tr
uk umbPlus 10 of 14 new langs at PASS: xh zu ti tk ug eu gn rw mvy qxp.
Use without hesitation. Word-level timestamps are monotonic and well-ordered on the sampled utterance.
TIER B -- GOOD, USE NORMALLY (20 langs, 1-10% bad_order rate)
da fa ff fil ga hu ig kea ln mi mk mn nl nso pl so
sr sw uz viUse in production. 1-2 minor ordering glitches per ~20-30 word utterance. For sub-frame lip-sync precision, a post-processing monotonicity enforcement pass (sort by start_time, clamp overlaps) is recommended.
TIER C -- USE WITH CAUTION (19 langs, 10-25% bad_order rate)
bn he km kn ky lg luo ms ne no om or pa ps sd ta
tg th urPlus 4 of 14 new langs in WARN: yo wo kmr skr.
Production-ready ONLY with post-processing monotonicity fix. Raw output will have 2-7 ordering glitches per typical utterance. Most are minor and mergeable, but verify on representative samples before deploying for mission-critical subtitling.
TIER D -- complex scripts (14 langs, >25% strict bad_order)
am as ckb cy el gu hi hy ka lo ml mr my teRevised guidance after 2026-05-20 listening review: these languages have complex scripts where strict timestamp-inversion counting is inherently noisy (Indic abugidas, Greek, Welsh mutations, Armenian, Burmese, Lao, Georgian, Sorani-Kurdish). The strict metric overstates user-perceived defects.
Sampled real-world quality (founder listening, 2026-05-20):
kaGeorgian: ~90% perceived correct -> production-readyteTelugu: 60-80% perceived correct -> production with post-fixloLao: 50-60% perceived correct -> production with post-fix
Recommended action for the full TIER D set:
- apply the monotonicity post-fix below (single sort + clamp pass), and
- the output is acceptable for word-level lip-sync on these langs;
- only fall back to a script-specific CTC aligner (MMS for Indic etc.) if your end-task QA flags a specific lang as inadequate.
UNTESTED -- ORIGINAL11 basepretrained (11 langs)
en zh es pt ru ja de fr ko it yueThese languages are served by the v3=98LANG base bundle weights without any NOESIS fine-tuning data (no JSONLs exist for them in our training manifest -- the upstream Qwen3-ForcedAligner already handles them well, per the 42.9 ms AAS Alibaba report).
Functional verification: model loads, forward pass succeeds (Test A PASS). Word-level quality: assumed equivalent to upstream Qwen3-ForcedAligner-0.6B (no per-word smoke run in this report).
For high-stakes use on these 11 langs, run an AAS regression with your own reference JSONLs:
.conda/python.exe src/07_eval_aas.py --langs en ru ja --reference path/to/ref.jsonlWhat is NOT measured by this test suite
Lineage of fine-tuning (NOESIS Phases A through Unified)
Forced-alignment quality (upstream baseline reference)
Average Alignment Shift (AAS, ms -- lower is better) on MFA-labeled raw audio:
5-min concatenated audio: upstream holds 52.9 ms AAS avg. Source: official Qwen3-ASR technical report (2026).
Hardware footprint
Quick start
import torch
import numpy as np
import soundfile as sf
from qwen_asr import Qwen3ForcedAligner
bundle = "B:/.../models/asr/NOESIS-Qwen3-Forced-Aligner-0.6B-112LANG-BF16"
aligner = Qwen3ForcedAligner.from_pretrained(
bundle,
dtype=torch.bfloat16,
device_map={"": 0}, # STRICT -- never "auto"
)
# Method 1: from file path
results = aligner.align(
audio="path/to/clip.wav",
text="Hello world. This is an alignment test.",
language="english",
)
# Method 2: from numpy array + sample rate
audio, sr = sf.read("clip.wav", dtype="float32")
results = aligner.align(
audio=(audio, sr), # (ndarray, sr) tuple -- NOT torch.Tensor
text="Hello world.",
language="english",
)
for tok in results[0].items:
print(f"{tok.text!r:>14} {tok.start_time:.3f} - {tok.end_time:.3f}s")Recommended post-processing for TIER C+D langs
def enforce_monotonicity(items):
"""Sort by start_time, then clamp any overlap (end_time of i+1 must be > start_time of i)."""
items = sorted(items, key=lambda x: x.start_time)
for i in range(len(items) - 1):
if items[i].end_time > items[i+1].start_time:
items[i].end_time = items[i+1].start_time
if items[i].end_time <= items[i].start_time:
items[i].end_time = items[i].start_time + 0.01 # min 10ms duration
return itemsSealed rules (NOESIS DHCF-FNO)
R-FORCED-ALIGNER-NAR-- use the NAR forward path; do NOT autoregress.R-APACHE-PRESERVE-- redistributed under the same Apache 2.0 terms as upstream Qwen3-ForcedAligner-0.6B.R-FORCED-ALIGNER-MAX-5MIN-- clip audio to <= 5 minutes per call.R-DUBBING-FILM-SCOPE-- model is positioned for film-dubbing alignment & subtitling.R-ISOLATED-LORA-AAS-GATE(v3.64) -- LoRA tested via AAS regression before merge.R-UNIFIED-EXPANSION-FA-112-SINGLE-RUN(v3.69) -- sealed 2026-05-19, this bundle is the canonical realization.R-CANONICAL-TRAINING-RECIPE-V1-PROVEN(NT-220) -- classicaltransformers.Trainer+ pre-tokenize +pad_collate, NOT SFTTrainer.R-TRAIN-CKPT-50-RESUMABLE-- save_steps=50, resumable via--resume.
Provenance
Citation
@article{Qwen3-ASR,
title = {Qwen3-ASR Technical Report},
author = {Xian Shi and Xiong Wang and Zhifang Guo and Yongqi Wang and
Pei Zhang and Xinyu Zhang and Zishan Guo and Hongkun Hao and
Yu Xi and Baosong Yang and Jin Xu and Jingren Zhou and
Junyang Lin},
journal = {arXiv preprint arXiv:2601.21337},
year = {2026}
}
@misc{noesis2026qwen3aligner112,
title = {Qwen3-ForcedAligner-0.6B in NOESIS (112-language unified bundle):
forced alignment for multilingual film-dubbing pipelines},
author = {Bolotnikov, Ilia and AMAImedia},
year = {2026},
note = {Upstream Qwen3-ForcedAligner-0.6B (Apache 2.0), extended via
NOESIS Phases A-G QLoRA fine-tunes (cascading self-pseudo-label
expansion, NT-166/NT-178) and a final Unified-112 single-run
training (R-UNIFIED-EXPANSION-FA-112-SINGLE-RUN, sealed 2026-05-19)
to 101 trained + 11 base_pretrained = 112 total. Bundled into
NOESIS DHCF-FNO multilingual dubbing pipeline as stage-15 timestamp
generator. 0.6B params, RTF 0.010, 1.96 GB peak VRAM.},
url = {https://amaimedia.com}
}License
Apache License 2.0. Original Qwen3-ForcedAligner-0.6B weights © Qwen team / Alibaba Cloud (2026). Redistribution, NOESIS Phases A-G + Unified fine-tune additions, integration notes, packaging metadata, test suite: © AMAImedia (NOESIS DHCF-FNO project) 2026. See LICENSE in this directory.
