当前位置: 首页 > news >正文

IEEE SLT 2022论文丨如何利用x-vectors提升语音鉴伪系统性能?

分享一篇IEEE SLT 2022收录的声纹识别方向的论文,《HOW TO BOOST ANTI-SPOOFING WITH X-VECTORS》由AuroraLab(极光实验室)发表。

来源丨AuroraLab

AuroraLab源自清华大学电子工程系与新疆大学信息科学与工程学院,以说话人识别和标记、音频事件检测、知识图谱构建与应用为研究重点,围绕感知智能与认知智能的理论、技术与系统等开展研究。

  论文题目:HOW TO BOOST ANTI-SPOOFING WITH X-VECTORS

  作者列表:马欣悦,张姗姗,黄申,高骥,胡颖,何亮

  论文原文:https://ieeexplore.ieee.org/document/10022504

  论文下载:文末点击“阅读原文”下载论文

研究背景

随着语音合成、语音转换技术的进步,人工生成的语音几近以假乱真,给用于身份验证的自动声纹验证(Automatic Speaker Verification,ASV)系统的安全性带来了极大的威胁,因而对语音鉴伪技术的研究刻不容缓。

本文方案

从日常生活经验来看,如果我们熟悉目标说话人,往往会利用记忆中关于他的发声特征来判断某段音频的真或假。但说话人标签不能被直接用于指导鉴伪模型的训练,因为在真实应用场景中很难直接获得真假音频的说话人标签。由此,我们使用预先训练好的 TDNN[1]提取 x-vector,作为辅助鉴伪系统的说话人信息,提出了利用说话人信息增强鉴伪模型真假辨别能力的三套方案。上述方案部署到LightCNN[2]、SeNet34/50[3] 上以验证有效性。

图1 (a)基线, (b)AF-XA, (c)E-XA, (d)E-XA-att的模型结构图

方案一:声学特征阶段x-vectors辅助(Acoustic Feature level X-vectors Assistance,AF-XA)

声学特征阶段x-vectors辅助 (AF-XA) 方法将分段后的 x-vector 与声学特征帧对帧拼接作为防伪网络的输入,如图 1(b) 所示。声学特征向量X为T帧的d维LFCC倒谱系数。x-vectors的特征矩阵Q,它是由音频每10帧提取的x-vector且重复10次拼接而成。此外,我们在网络中加入一个变换矩阵W来降低提取的x-vector的维数,实验发现降至256维性能最佳,考虑模型参数量成本降至48维最好。

方案二:嵌入阶段x-vectors辅助(Embedding level X-vectors Assistance,E-XA)

嵌入阶段x-vectors辅助(E-XA)是利用x-vector适应到语音鉴伪模型的嵌入网络层中,如图1(c)所示。LightCNN 的防伪嵌入为 FC I 层的输出,SeNet34/50 的嵌入为平均池化层的输出。将x-vector与防伪嵌入连接后,增加 FC II层对组合嵌入降维,然后连接到后端分类器。LightCNN 和 SeNet34/50采用 E-XA 方法的网络配置详见表1。

方案三:引入注意力机制的嵌入阶段x-vectors辅助(E-XA with Attention Mechanism,E-XA-Att)

在 E-XA 的基础上,为了使神经网络更好地融合说话人信息和防伪信息,对两部分嵌入赋予注意力权值,权值通过网络训练学习到。防伪嵌入 E 和说话人嵌入 P 先由图1(d) 中名为“Transformer Layer” 的全连接层投影到公共嵌入空间,然后两个新嵌入分别归一化。归一化步骤对于提高系统性能至关重要,使得 Softmax 操作后的权重分配更有意义。将它们连接在一起后,输入到 “Attention Layer” 中计算注意力权重。两个嵌入乘上相应权重再相加输入到后端分类器。LightCNN 和 SeNet34/50 采用E-XA-Att 方法的网络配置详见表1。

表1 使用 E-XA 相关方法的 LightCNN 和 SeNet34/50 网络配置。表中阶段 2-5 的数字指的是全连接层的节点数。“-”表明没有这一层。

实验结果分析

实验使用ASVspoof 2019 LA数据集[4]对上述模型方案展开训练和测试,表2列出了本文提出系统的输入特征、鉴伪模型、说话人信息辅助方案、参数量以及在ASVspoof 2019 LA开发和测试数据集上的性能,同时与现有的一些优秀鉴伪系统进行对比。其中串联决策成本函数 (Tandem Decision Cost Function,t-DCF)[5]为评估组合系统性能的主要指标,EER评估鉴伪系统性能。

 表2 x-vectors辅助的各种语音鉴伪系统在 ASVspoof 2019 LA 数据集上的 EER(%)

引入 AF-XA 后, LightCNN,SeNet34 和 SeNet50 使 EER 分别降低 24%、51%和44%。E-XA 方案更有效,三套鉴伪模型分别获得 57%、76%和68%的相对改善。在 E-XA 的方案基础上进一步挖掘说话人信息辅助的潜力,提出为说话人嵌入和鉴伪嵌入的连接增加注意力机制,让网络自行学习鉴伪任务对两者的需求程度。实验表明,E-XA 引入注意力机制后,系统的 EER 又进一步降低了 30% 左右,而对于 E-XA-Att 方案对两个嵌入分别归一化的操作对系统性能至关重要。

x-vectors有效辅助语音鉴伪系统的原因分析

从上述实验结果可知,说话人信息x-vectors强有力地辅助了语音鉴伪系统的性能提升。为了进一步分析原因,在 ASVspoof 2019 LA 训练集和测试集中各随机选择三位说话人,对他们的真假音频提取相应的说话人嵌入,并将这些说话人嵌入的分布利用 t-SNE 方法绘图观察。图2为训练集中 LA_0079、LA_0086、LA_0093 三位说话人各自真假音频提取的 x-vectors 分布,图 3为测试集中 LA_0001、LA_0026、LA_0038 三位说话人三位说话人各自真假音频提取的 x-vectors 分布。两图中不同颜色的叉号表示假音频不同的造假方式,绿色圆点代表真音频。

由两图可以发现,同一说话人真假音频提取的说话人嵌入在图中分布有较大区分度,不同生成方式的假音频说话人嵌入也有明显不同。说话人嵌入能将大部分假音频与真音频区分开,为语音鉴伪系统提供了具有强辨别力的信息,因而可以有效提升语音鉴伪系统性能。

图2  ASVspoof 2019 LA 训练集中 (a)LA_0079 (b)LA_0086 (c)LA_0093 三位说话人真假音频说话人嵌入分布

图3  ASVspoof 2019 LA 测试集中 (a)LA_0001 (b)LA_0026 (c)LA_0038 三位说话人真假音频说话人嵌入分布

小结

本文提出了三种说话人信息x-vectors辅助语音鉴伪模型的有效方案,对语音鉴伪基线系统使用AF-XA可实现 EER 20-50%的相对性能提升,使用E-XA可实现50%以上的性能提升,使用E-XA-Att提升效果会更好。通过实验结果和t-SNE可视化绘图分析都证明了引入说话人信息x-vectors对语音鉴伪任务大有益处。最佳鉴伪系统为SeNet34使用E-XA-Att方案在ASVspoof 2019 LA测试集上EER=0.98%,min-tDCF=0.0294。所提出的方案不仅适用于论文中的LightCNN和SeNet基线系统,还可以作为通用方案拓展到其它鉴伪模型中。

参考资料

[1] David Snyder, Daniel Garcia-Romero, Daniel Povey, and Sanjeev Khudanpur, “Deep Neural Network Embeddings for Text-Independent Speaker Verification,” in Interspeech, 2017, pp. 999–1003.

[2] Xinyue Ma, Tianyu Liang, Shanshan Zhang, Shen Huang, and Liang He, “Improved LightCNN with Attention Modules for ASV Spoofing Detection,” in 2021 IEEE International Conference on Multimedia and Expo (ICME), 2021.↳

[3] Lai C I, Chen N, Villalba J, et al. "ASSERT: Anti-spoofing with squeeze-excitation and residual networks," in Interspeech, 2019, pp. 1013–1017.

[4] ASVspoof 2019: Automatic speaker verification spoofing and countermeasures challenge evaluation plan.[Online].Available: http://www.asvspoof.org/asvspoof2019/ asvspoof2019 evaluation plan.pdf.

[5] Kinnunen T , Delgado H , Evans N , et al. "Tandem Assessment of Spoofing Countermeasures and Automatic Speaker Verification: Fundamentals." IEEE/ACM Transactions on Audio, Speech, and Language Processing, 10.1109/TASLP.2020.3009494. 2020.

相关文章:

IEEE SLT 2022论文丨如何利用x-vectors提升语音鉴伪系统性能?

分享一篇IEEE SLT 2022收录的声纹识别方向的论文,《HOW TO BOOST ANTI-SPOOFING WITH X-VECTORS》由AuroraLab(极光实验室)发表。 来源丨AuroraLab AuroraLab源自清华大学电子工程系与新疆大学信息科学与工程学院,以说话人识别和…...

设计模式(十三)----结构型模式之桥接模式

1 概述 现在有一个需求,需要创建不同的图形,并且每个图形都有可能会有不同的颜色。我们可以利用继承的方式来设计类的关系: 我们可以发现有很多的类,假如我们再增加一个形状或再增加一种颜色,就需要创建更多的类。 试…...

倾向得分匹配案例分析

一、倾向得分匹配法说明 倾向得分匹配模型是由Rosenbaum和Rubin在1983年提出的,首次运用在生物医药领域,后来被广泛运用在药物治疗、计量研究、政策实施评价等领域。倾向得分匹配模型主要用来解决非处理因素(干扰因素)的偏差。 …...

基于SpringCloud的可靠消息最终一致性04:项目基础代码

上一节给出了项目需求和骨架代码,这一节来接着看基础代码。骨架代码和基础代码最主要的区别是:骨架代码都是数据库脚本、POM依赖文件、配置文件内容、运维脚本等,而基础代码则是和业务有关联,但并非关键代码的部分。 这些代码不用一个个地看,主要是看看结构就行。 图二十五…...

操作系统权限提升(十八)之Linux提权-内核提权

Linux 内核提权 Linux 内核提权原理 内核提权是利用Linux内核的漏洞进行提权的,内核漏洞进行提权一般包括三个环节: 1、对目标系统进行信息收集,获取到系统内核信息及版本信息; 2、根据内核版本获取其对应的漏洞以及EXP 3、使…...

华为OD机试真题Java实现【快递运输】真题+解题思路+代码(20222023

快递运输 题目 一辆运送快递的货车,运送的快递均放在大小不等的长方体快递盒中,为了能够装载更多的快递,同时不能让货车超载,需要计算最多能装多少个快递。 注:快递的体积不受限制,快递数最多1000个,货车载重最大50000。 🔥🔥🔥🔥🔥👉👉👉👉👉�…...

java面试题-JVM问题排查

1.常见的Linux定位问题的工具?常见的 Linux 定位问题的命令可以分为以下几类:系统状态命令:包括 top、uptime、vmstat、sar 等命令,用于查看系统整体的状态,如 CPU 使用率、内存使用率、磁盘 I/O 等。进程状态命令&…...

市场上有很多低代码开发平台,不懂编程的人可以用哪些?

市场上有很多低代码开发平台,不懂编程的人可以用哪些?这个问题一看就是外行问的啦,低代码平台主打的就是一个“全民开发”,而且现在很多低代码平台都发展为零代码了,不懂编程也完全可以使用! 所谓低代码开…...

Tina_Linux打包流程说明指南_new

OpenRemoved_Tina_Linux_打包流程_说明指南_new 1 概述 1.1 编写目的 介绍Allwinner 平台上打包流程。 1.2 适用范围 Allwinner 软件平台Tina v3.0 版本以上。 1.3 相关人员 适用Tina 平台的广大客户,想了解Tina 打包流程的开发人员。 2 固件打包简介 固件…...

JVM面试题

JVM 1.jvm的组成部分 类加载器:将javac编译的class文件加载到内存中 运行时数据区:将内存划分成若干个不同的区域。 执行引擎:负责解析命令,提交操作系统执行。 本地接口:融合不同的语言为java所用 2.运行时数据区 方法区&…...

@FeignClient注解

1.在启动类上开启Feign功能 不开会提示找不到所需要的bean Consider defining a bean of type in your configuration SpringBootApplication EnableFeignClients public class AuthApplication {public static void main(String[] args) {SpringApplication.run(AuthApplic…...

一文搞懂如何在 React 中使用 防抖(Debounce)和 节流(Throttle)

在前端的日常开发中,经常会使用到两个函数防抖(Debounce)和节流(Throttle),防抖函数可以有效控制在一段时间内只执行最后一次请求,例如搜索框输入时,只在输入完成后才进行请求接口。…...

Airbyte API

Airbyte API涵盖了Airbyte功能的方方面面,主要分类:Source_definition:来源定义,实现了来源的增删改查功能。Destination_definition:目标定义,实现了目标的增删改查功能。Workspace:工作区管理…...

vue项目使用Electron开发桌面应用

添加npm配置避免安装Electron错误 请确保您的 node 版本大于等于 18. cmd运行: npm config edit 该命令会打开npm的配置文件,请在空白处添加: electron_builder_binaries_mirrorhttps://npmmirror.com/mirrors/electron-builder-binaries/ e…...

std::chrono笔记

文章目录1. radio原型作用示例2. duration原型:作用示例3. time_point原型作用示例4. clockssystem_clock示例steady_clock示例high_resolution_clock先说感觉,这个库真恶心,刚接触感觉跟shi一样,特别是那个命名空间,太…...

接收arp请求并发送回应的实例

本文简单介绍了arp协议,用一个实例查看收到的ARP请求,并对该请求发出ARP回应,实例有完整的源代码,使用C语言在Linux下实现,代码中有详细的注释。 1. ARP协议 ARP(Address Resolution Protocol),地址解析协议;在局域网上通过IP地址获取物理地址MAC的协议,该协议工作在数…...

【高性能计算】TVM使用TE手动优化矩阵乘法算法解析与代码解读

引言 注:本文主要介绍、解释TVM的矩阵优化思想、代码,需要配合代码注释一起阅读。 矩阵乘法是计算密集型运算。为了获得良好的 CPU 性能,有两个重要的优化措施: 提高内存访问的高速缓存命中率。复杂的数值计算和热点内存&#x…...

消息中间件的概念

中间件(middleware)是基础软件的一大类,属于可复用的软件范畴。中间件在操作系统软件,网络和数据库之上,应用软件之下,总的作用是为处于自己上层的应用软件提供运行于开发的环境,帮助用户灵活、高效的开发和集成复杂的…...

窃密恶意软件Raccoon最新样本Stealer v2分析

Raccoon 是一个恶意软件家族,2019 年来一直在地下犯罪论坛中以恶意软件即服务的身份进行售卖。2022 年 7 月,该恶意软件家族发布了 C 语言编写的新版本 Raccoon Stealer v2,打破了以往使用 C 开发的传统。 Raccoon 是一个信息窃密恶意软件&a…...

足球俱乐部管理系统

技术:Java、JSP等摘要:网站是一种主要的渠道。人们通过互联网快速、准确的发布信息、获取信息。而足球俱乐部是足球职业化、专业化的一个标志,是足球运动员以足球谋生时,所被聘用的机构,应运时代发展,规模、…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...

管理学院权限管理系统开发总结

文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...

push [特殊字符] present

push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

elementUI点击浏览table所选行数据查看文档

项目场景&#xff1a; table按照要求特定的数据变成按钮可以点击 解决方案&#xff1a; <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...