跳到主内容

说话人分离是怎么区分人的?声纹聚类

2026-10-29 发布 来源:我告诉你AI导航 阅读

把一段多人对话录音交给 AI 转写,成稿里每句话前面都标着「说话人 A」「说话人 B」,句子各归各的主人——机器既没有耳朵也没有见面,它凭什么分清谁在说话?答案是声纹:每个人的声道形状、发声习惯不同,落在声学特征上就是可辨别的差异。...

把一段多人对话录音交给 AI 转写,成稿里每句话前面都标着「说话人 A」「说话人 B」,句子各归各的主人——机器既没有耳朵也没有见面,它凭什么分清谁在说话?答案是声纹:每个人的声道形状、发声习惯不同,落在声学特征上就是可辨别的差异。说话人分离的机制核心是三步:把每段语音压缩成一个能代表「这是谁的声音」的向量,再按向量之间的距离做聚类归人,最后把时间边界对齐输出。这篇只讲机制,功能层面的能力介绍存量文章已有完整版本;分清「谁在说」与「说了什么」两条线的关系,声纹与语音识别一篇有过对照,可先读它打底。

第一步:把声音压成一枚指纹向量

机器听到的原始音频是每秒上万个采样点,直接比对等于对着波形找不同,噪声一干扰就乱。分离系统的第一件事是提特征:把音频切成二三十毫秒一帧的小片,逐帧算出频谱结构——共振峰的位置、能量的分布,这些由声道形状决定的特征正是人与人差异最大的地方。随后一个嵌入网络把成百上千帧的特征压成一个固定长度的向量,通常一两百维,业内叫它说话人嵌入,俗称声纹指纹。压缩的目标是「同一个人不同时段的向量挨得近,不同人的向量离得远」:同一个人用手机录和用会议室录音,向量也会有些差别,但差异远小于换一个人。向量长得像不像指纹,决定了后面分人分得准不准,这是整条链路里最吃模型质量的一环。特征从哪来、频谱分析的基本功,频谱图一篇有铺垫。

第二步:聚类,把向量按远近分堆

向量齐了,接下来是分堆。系统先按能量变化把音频切成许多小段,每段算出向量,于是整段录音变成散落在向量空间里的一堆点。聚类算法做的事,是把这些点按彼此距离归成几簇——每簇理论上对应一个人。难点在两处。一是簇的个数事先未知:机器不知道这段录音里有三个人还是五个人,只能自己估。常用做法是让算法尝试不同的分法,衡量每种分法下「簇内挤得紧、簇间离得远」的程度,选总分最高的那个,人数估计就出来了;也有人声重叠严重的录音,估数容易偏高或偏低,直接导致后面张冠李戴。二是边界抖动:一段话的中段特征鲜明好归人,头尾容易含糊,聚类之后往往还要接一层平滑与修正,把孤立误判的碎段并回邻近的簇。聚类的另一道坎是说话人太像——双胞胎、音色相近的同事,向量距离天然小,分堆错率随之上升,这是声纹层面的先天约束,算法再好也绕不开。

难点表现为什么会难系统怎么应对
簇的个数未知不知道录音里是三个人还是五个人人数只能由算法自己估试不同分法,比「簇内紧、簇间远」的总分,取最高者
边界抖动一段话的头尾容易归错人中段特征鲜明,头尾含糊聚类后接平滑与修正,把孤立碎段并回邻近的簇
说话人太像双胞胎、音色相近的同事分堆错率上升向量距离天然就小声纹层面的先天约束,算法绕不开

第三步:对齐时间轴,输出说话人日志

分堆完成,每个人得到一个簇编号,但成稿需要的是时间信息:谁从第几秒说到第几秒。系统把簇编号映射回时间线,相邻同簇的小段合并,段落间插入切换点,产出的就是说话人日志——一条带说话人标签的时间轴。转写流程里,这条日志再与语音识别的文本逐句对齐,每句文字挂上对应的说话人标签,会议纪要的「某某说」就是这么来的。值得说清的是分工:分离管「谁在说」,识别管「说了什么」,两者互相独立又互相依赖——对齐错了,文本再准,纪要也会记错人头。多人对话的实际音频里还有重叠说话的段落,两个人同时开口的几秒钟,向量是混在一起的,系统通常按主导能量归给一方,重叠部分的归属就是最常出错的位置。

哪些条件会让分人出错

机制的弱点决定使用场景的边界。一是录音质量:远场拾音混着混响,声道特征被房间反射糊住,指纹本身就失真,分人自然抖;桌面近讲或每人一支麦克风的录音,指纹干净,效果立涨。二是人数与重叠:人数越多、抢话越频繁,向量空间越拥挤,估计人数与划分边界的错率都抬升。三是时长:每个人的语音样本太短——插一句话就沉默——特征攒不够,向量不稳,容易被并进别人的簇。实践里的对策都围绕这些弱点:重要会议用近讲设备,说话人尽量轮流发言别抢话,事后检查时重点盯切换点附近的句子。分离的结果还能往下接其他环节:按说话人分别配音或换声,与按角色分派的流程相通,机制衔接见多角色分派一篇;访谈类音频想按人拆出干净的音轨再处理,人声分离一篇讲的是另一类分离,别与分人混淆。拿不准嵌入向量、聚类这些术语,可以让 DeepSeek 用平实的话展开讲一遍;想让 AI 帮你预判自己录音场景的坑,把设备与场地条件告诉豆包,让它列一份检查清单,再用 Kimi 对照各家产品对远场录音的支持说明,选型就有依据了。

说话人分离机制速查

  • 三步链路:提声纹特征、压缩成嵌入向量、按向量距离聚类归人
  • 人数事先未知,算法靠「簇内紧、簇间远」自行估计,重叠段落最易估偏
  • 切换点附近的句子与两人同时开口的段落,是最常出错的位置
  • 近讲录音远胜远场,音色相近的人是先天难点,检查重点盯边界

关于说话人分离的常见疑问

  • 说话人 A、B 的编号每次都不一样吗?:是。聚类只负责分堆,不知道也不管真实身份,编号是按出现顺序或其他规则临时分配的。要落成「张三、李四」,需要人工或声纹注册流程把簇与真人对应上,这一步机器通常不代劳。
  • 两个人声音很像就一定分不开吗?:不一定,但错率明显上升。声道特征相近时,向量距离变小,聚类更难切开;如果两人用词习惯、语速还有差异,部分系统能借辅助特征拉开差距。实在分不开时,宁可信人工标注,也别硬改机器结果。
  • 先分人还是先转写,顺序重要吗?:常见流水线是并行计算再对齐:识别与分离各自跑,最后按时间戳把文本挂到说话人上。顺序本身不影响结果,影响结果的是对齐精度——时间戳有偏差,句子就会挂错人,这也是检查成稿时最该核对的地方。

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]