強制整列

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 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

--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のみがロードされます。