强制对齐
Qwen3-ForcedAligner 为音频提供词级时间戳对齐。它通过非自回归的单次前向传播,将转写文本中的每个词对齐到其在音频波形中的精确位置。
工作原理
对齐器采用 CTC(Connectionist Temporal Classification)对齐,并引入 LIS(Longest Increasing Subsequence)单调性修正步骤。即使原始 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
# 指定对齐器模型变体
.build/release/audio align recording.wav --aligner-model default
# 设置语言
.build/release/audio align recording.wav --language en
模型变体
可选择多种模型变体,在大小和精度之间权衡:
| 变体 | 模型 ID | 大小 |
|---|---|---|
| MLX 4-bit(默认) | 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 |
使用 --aligner-model 选择变体:
.build/release/audio align recording.wav --aligner-model aufklarer/Qwen3-ForcedAligner-0.6B-8bit
输出格式
对齐器为每个词输出一行,包含以秒为单位的起止时间戳:
[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 时,对齐器会先运行一次完整的 Qwen3-ASR 转写,然后再对生成的文本进行对齐。这意味着首次运行会同时加载 ASR 模型和对齐器模型。提供 --text 可跳过 ASR 步骤,只加载对齐器。