Terjemahan mesin · Versi asli bahasa Inggris
Penyelarasan paksa
MLX dan CoreML gunakan fitur masukan Whisper- gaya yang sama: 128 Slaney-normalisasi tempat-tempat mel dari tepat 400-point STFT di 16 kHz, dengan 160-sample hop dan jendela periodik Hann.
Qwen3-ForcedAligner menyediakan alignmen timestamp kata-tingkat untuk audio. Ia melakukan a non-autoregresif single forward pass untuk menyelaraskan setiap kata dalam transkrip ke posisi yang tepat dalam bentuk gelombang audio.
¶ How It Works ¶
Decoder mengklasifikasikan setiap kata awal awal dan akhir penanda waktu. Koreksi menggunakan subsequences terlama (LIS dengan nilai yang sama diperbolehkan), mempertahankan batas-batas yang sama diperbolehkan dan memilih jangkar awal ketika rantai memiliki panjang yang sama. Nilai-dari -urutan menggunakan koreksi ketat-tetangga atau interpolasi. MLX tidak termasuk prediksi di luar durasi audio dari anchor tersebut.
| Properti | Nilai |
|---|---|
| Metode perataan | Klasifikasi penanda waktu dengan koreksi tidak menurun |
| Resolusi penanda waktu | 80 md |
| Kelas keluaran | 5000 |
| Mode instruksi | Tidak-autoregresif (single forward pass) |
MLX dan CoreML runtimes menempatkan dua slot timestamp setelah setiap kata: word<timestamp><timestamp>Sebuah slot sebelum kata pergeseran prediksi ke kata sebelumnya.
Penggunaan CLI
Align suatu berkas audio. Jika tidak ada transkrip yang disediakan, audio secara otomatis ditranskripsi terlebih dahulu menggunakan Qwen3-ASR:
.build/release/speech align recording.wav
Menyediakan transkrip yang dikenal untuk melewatkan transkripsi otomatis:
.build/release/speech align recording.wav --text "The quick brown fox jumps over the lazy dog"
Opsi
# 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
Dukungan Bahasa
Pass --language pencocokan bahasa audio. Model secara resmi dilatih pada 11 bahasa (en, zh, ja, ko, es, fr, de, ru, itu, pt, ar); preprosesor juga segmen morphemes Jepang, kata-kata Korea, karakter Cina, dan Thai / Lao / Khmese / Tibetan native melalui Apple NLTokenizerPerpaduan tanda (matera Devanagari, huruf vokal Thailand, dll) dijaga sehingga kata-kata seperti नमस्ते dan สวัสดี Tetap utuh.
Variants Model
Multiple model variants are available, trading size for akurasi:
| Varian | ID Model | Ukuran |
|---|---|---|
| MLX 4- bit (baku) | 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 |
CoreML alignmen baku ke .cpuAndNeuralEngine orang-orang yang berbuat riya, .cpuAndGPU untuk decoder teks. SPEECH_COREML_COMPUTE_UNITS overrides baik. Bundel decoder yang diterbitkan dapat menghasilkan penanda waktu yang salah pada Neural Engine atau semua-nol penanda waktu dengan cpuOnly.
Eksplisit cpuOnly beban dari model INT8 dan FP16 pilih text_decoder_cpu_v1, yang normalisasi RMS menggunakan Float32 dengan bobot asli yang dipelajari. Jalankan satu daring untuk mengunduh bundel ini; sebuah singgahan luring lama masih berisi decoder warisan. GPU eksekusi terus digunakan text_decoder. INT8 perbaikan normal cocok dengan semua 22 referensi batas pada macOS 15.8.2; validasi fisik- iPhone tetap terpisah.
Pilih suatu varian dengan --aligner-model:
.build/release/speech align recording.wav --aligner-model aufklarer/Qwen3-ForcedAligner-0.6B-8bit
Format Keluaran
Pensejajarkan mengeluarkan satu baris per kata dengan awal dan akhir penanda waktu dalam hitungan detik:
[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
Setiap pasangan timestamp mengindikasikan awal dan akhir waktu kata dalam audio, pada resolusi 80 ms.
Penanganan audio panjang
Kepala klasifikasi dapat mengatasi hingga 400 detik dalam prinsip (kelas 5000 × 80 ms), tetapi pada pengiriman Qwen3-ForcedAligner-0.6B model dilatih sampai sekitar 270 detikMelewati titik itu, model memancarkan timestamp yang berisik dan posting LIS-pengolahan runtuh setiap kata trailing ke timestamprint yang sama.
CLI menangani hal ini secara otomatis: audio panjang dipotong di titik saturasi dan selaras kembali. Anda akan melihat pesan satu baris ketika chunking kicks in:
Audio 306.2s saturated after word 690 (272.6s); chunking remaining 33.6s (pass 2)
Set ALIGN_DEBUG=1 untuk membuang mentah vs. penanda waktu yang dikoreksi saat menyelidiki hasil yang tidak masuk akal.
Batas dikenal: terkemuka bukan-pidato
Ketika audio dimulai dengan bukan-pidato (musik intro, keheningan panjang), model sering menandai kata pertama dekat 0 detik karena klasifikasi tidak memiliki gagasan "pidato belum dimulai." Workaround: memangkas pidato terkemuka sebelum menyelaraskan, atau jalankan VAD sebelum-lewat dengan Silero untuk menemukan awal pidato aktual.
Ketika tidak ada --text disediakan, alignner pertama menjalankan sebuah transkripsi Qwen3-ASR penuh, kemudian menyelaraskan teks hasil. Ini berarti run pertama dimuat baik model ASR dan model aligner. Menyediakan. --text melewati langkah ASR dan hanya memuat perpaduan.