Awtomatikong salin · Orihinal sa Ingles

Sapilitang pag-aayon

MLX at CoreML ay gumagamit ng parehong Whisper-style input na mga katangian: 128 Slaney-normalized mel bins mula sa isang eksaktong 400-point STFT sa 16 kHz, na may 160 -sample hop at isang pana-panahong bintanang Hann.

Qwen3-ForcedAligner nagbibigay ng salitang-level timestamp para sa audio. Ito ay nagsasagawa ng isang non-autoregressive one forward pass upang i-ayon ang bawat salita sa isang transcription sa tiyak na posisyon nito sa audio waveform.

Kung Paano Ito Umaandar

Ang decoder classifies bawat salita ay gumagamit ng isang pinakamahabang nondecreasting subsequence (LIS na may pantay na mga halaga pinapayagan), pag-iingat ng mga parehong hangganan at pagpili ng pinakamaagang mga aspeto kapag ang mga kadena ay may pantay na haba. Ang out-of-order na mga halaga ay gumagamit ng pinakamalapit na-internasyunal na pagtutuwid o interpolasyon. MLX ay hindi nag-puwera ng mga prediksiyon na lampas sa audio na tagal mula sa mga aspeksiyon nito.

Mga ari - arian Halaga
Paraan ng Pagpapaalam Madalas na klasipikasyon na may di - maluluwag na pagtutuwid
Resolution sa Panahon80 ms
Mga klase sa output5000
Kawalang - InteresHindi-autoregresibo (pagdaang pasulong)

Ang MLX at CoreML runtimes ay naglalagay ng dalawang timestamp slots pagkatapos ng bawat salita: word<timestamp><timestamp>. Ang una ay humuhula ng simula ng salita, at ang ikalawa naman ay ang dulo nito.

Paggamit ng CLI

Align isang audio file. Kung walang transcript, ang audio ay awtomatikong isinasalin muna gamit ang Qwen3-ASR:

.build/release/speech align recording.wav

Maglagay ng kilalang transcription para maka - bread ng automatic transcriptition:

.build/release/speech align recording.wav --text "The quick brown fox jumps over the lazy dog"

Mga Mapagpipilian

# 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

Suporta sa Wika

Daan --language Katugma ng wikang audio. Ang modelo ay opisyal na sinasanay sa mga wikang 11 (en, zh, ja, ko, es, f, de, ru, ito, pt, ar); ang preprocessor ay bahagi rin ng mga salitang Hapon na morpheme, Koreano, Intsik na per-character, at Thai / Lao / Carnometer / Tibetano na katutubo sa pamamagitan ng Apple's. NLTokenizer. Pinagsamang mga marka (Devanagari matras, Thai patinig, atbp.) ay iniingatan kaya ang mga salitang tulad ng नमस्ते at สวัสดี manatiling buo.

Modelong mga Variante

Maraming iba't ibang modelo ang makukuha, anupat ang laki ng mga ito'y ginagamit para sa kawastuan:

Kaurian Modelong ID Laki
MLX 4-bit (default)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

CoreML na naghahanay ng mga default sa .cpuAndNeuralEngine para sa taga-Serkler at taga-Sextler .cpuAndGPU para sa decoder ng teksto. SPEECH_COREML_COMPUTE_UNITS Ang parehong surges. Ang inilathalang mga decoder na bungkos ay maaaring lumikha ng mga maling timestamp sa Neural Engine o lahat ng-zero timestamps na may mga di-tamang timestamp cpuOnly.

Ilabas cpuOnly Mga karga ng mga modelong INT8 at FP16 text_decoder_cpu_v1, na ang RMS normalization ay gumagamit ng Float32 na may orihinal na pinag-aaralang mga pabigat. htakbo ang isang online na karga upang i-download ang bungkos na ito; ang isang lumang offline cache ay naglalaman pa rin ng legacy decoder. GPU bitay ay patuloy na ginagamit text_decoder. Ang INT8 normalization repair ay tumutugma sa lahat ng 22 na mga hangganang reperensiya sa macOS 15.8.2; ang pisikal-iPhone na professionalation ay nananatiling hiwalay.

Pumili ng ibang anyo na may --aligner-model:

.build/release/speech align recording.wav --aligner-model aufklarer/Qwen3-ForcedAligner-0.6B-8bit

Ilabas na Parmato

Ang magkakahanay ay naglalabas ng isang linya sa bawat salita na may pasimula at pangwakas na mga timestamp sa loob ng mga segundo:

[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

Ang bawat timestamp pares ay nagpapahiwatig ng simula at pagtatapos ng panahon ng salita sa audio, sa bilis na 80 ms resolution.

Paghawak ng Long-audio

Ang klasipikasyong ulo ay maaaring umere ng hanggang 400 segundo sa prinsipyo (5000 klase × 80 ms), ngunit sa shipd Qwen3-ForcedAligner-0.6B Ang modelo ay sinanay hanggang sa mga 270 segundo. Sa nakaraan ang modelo ay naglalabas ng maiingay na timestamp indices at ang LIS post-processing ay bumabagsak sa lahat ng mga salita sa parehong panahon.

Kusang pinangangasiwaan ito ng CLI: mahabang audio ay naka-clush sa punto ng staturation at re-alignan. makikita mo ang isang one-line na mensahe kapag nag-sclack sa:

Audio 306.2s saturated after word 690 (272.6s); chunking remaining 33.6s (pass 2)

Magtakda ng ALIGN_DEBUG=1 upang magtapon ng hilaw na vs. holfed timestamp indices kapag nag-iimbestiga ng mali-na-inspektang outputs.

Alam na limitasyon: nangungunang non-speech

Kapag ang audio ay nagsimula sa non-speech (music intro, mahabang katahimikan), ang modelo ay madalas na tumatak sa unang salita malapit sa 0 segundo dahil ang classifier ay walang ideya ng "speech ay hindi pa nagsimula". Worklifting: basihin ang nangungunang non-sspeech bago mag-ayon, o tumakbo ng isang VAD pre-pass na may Silero upang mahanap ang aktuwal na pagsasalita.

Mahalaga

Kapag wala --text ay inilaan, ang complender ay unang nagpapatakbo ng isang kumpletong Qwen3-ASR transcription passes, pagkatapos ay mag-ayon sa naturang teksto. Ito ay nangangahulugan ng unang runloads parehong ang ASR model at ang confinder model. --text Hindi na lalagpasan ang ASR hakbang at ang kahanayan lamang ang ikinakarga.