Strojový překlad · Anglický originál
Vynucené zarovnání
MLX a CoreML používají stejné funkce Whisper- styl vstupu: 128 Slaney- normalizované mel koše z přesného 400-point STFT na 16 kHz, se vzorkem 160- hop a periodické Hann okno.
Qwen3-ForcedAligner poskytuje word-level timestamp laying for audio. Provádí non-autoregresivní jednosměrný průsmyk, aby každé slovo v přepisu sladil s jeho přesnou pozicí v zvukové podobě.
Jak to funguje
Dekodér klasifikuje každé slovo start a end timestracks. Oprava používá nejdelší non-klesající integrity (LIS se rovnými hodnotami povoleny), zachování společných hranic a výběr prvních kotvů, když řetězy mají stejnou délku. Out- of- order hodnoty používají nearest- near korekce nebo interpolace. MLX vylučuje předpovědi mimo trvání zvuku od jeho kotvy.
| Vlastnost | Hodnota |
|---|---|
| Metoda zarovnání | Časová klasifikace s neklesající korekcí |
| Časové rozlišení | 80 ms |
| Výstupní třídy | 5000 |
| Inerční režim | Non- autoregresivní (jednosměrný průchod vpřed) |
MLX a CoreML runtimes umístit dvě časové razítka sloty po každém slově: word<timestamp><timestamp>. První předpovídá začátek slova, a druhý jeho konec. Slot před slovem posune předpovědi na předchozí slovo.
Použití CLI
Srovnejte zvukový soubor. Pokud není k dispozici žádný přepis, je zvuk automaticky přepsán nejprve pomocí Qwen3-ASR:
.build/release/speech align recording.wav
Poskytněte známý přepis, který přeskočí automatické přepis:
.build/release/speech align recording.wav --text "The quick brown fox jumps over the lazy dog"
Možnosti
# Specify transcript text directly
.build/release/speech align recording.wav --text "known transcript"
# Choose ASR model for auto-transcription step
.build/release/speech align recording.wav --model 1.7b
# Specify aligner model variant
.build/release/speech align recording.wav --aligner-model default
# Set language
.build/release/speech align recording.wav --language en
Jazyková podpora
Projít --language model je oficiálně vyškolen na 11 jazyky (en, zh, ja, ko, es, fr, de, ru, it, pt, ar); preprocesor také segmenty japonské morfemy, korejských slov, čínské per- charakter, a thajské / Lao / Khmer / Barmese / Tibet nativně přes Apple NLTokenizer. Kombinace značky (Devanagari matras, thajské samohlásky, atd.) jsou zachovány tak slova jako नमस्ते a สวัสดี zůstat nedotčen.
Vzor Variantů
K dispozici je více variant modelu, velikost obchodování pro přesnost:
| Varianta | Vzor ID | Velikost |
|---|---|---|
| MLX 4-bit (přednastaveno) | aufklarer/Qwen3-ForcedAligner-0.6B-4bit | ~ 979 MB |
| MLX 8- bit | aufklarer/Qwen3-ForcedAligner-0.6B-8bit | ~ 1.3 GB |
| MLX bf16 | aufklarer/Qwen3-ForcedAligner-0.6B-bf16 | - 1.8 GB |
| CoreML INT4 | aufklarer/Qwen3-ForcedAligner-0.6B-CoreML-INT4 | ~ 662 MB |
| CoreML INT8 | aufklarer/Qwen3-ForcedAligner-0.6B-CoreML-INT8 | ~ 1.1 GB |
Zarovnání CoreML má vady .cpuAndNeuralEngine pro kodér a .cpuAndGPU pro textový dekodér. SPEECH_COREML_COMPUTE_UNITS překrývá oba. Publikované dekodérové svazky mohou vyrábět nesprávné časové razítka na Neural Engine nebo all- nula časových razítek s cpuOnly.
Explicitní cpuOnly zatížení modelů INT8 a FP16 text_decoder_cpu_v1, jehož RMS normalizace používá Float32 s originálními učených závaží. Spustit jeden online zatížení ke stažení tohoto balíčku; stará offline cache stále obsahuje odkaz dekodér. GPU provedení pokračuje používat text_decoder. Normalizace INT8 odpovídá všem vztažným hranicím 22 na macOS 15.8.2; validace fyzicko-iPhone zůstává oddělená.
Vyberte variantu s --aligner-model:
.build/release/speech align recording.wav --aligner-model aufklarer/Qwen3-ForcedAligner-0.6B-8bit
Výstupní formát
Aligner vystupuje po jednom řádku za slovo se startovními a koncovými časovými razítky v sekundách:
[0.24 - 0.48] The
[0.48 - 0.72] quick
[0.72 - 1.04] brown
[1.04 - 1.36] fox
[1.36 - 1.68] jumps
[1.68 - 1.92] over
[1.92 - 2.08] the
[2.08 - 2.40] lazy
[2.40 - 2.80] dog
Každá dvojice timestamp označuje čas začátku a konce slova v audio, při rozlišení 80 ms.
Nakládání s dlouhotrvajícím zvukem
Klasifikovat hlava může oslovit až 400 sekund v zásadě (5000 třídy × 80 ms), ale na odeslané Qwen3-ForcedAligner-0.6B model je spolehlivě vyškolen až do cca 270 sekund. Za tímto bodem, model emituje hlučné indexy timestamp a LIS post- zpracování zhroutí každé vlečné slovo na stejné časové razítko.
CLI se s tím automaticky vypořádává: dlouhý zvuk je v bodu nasycení a přerovnán. Při kopání uvidíte jednořádkovou zprávu:
Audio 306.2s saturated after word 690 (272.6s); chunking remaining 33.6s (pass 2)
Nastavit ALIGN_DEBUG=1 při zkoumání nesprávně uspořádaných výstupů se vypustí indexy syrového oproti korigovaným časovým razítkům.
Známé omezení: vedoucí non-řeč
Když zvuk začíná s non-řeč (hudba intro, dlouhé ticho), model často razítko první slovo v blízkosti 0 sekund, protože klasifikátor nemá představu o "řeč ještě nezačala". Workound: střih přední non-řeč před sladění, nebo spustit VAD předjezd se Silero najít skutečný začátek řeči.
Když ne --text je k dispozici, aligner nejprve běží plný přepis Qwen3-ASR, pak sladí výsledný text. To znamená, že první běh zatížení jak ASR model a aligner model. Poskytování --text Přeskočí krok ASR a pouze načte aligner.