強制整列
Qwen3-ForcedAlignerは音声の単語レベルのタイムスタンプ整列を提供します。非自己回帰のシングルフォワードパスを実行して、トランスクリプト内の各単語を音声波形内の正確な位置に整列させます。
仕組み
Alignerは、LIS(最長増加部分列)による単調性補正ステップを備えたCTC(Connectionist Temporal Classification)整列を使用します。これにより、生のCTC出力に軽微な不整合が含まれていても、タイムスタンプが常に順序どおりであることが保証されます。
| プロパティ | 値 |
|---|---|
| 整列メソッド | LIS単調性補正付きCTC |
| タイムスタンプ解像度 | 80 ms |
| 出力クラス | 5000 |
| 推論モード | 非自己回帰(シングルフォワードパス) |
CLIの使用法
音声ファイルを整列します。トランスクリプトが提供されていない場合、まずQwen3-ASRを使用して音声が自動的に文字起こしされます:
.build/release/audio align recording.wav
自動文字起こしをスキップするために既知のトランスクリプトを提供します:
.build/release/audio align recording.wav --text "The quick brown fox jumps over the lazy dog"
オプション
# トランスクリプトテキストを直接指定
.build/release/audio align recording.wav --text "known transcript"
# 自動文字起こしステップ用のASRモデルを選択
.build/release/audio align recording.wav --model 1.7b
# Alignerモデルバリアントを指定
.build/release/audio align recording.wav --aligner-model default
# 言語を設定
.build/release/audio align recording.wav --language en
モデルバリアント
複数のモデルバリアントが利用可能で、サイズと精度のトレードオフを選択できます:
| バリアント | モデルID | サイズ |
|---|---|---|
| MLX 4ビット(デフォルト) | aufklarer/Qwen3-ForcedAligner-0.6B-4bit | 約979 MB |
| MLX 8ビット | 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 |
--aligner-modelでバリアントを選択します:
.build/release/audio align recording.wav --aligner-model aufklarer/Qwen3-ForcedAligner-0.6B-8bit
出力形式
Alignerは、秒単位の開始および終了タイムスタンプを含む単語ごとに1行を出力します:
[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
各タイムスタンプペアは、80 msの解像度で音声内の単語の開始時間と終了時間を示します。
重要
--textが提供されない場合、Alignerはまず完全なQwen3-ASR文字起こしパスを実行し、次に結果のテキストを整列します。つまり、最初の実行ではASRモデルとAlignerモデルの両方がロードされます。--textを提供することで、ASRステップがスキップされ、Alignerのみがロードされます。