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.

VlastnostHodnota
Metoda zarovnáníČasová klasifikace s neklesající korekcí
Časové rozlišení80 ms
Výstupní třídy5000
Inerční režimNon- 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:

VariantaVzor IDVelikost
MLX 4-bit (přednastaveno)aufklarer/Qwen3-ForcedAligner-0.6B-4bit~ 979 MB
MLX 8- bitaufklarer/Qwen3-ForcedAligner-0.6B-8bit~ 1.3 GB
MLX bf16aufklarer/Qwen3-ForcedAligner-0.6B-bf16- 1.8 GB
CoreML INT4aufklarer/Qwen3-ForcedAligner-0.6B-CoreML-INT4~ 662 MB
CoreML INT8aufklarer/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.

Důležité

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.