Skip to content

角色证据与目标说话人识别 ​

“谁在说话”包含两个问题:会话内哪些区间属于同一个人,以及某个区间是否属于预先登记的目标说话人。前者使用角色分离和跨窗关联,后者需要登记参考及目标条件。把匿名槽位直接当目标身份,会同时破坏角色稳定性和过滤正确性。

从匿名槽位到会话身份 ​

Nemotron-3-Diarization 产生局部角色活动证据。窗口内的 slot 编号是模型表示,不是永久身份:窗口重建后槽位可能交换,同一人跨窗口出现也可能占用不同槽位。

实现中先按活动时间线提取可用的单人参考,再与会话身份原型比较。只有证据足够时才建立或更新关联;重叠、极短发言和低置信区间保留不确定状态。新证据不得污染已经稳定的原型,也不得倒改已定稿协议结果。

text
局部角色活动
  -> 提取单人有效区间
  -> 比较已有身份候选
  -> 满足条件:复用身份或建立新身份
  -> 证据不足:保留未知,继续收集

首句缺乏历史参考时,强制映射为角色一只是让字段非零。同一人返回、相似音色双人和重叠区都是这种策略的反例。判断标准是“同一真实身份在对应时间区间保持关联”,而不是编号连续或总人数正确。

角色核心与极短边缘 ​

角色时间线与 VAD 父段求交后,可能得到极短子段。前处理使用窗口、步长和 padding,非空波形也可能不足以生成有效特征。直接提交会产生特征提取错误;简单丢弃又可能损失尾字。

优先判断该残片是否只是相邻角色核心的边缘。若时间连续且身份证据一致,将其并入核心;存在换人或重叠证据时不能跨身份合并。必要的补零只用于满足模型输入形状,输出仍使用原始样本区间,补零不进入角色历史。

处理方式适用条件必须检查
并入相邻核心同身份、区间连续、边界证据允许首尾字、原始时间范围
输入 padding已确认模型最小长度约束特征有效、时间轴不延长
保留未知或明确失败无法安全合并、身份冲突不吞掉其他已确认子段

最小长度由具体模型与前处理决定,不能按一个通用毫秒值裁掉所有短语音。

Speaker VAD 与主 VAD 的区别 ​

TEN-VAD 判断是否存在语音,Speaker VAD 判断语音与登记参考是否匹配。两套阈值对应不同分数,不能复制数值或互相推导。普通模式不启用目标门控;目标模式用声纹证据约束识别,仍需验证交替、重叠和弱音,不能把门控通过等同文本完整。

缓存的是精确输入上的声学证据,而不是永久放行决定。请求变长、参考更新或策略变化后,按当前条件重新决策。缓存键至少覆盖 PCM 摘要、参考身份/版本、模型版本与证据范围;失败、取消和证据不足不写成成功缓存。

TS-ASR 的 learned SEP 输入合同 ​

目标说话人 ASR 使用登记参考和待识别混合语音。支持 learned SEP 的模型在编码表示之间插入训练得到的分隔向量,不应随意替换成波形静音或字符串提示。固定长度参考如何截取、不足如何处理,都要与训练及前处理合同一致。

text
参考波形 -> 参考音频编码 ─┐
                         ├-> [参考编码, learned SEP, 混合语音编码] -> 解码
混合波形 -> 混合音频编码 ─┘

多模态占位符长度必须等于实际编码长度。设参考特征帧数为 R,混合语音为 M,编码器输出长度函数为 E,目标输入长度为 E(R) + 1 + E(M)。普通输入则按自身编码规则计算。分窗和卷积取整使 E(R + M) 不保证等于 E(R) + E(M),再漏掉 SEP 就会造成占位符错位。

校验应覆盖参考边界、不同混合长度、动态批次,以及 SEP 权重确实加载。仅设置 target_speaker=true 不能证明这条路径执行;需要核对实际输入、分隔表示和模型能力。登记参考缺失时返回明确失败,不能自动切到普通识别并放开目标约束。

目标短句出现重复生成时,机械二分可能破坏目标上下文。可采用原截止时间内的有界重试,保持相同参考、PCM、目标参数和热词提示;超过预算明确结束,不无限重试,也不删掉重复文字后宣称识别成功。

技术选型与回归 ​

全量转写选择普通 ASR;多人转写增加角色区间及跨窗身份关联;指定说话人转写选择参考条件化 TS-ASR,并验证门控。角色模型提供证据,不替代参考条件。重叠语音不能按匿名槽位粗裁后宣称目标输入完整。

身份回归至少包含同一人返回、首次弱音、相似音色、短插话和重叠;目标回归增加纯目标、纯非目标与交替语音。文本、身份和协议分别断言,防止一个非零角色字段遮住漏字或误放行。

别急,先让缓存热一下。