Sortformer: A Novel Approach for Permutation-Resolved Speaker Supervision in Speech-to-Text Systems
Taejin Park, Ivan Medennikov, Kunal Dhawan, Weiqing Wang, He Huang, Nithin Rao Koluguri, Krishna C. Puvvada, Jagadeesh Balam, Boris Ginsburg
ICML 2025 Proceedings of the
eess.AS, cs.CL, cs.LG, cs.SD
2024-09-11
NVIDIA 提出 Sortformer,用到达时间排序解开说话人置换,既可独立做说话人分离,也可经正弦核监督多说话人 ASR。混合损失在 DIHARD III(不超过 4 人)上 DER 14.76;接入 Canary 后 2-mix WER 从 6.55 降到 4.61。
多说话人语音识别一直卡在标签对齐上。说话人分离系统输出的是「谁在哪段时间开口」,ASR 输出的是字。两边各自面对置换问题:同样两个人,模型把他们叫 0 号和 1 号,真值可能反过来,训练就对不上。常见做法是 permutation-invariant loss,在所有说话人排列里挑损失最小的那个。这条路在分离任务上成立,接到 ASR 上就别扭:文本侧还得另写一套 PIT,多任务训练更麻烦。纯端到端多说话人 ASR 又缺带说话人标注的数据,效果经常落后于级联系统。
NVIDIA 把置换从损失函数里拿出来,改成数据约定:按每个说话人第一次开口的时间排队,模型和标签共用这套顺序。排序一旦固定,多说话人 ASR 就可以用普通 token 交叉熵,训练方式和单说话人几乎一样。
Sortformer 是编码器型说话人分离模型。前端是 115M 的 NEST Fast-Conformer,上面叠 18 层 Transformer(隐层 192),四个 sigmoid 输出,最多四人,总参数 123M。说话人是否开口被当成多标签二分类,所以输出是 sigmoid 而不是 softmax。
Sort Loss 的做法很直接:先按到达时间把真值的说话人行排好,再跟预测做二元交叉熵,不再搜 K 的阶乘种排列。到达时间估错时这条损失会偏,所以还提供混合损失:α 乘 Sort Loss 加 (1-α) 乘 PIL,实验里 α 取 0.5。
要让 Transformer 学会排序,必须加位置编码。去掉位置编码后,多头自注意力对序列顺序是等变的,排不了谁先开口。
接到 ASR 上的桥是正弦核。把 Sortformer 的帧级说话人后验乘上一组正弦 speaker kernel,加到按列做了 L2 归一化的 ASR 编码器状态上。转录文本里的说话人标记也按到达时间排成「spk0」「spk1」,论文叫 Sorted Serialized Transcript。词级目标是每个词前面插一个说话人 token,段级目标更接近序列化输出训练的写法。训练时 ASR 只用标准交叉熵。Sortformer 可以冻住,也可以一起微调;对 1B 的 Canary,作者只训 adapter,保住原 ASR 能力。
独立分离任务上,同一个模型评三套数据,不做分数据集微调。混合损失加时间戳后处理:
| 系统 | DIHARD III 不超过 4 人,0 秒 collar | CALLHOME 2/3/4 人,0.25 秒 | CH109 双人 |
| Sortformer 混合损失 | 14.76 | 5.87 / 8.46 / 12.59 | 6.86 |
| 仅 PIL | 17.04 | 6.94 / 10.30 / 17.52 | 6.89 |
| EEND-EDA | 15.55 | 7.83 / 12.29 / 17.59 | 未报 |
Sort Loss 单用已经接近 PIL,两者合在一起才明显拉开。相对纯 PIL,混合损失把 DIHARD III 的 DER 从 17.04 降到 14.76,CALLHOME 四人从 17.52 降到 12.59。EEND-GLA-Large 在 DIHARD III 上是 13.64,仍略好,但那套系统带聚类阶段,也不是严格端到端。
接到 Canary-170M 上,总参数变成 293M,得到 Sortformer-MS-Canary。LibriSpeechMix:
| 系统 | 单人 | 两人混合 | 三人混合 |
| Canary-170M 原版 | 2.19 | 21.37 | 48.71 |
| MS-Canary,无说话人监督 | 2.74 | 6.55 | 12.14 |
| Sortformer-MS-Canary | 2.26 | 4.61 | 9.05 |
| SOT-ASR-SQR | 4.2 | 8.7 | 20.2 |
| MT-LLM,8.4B | 2.3 | 5.2 | 10.2 |
相对无监督的 MS-Canary,两人混合相对降约 30%,三人混合相对降约 25%。真实会议 AMI-test(不超过 4 人)上,1B Canary 加 256 维 adapter、词级说话人 token 时 WER 18.04%、cpWER 26.71%;同样数据上无说话人监督的 170M 微调是 19.67%/32.94%。Sortformer 并进 ASR,处理时间只多 0.78%。
能直接拿走的是训练接口。多说话人 ASR 退化成「在文本里插入已排好序的说话人 token,用普通交叉熵」。不必为说话人单独写 PIT,也不必标词级时间戳。模型和代码在 NVIDIA NeMo 里开源。
这是工程整合,不是把 DER 再压几个点。已经在用 Canary 或 Fast-Conformer 的团队,接入成本低;自己做 PIT 多说话人 ASR 的人,这条路径更省事。对要把说话人标记接到多模态大模型上的人,正弦核加排序 token 是一条可微、可微调的通道,论文自己还没把这条通道跑通。
硬上限是 4 个说话人,长会话被切成 90 秒。DIHARD III 只报不超过 4 人的子集,跟能处理任意人数的系统不是同一赛道。CH109 和 CALLHOME part1 有轻微重叠,作者说影响很小,但没给去掉重叠后的数字。
真实会议上 cpWER 仍明显高于 WER,认错人的问题还在。Sortformer 一起微调反而比冻住更差:AMI 上 cpWER 从 28.17 升到 32.74,联合训练并不稳。LibriSpeechMix 是人造重叠,跟真实会议不是一回事。正弦核能不能无痛接到任意多模态大模型上,正文没有实验。