Tłumaczenie automatyczne · Oryginał angielski
Wymuszone wyrównanie
MLX i CoreML używają tych samych funkcji wejściowych w stylu Whisper- style: 128 znormalizowane w Slaney- Kosze z dokładnego STFT 400- punktu 16 kHz, z Hopem próbki 160-i okresowym oknem Hanna.
Qwen3-ForcedAligner zapewnia ustawienie znacznika czasu na poziomie słowa dla dźwięku. Wykonuje on nieautoregresywny pojedynczy przekaz do przodu, aby wyrównać każde słowo w transkrypcie do jego dokładnej pozycji w formie fali audio.
Jak to działa
Dekoder klasyfikuje każdy wyraz znaczniki czasu rozpoczęcia i końca. Korekta wykorzystuje najdłuższą niezmniejszającą się wytrzymałość (LIS z równymi wartościami dopuszczalnymi), zachowując wspólne granice i wybierając najwcześniejsze kotwice, kiedy łańcuchy mają równą długość. Wartości Out- of- order używają korekcji lub interpolacji sąsiedzkiej. MLX wyklucza przewidywania wykraczające poza czas trwania dźwięku z jego kotwic.
| Własność | Wartość |
|---|---|
| Metoda wyrównania | Klasyfikacja znaczników czasu z korektą niezmniejszającą się |
| Rozdzielczość znacznika czasu | 80 ms |
| Klasy wyjściowe | 5000 |
| Tryb wnioskowania | Nieautoregresywne (pojedyncze przednie przepustki) |
Runtimes MLX i CoreML umieszczają dwa miejsca na znacznik czasu po każdym słowie: word<timestamp><timestamp>Pierwszy przewiduje początek słowa, a drugi jego koniec. Szczelina przed słowem przesuwa przewidywania do poprzedniego słowa.
Zastosowanie CLI
Wyrównaj plik audio. Jeśli nie jest dostarczony zapis, audio jest automatycznie zapisywane najpierw za pomocą Qwen3-ASR:
.build/release/speech align recording.wav
Dostarcz znany transkrypt do pominięcia automatycznej transkrypcji:
.build/release/speech align recording.wav --text "The quick brown fox jumps over the lazy dog"
Opcje
# 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
Wsparcie językowe
Pass --language pasujące do języka audio. Model jest oficjalnie przeszkolony na 11 języków (en, zh, ja, ko, es, fr, de, ru, it, pt, ar); preprocesor również segmentuje japońskich morfemów, koreańskich słów, chińskiego per- charakter, i Thai / Lao / Khmer / Birmese / Tybetan naiwnie poprzez Apple 's NLTokenizer. Łączenie znaków (Devanagari matras, samogłosek tajskich, itp.) są zachowane tak słowa jak नमस्ते oraz สวัสดี pozostać nietknięty.
Warianty modelu
Dostępne są różne warianty modeli, wielkość obrotu dla dokładności:
| Wariant | Wzór ID | Rozmiar |
|---|---|---|
| MLX 4- bit (domyślnie) | 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 |
Domyślne ustawienie CoreML do .cpuAndNeuralEngine dla kodującego oraz .cpuAndGPU dla dekodera tekstowego. SPEECH_COREML_COMPUTE_UNITS overrides oba. Opublikowane pakiety dekoderów mogą produkować błędne znaczniki czasu na Neural Engine lub all- zero znaczników czasu z cpuOnly.
Wyrażenie cpuOnly Wybór obciążenia modeli INT8 i FP16 text_decoder_cpu_v1, którego normalizacja RMS wykorzystuje Float32 z oryginalną uczoną wagą. Uruchom jeden ładunek online, aby pobrać ten pakiet; stary podręcznik offline nadal zawiera dekoder spuścizny. GPU wykonanie nadal jest wykorzystywane text_decoder. Naprawa normalizacji INT8 odpowiada wszystkim granicom odniesienia 22 na macOS 15.8.2; walidacja fizyczno-iPhone pozostaje oddzielona.
Wybierz wariant --aligner-model:
.build/release/speech align recording.wav --aligner-model aufklarer/Qwen3-ForcedAligner-0.6B-8bit
Format wyjściowy
Religner wychodzi jedną linią na słowo ze znacznikami czasu rozpoczęcia i zakończenia w sekundach:
[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żda para znaczników czasu wskazuje czas rozpoczęcia i zakończenia słowa w audio, w rozdzielczości 80 ms.
Przenoszenie dźwięków
Głowica klasyfikacja może adresować do 400 sekund w zasadzie (5000 klasy × 80 ms), ale w wysyłce Qwen3-ForcedAligner-0.6B model jest niezawodnie przeszkolony aż do około Sekundy 270. Po tym punkcie, model emituje hałaśliwe wskaźniki czasu i LIS post-processing załamuje każde słowo ciągnące się na ten sam znacznik czasu.
CLI obsługuje to automatycznie: długie audio jest odłamane w punkcie nasycenia i ponownie wyrównane.
Audio 306.2s saturated after word 690 (272.6s); chunking remaining 33.6s (pass 2)
Ustaw ALIGN_DEBUG=1 zrzucanie wskaźników surowych vs poprawionych znaczników czasu podczas badania nieprawidłowo ustawionych wyjść.
Znane ograniczenie: wiodąca niemowa
Kiedy audio zaczyna się od nie-mowy (intro muzyki, długa cisza), model często pieczętuje pierwsze słowo w pobliżu 0 sekund, ponieważ klasyfikator nie ma pojęcia "mowy nie rozpoczął jeszcze". Workeround: przyciąć wiodącą non-mowy przed wyrównaniem, lub uruchomić przed-pass VAD z Silero, aby znaleźć rzeczywisty początek mowy.
Kiedy nie --text jest dostarczona, wyrównawca najpierw uruchamia pełną kartę transkrypcyjną Qwen3-ASR, a następnie dostosowuje uzyskany tekst. Oznacza to, że pierwsze ładunki uruchamiane zarówno w modelu ASR jak i w modelu wyrównawczym. --text pomija krok ASR i ładuje tylko stabilizator.