Forced Alignment

Qwen3-ForcedAligner bietet wortgenaue Zeitstempel-Zuordnung für Audio. Er führt einen nicht-autoregressiven Single-Forward-Pass aus, um jedes Wort in einem Transkript seiner exakten Position in der Audio-Wellenform zuzuordnen.

Funktionsweise

Der Aligner verwendet CTC-Alignment (Connectionist Temporal Classification) mit einem LIS-Monotonie-Korrekturschritt (Longest Increasing Subsequence). Dadurch sind die Zeitstempel immer in korrekter Reihenfolge, selbst wenn die Roh-CTC-Ausgabe kleinere Inkonsistenzen enthält.

EigenschaftWert
Alignment-MethodeCTC mit LIS-Monotonie-Korrektur
Zeitstempel-Auflösung80 ms
Ausgabeklassen5000
InferenzmodusNicht-autoregressiv (Single-Forward-Pass)

CLI-Verwendung

Richte eine Audiodatei aus. Wird kein Transkript angegeben, wird das Audio zunächst automatisch mit Qwen3-ASR transkribiert:

.build/release/audio align recording.wav

Gib ein bekanntes Transkript an, um die automatische Transkription zu überspringen:

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

Optionen

# Transkripttext direkt angeben
.build/release/audio align recording.wav --text "known transcript"

# ASR-Modell für den Auto-Transkriptionsschritt wählen
.build/release/audio align recording.wav --model 1.7b

# Aligner-Modellvariante angeben
.build/release/audio align recording.wav --aligner-model default

# Sprache setzen
.build/release/audio align recording.wav --language en

Modellvarianten

Mehrere Modellvarianten sind verfügbar, die Größe gegen Genauigkeit abwägen:

VarianteModell-IDGröße
MLX 4-Bit (Standard)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

Wähle eine Variante mit --aligner-model:

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

Ausgabeformat

Der Aligner gibt eine Zeile pro Wort mit Start- und Endzeitstempel in Sekunden aus:

[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

Jedes Zeitstempelpaar gibt die Start- und Endzeit des Wortes im Audio an, mit einer Auflösung von 80 ms.

Wichtig

Wird kein --text angegeben, führt der Aligner zunächst einen vollständigen Qwen3-ASR-Transkriptionsdurchlauf aus und richtet dann den resultierenden Text aus. Das bedeutet, dass der erste Lauf sowohl das ASR-Modell als auch das Aligner-Modell lädt. Mit --text wird der ASR-Schritt übersprungen und nur der Aligner geladen.