【技术揭秘】解锁声纹技术中的说话人日志

简介: 说话人日志(speaker diarization)也叫说话人分离,它是从一个连续的多人说话的语音中切分出不同说话人的片段,并且判断出每个片段是哪个说话人的过程。借助说话人日志技术可以完成对音频数据流的结构化管理,具有广泛的应用价值,例如可以利用分离结果进行说话人自适应,以提高语音识别的准确率;可以辅助会议、电话数据进行自动转写构建说话人的音频档案;也可以利用说话人分离技术,实现语料库的自动跟踪和标注。
来源 阿里语音AI 公众号

一、背景

说话人日志(speaker diarization)也叫说话人分离,它是从一个连续的多人说话的语音中切分出不同说话人的片段,并且判断出每个片段是哪个说话人的过程。借助说话人日志技术可以完成对音频数据流的结构化管理,具有广泛的应用价值,例如可以利用分离结果进行说话人自适应,以提高语音识别的准确率;可以辅助会议、电话数据进行自动转写构建说话人的音频档案;也可以利用说话人分离技术,实现语料库的自动跟踪和标注。

说话人日志技术解决的是两个方面的问题:“谁在说话”和“在什么时候说话”,如图1所示。“谁在说话”通常可以由说话人识别方法来解决,“在什么时候说话”可以通过说话人分割和说话人聚类来解决。

image.png
图1

在客服质检业务中,针对单通道合录语音通话,通常需要区分哪些发音来自客户,哪些发音来自客服,因此需要在说话人分割聚类的结果上为类别打上标签。在客服质检业务中,发音人的语音很难提前获取,客服人员流动性较大,通过声纹识别的方式,提前注册客户和客服的语音不太现实。因此,“谁在说话”的问题通常根据分割聚类后的发音内容,进行关键字或话术匹配等手段解决。这个过程可以看做是文本的后处理,这里不属于语音技术范围,以下的介绍内容不针对此展开。

二、 说话人日志算法

2.1说话人日志基本框架

现有的说话人日志系统大多由多个相对独立的部分组成,如图2所示:(1)语音分割模块,去除非语音部分,将输入的语音分割为小段;(2)特征向量提取模块,从分割好的小段语音中提取出说话人的特征向量,例如d-vector、i-vector等;(3)聚类模块,通过计算说话人特征向量间的相似度,确定说话人数量,并对不同片段分配说话人身份;(4)重新分割模块,进一步细化分类结果。

image.png
图2

2.2说话人日志算法介绍

我们搭建了基于x-vector的说话人日志系统,基本框架如图3所示。主要的模块包括梅尔频率倒谱系数特征(MFCC)提取模块、语音活动点检测(SAD)模块、x-vector模块、PLDA打分模块以及凝聚分层聚类(AHC)模块。

image.png
图3

主要的模型包括SAD模型、x-vector模型和PLDA模型。SAD模块去除非语音片段,并对剩余的有效语音进行粗分类,以非语音片段作为分割点,将有效语音切分成不同的片段。在不同说话人语音间间隔较大的情况下,粗分类可以将不同的说话人语音切分开来,每个片段只包含一个说话人语音。但在很多情况下,同一个粗分类的片段还会包含不同的说话人信息,因此需要对粗分类片段做进一步处理。通过对每个粗分类片段进一步切分,使用特定窗长和窗移进行加窗处理,然后对每一个窗提取embedding特征。

Embedding特征使用x-vector框架提取,模型基本结构如图4所示。然后对每个片段进行聚类,对不同片段分配说话人身份,具体的说,对embedding特征进行两两打分,打分使用说话人识别的主流技术PLDA方法,通常来说,得分越高,相似度越高,越可能是同一个人的语音。AHC不断重复的将相似度高的类别进行合并,直到满足迭代中止条件。AHC合并后的结果即为最终的分离结果。

image.png
图4

2.3评价指标

我们采用分离错误率(DiarizationError Rate,DER)作为说话人分离效果的评价指标。计算公式如下:

image.png

其中,false alarm表示非语音错误地识别成语音的时间长度,miss detection表示语音错误识别成非语音的时间长度,confusion是混淆的说话人的时长,total是参照语音的总时长。DER值越小,分离效果越好。

三、效果及业务应用

本方法在实际电话客服数据集上可达到很好的说话人分离效果。说话人日志技术已经达到在真实客服质检业务场景中的可应用水平,为客户提供高质量的说话人分离能力。在智能语音交互公共云服务及本地部署软件中的“录音文件识别”接口进行体验。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
人工智能 监控 算法
3D-Speaker:阿里通义开源的多模态说话人识别项目,支持说话人识别、语种识别、多模态识别、说话人重叠检测和日志记录
3D-Speaker是阿里巴巴通义实验室推出的多模态说话人识别开源项目,结合声学、语义和视觉信息,提供高精度的说话人识别和语种识别功能。项目包含工业级模型、训练和推理代码,以及大规模多设备、多距离、多方言的数据集,适用于多种应用场景。
428 18
3D-Speaker:阿里通义开源的多模态说话人识别项目,支持说话人识别、语种识别、多模态识别、说话人重叠检测和日志记录
|
2月前
|
人工智能 算法 数据挖掘
开源更新|通义3D-Speaker多说话人日志功能
开源更新|通义3D-Speaker多说话人日志功能
|
6月前
|
存储 搜索推荐 大数据
阿里泛日志设计与实践问题之schema-on-read技术的发展对日志搜索的影响是啥,如何解决
阿里泛日志设计与实践问题之schema-on-read技术的发展对日志搜索的影响是啥,如何解决
|
4月前
|
存储 运维 监控
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
本文解析了Elasticsearch Serverless在智能日志分析领域的关键技术、优势及应用价值。
166 8
Elasticsearch Serverless 高性价比智能日志分析关键技术解读
|
6月前
|
数据挖掘 语音技术
3D-Speaker说话人任务的开源项目问题之语义说话人信息模块在说话人日志系统中的问题如何解决
3D-Speaker说话人任务的开源项目问题之语义说话人信息模块在说话人日志系统中的问题如何解决
|
5月前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
263 0
|
6月前
|
数据挖掘 语音技术
3D-Speaker说话人任务的开源项目问题之视觉信息在说话人日志技术中的问题如何解决
3D-Speaker说话人任务的开源项目问题之视觉信息在说话人日志技术中的问题如何解决
|
3月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
927 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
2月前
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
|
9天前
|
存储 SQL 关系型数据库
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log、原理、写入过程;binlog与redolog区别、update语句的执行流程、两阶段提交、主从复制、三种日志的使用场景;查询日志、慢查询日志、错误日志等其他几类日志
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log