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

声纹识别的对抗与防御

       随着机器学习理论和方法的发展, 出现了用于模仿特定说话人语音的深度伪造、针对语音识别和声纹识别的对抗样本, 它们都为破坏语音载体的可信性和安全性提供了具体手段, 进而对各自应用场景的信息安全构成了挑战。

     深度伪造是利用生成式对抗网络等方法, 通过构建特定的模型, 产生听起来像目标说话人的语音样本。之所以称之为伪造, 是因为目标说话人根本没有说过这些话。深度伪造的欺骗对象主要是人耳听觉, 也可以用于导致声纹识别系统出错。与深度伪造不同, 语音对抗样本旨在通过对载体信号引入微小的扰动, 使语音识别或声纹识别系统出现。特定的差错, 但并不影响人耳对该语音样本的听觉感知。相对于深度伪造, 利用声纹识别系统自身的脆弱性,声纹系统对抗样本的攻击具有很强的隐蔽性

1、声纹识别的对抗样本攻击

1.1 研究现状

      白盒攻击中, 攻击者完全了解被攻击模型的结构、参数、损失函数和梯度等信息, 利用被攻击白盒模型的结构和参数信息构建对抗样本生成算法,从而有指导性地修改原始样本, 以生成对抗样本。在黑盒攻击中, 攻击者不掌握被攻击模型的结构、参数等内部信息, 只能通过利用白盒模型对抗样本的迁移性, 或利用黑盒模型的输出结果训练替代模型等方式来生成对抗样本。在现实场景中, 攻击者难以获取被攻击模型的内部信息, 因此黑盒攻击相对于白盒攻击难度更高, 但也更符合实际。

方法

对抗知识

优点

缺点

基于梯度/迭代优化

白盒

攻击成功率高、信噪比高

需要访问模型结构,迭代计算对抗扰动,生成

对抗样本的时间长,容易被检测

基于生成网络

白盒

生成对抗样本的时间短

攻击成功率和信噪比难以平衡

基于查询

黑盒

不需访问梯度,仅靠置信度或决策就可以实现攻击

攻击成功率较低;查询过多时容易被检测到

基于迁移性

黑盒

不需要访问目标模型结构

对抗样本迁移性弱,黑盒攻击成功率低

1.2 关键技术路线

1.3 白盒攻击

下图展示Symmetric Saliency-based Adversarial Attack to Speaker Identification 是一种针对说话人识别系统的对抗性攻击方法:

  • 模型逆向工程:攻击者首先需要了解目标说话人识别系统的内部结构和参数。由于是对抗性攻击,攻击者可能需要访问模型的权重和架构,以便更好地设计攻击。
  • 确定攻击目标:攻击者确定他们想要系统误解的具体说话人,例如,他们可能希望系统将说话人A误认为说话人B。
  • 构建对称显著性模块:在SSED中,显著性模块用于突出显示语音信号中对说话人识别最重要的部分。在对抗性攻击中,这个模块可以被用来识别那些对模型预测影响最大的特征,从而在这些特征上引入扰动。
  • 优化过程:通过梯度下降或其他优化算法,攻击者在保持语音变化不可察觉的同时,寻找能够最小化损失函数的对抗性扰动。损失函数通常包括两部分:一部分是针对说话人识别任务的错误分类损失,另一部分是针对语音变化的感知损失,以确保扰动对人类听众来说是不可察觉的。
  • 生成对抗性样本:一旦找到最佳扰动,攻击者将其添加到原始语音中,生成对抗性样本。
  • 攻击评估:最后,攻击者评估生成的对抗性样本是否能够成功地欺骗说话人识别系统,使其做出错误的预测。
  1. 1.4 黑盒攻击

下图展示Interpretable Spectrum Transformation Attacks to Speaker Recognition 是一种针对说话人识别系统的对抗性攻击方法。说话人识别系统通常基于语音信号中的频谱特征来识别不同的说话人

  • 选择目标说话人:攻击者首先确定他们想要系统误解的具体说话人,例如,他们可能希望系统将说话人A误认为说话人B。
  • 构建频谱转换模型:攻击者构建一个频谱转换模型,该模型能够将目标说话人的语音频谱转换为攻击目标说话人的频谱。这个模型可以是基于深度学习的,如神经网络或卷积神经网络。
  • 优化过程:通过梯度下降或其他优化算法,攻击者在保持语音内容不变的同时,寻找能够最小化损失函数的频谱转换。损失函数通常包括两部分:一部分是针对说话人识别任务的错误分类损失,另一部分是针对语音内容的损失,以确保语音内容的不变性。
  • 生成对抗性样本:一旦找到最佳频谱转换,攻击者将其应用于原始语音,生成对抗性样本。
  • 攻击评估:攻击者评估生成的对抗性样本是否能够成功地欺骗说话人识别系统,使其做出错误的预测。

2、声纹识别的对抗样本防御

2.1 研究现状

      声纹识别的对抗样本防御是指采取一系列措施来增强声纹识别系统对对抗性攻击的鲁棒性。防御策略可以单独使用,也可以组合使用,以提高声纹识别系统对对抗性攻击的鲁棒性。

方法

研究方向

优点

缺点

纯化

提高语音纯化质量

对任何样本都 可以进行有效声纹判定

对任意样本都进行语音纯化,可能造成声纹识别系统性能下降,

检测

改进检测模型

不改变样本

被误判的纯净样本会被丢弃

混合训练

改进训练数据的合成方法

声纹识别模型,自带防御功能

模型训练规模大,对抗样本造成声纹识别模型精度下降

2.2 纯化防御

纹识别的对抗样本防御中,扩散(Diffusion)模型纯化利用了扩散模型在生成高质量语音方面的能力,以净化对抗性扰动,从而提高声纹识别系统的鲁棒性。

扩散模型是一种深度学习模型,它通过迭代去噪的过程来生成数据。在声纹识别的背景下,扩散模型首先将干净的声纹信号逐渐添加噪声,直到信号变成随机噪声,然后将这些噪声逐渐去噪,恢复出原始的声纹信号。这个过程可以看作是对声纹信号的纯化,因为它可以去除声纹信号中的噪声和扰动。

Diffusion模型纯化

两阶段 diffusion模型纯化

大语言模型驱动的diffusion模型纯化

  • 对抗样本生成:首先,使用特定的对抗攻击方法生成对抗性声纹样本。这些样本在人类听起来与原始语音几乎相同,但能够导致声纹识别模型错误地识别说话人。
  • 扩散过程:将生成的对抗性声纹样本输入到扩散模型中,通过迭代添加噪声,将样本逐渐转换为随机噪声。
  • 去噪过程:在去噪过程中,扩散模型将噪声逐渐去除,尝试恢复出原始的声纹信号。由于扩散模型在生成声纹信号时已经学习了声纹信号的本质特征,因此它可以在去噪过程中识别并去除对抗性扰动。
  • 声纹识别:将去噪后的声纹样本输入到声纹识别模型中,进行说话人识别

2.3 检测防御

基于可学习Mask的对抗样本检测方法的核心思想是利用可学习的Mask来识别和去除声纹信号中的对抗性扰动,从而保护声纹识别系统不受攻击

  • 训练可学习Mask:首先,需要训练一个可学习的Mask。这个Mask是一个神经网络,它能够学习如何识别声纹信号中的对抗性扰动。训练数据包括正常的声纹信号和被对抗性攻击污染的声纹信号。通过训练,Mask学会了识别和去除对抗性扰动。
  • 声纹信号输入:当一个新的声纹信号输入到系统时,首先通过可学习Mask进行处理。Mask会识别并去除信号中的对抗性扰动,从而净化声纹信号。
  • 声纹识别:将净化后的声纹信号输入到声纹识别模型中,进行说话人识别。

基于规则Mask的对抗样本检测方法的核心思想是利用预先定义的规则来生成Mask,这个Mask用于识别和去除声纹信号中的对抗性扰动,从而保护声纹识别系统不受攻击。

  • 定义规则:首先,需要定义一组规则,这些规则用于确定哪些部分的声纹信号可能是对抗性扰动。这些规则可以是基于声学特征的,例如音高、能量、频谱特性等,或者是基于信号处理的技术,例如滤波、傅里叶变换等。
  • 生成规则Mask:根据定义的规则,生成一个规则Mask。这个Mask是一个矩阵,它将声纹信号中的每个部分标记为正常或异常。规则Mask可以通过编程实现,也可以通过机器学习算法学习得到。
  • 声纹信号输入:当一个新的声纹信号输入到系统时,首先通过规则Mask进行处理。规则Mask会识别并去除信号中可能是对抗性扰动的部分,从而净化声纹信号。
  • 声纹识别:将净化后的声纹信号输入到声纹识别模型中,进行说话人识别。

相关文章:

声纹识别的对抗与防御

随着机器学习理论和方法的发展, 出现了用于模仿特定说话人语音的深度伪造、针对语音识别和声纹识别的对抗样本, 它们都为破坏语音载体的可信性和安全性提供了具体手段, 进而对各自应用场景的信息安全构成了挑战。 深度伪造是利用生成式对抗网络等方法, 通过构建特定的模型, 产生…...

C++ QT设计模式总结

Ciallo&#xff5e;(∠・ω< )⌒★&#xff0c;这里是 Eureka&#xff0c;欢迎来看我的设计模式总结&#xff0c;有问题随时可以告诉我~ 面向对象的设计模式&#xff1a; 以下总结了面向对象的设计模式&#xff0c; QT 的源码在哪里体现了这些模式&#xff0c;以及如何在 …...

洛谷 P3203:弹飞绵羊 ← 分块算法(单点更新、单点查询)

【题目来源】https://www.acwing.com/problem/content/2168/https://www.luogu.com.cn/problem/P3203【题目描述】 某天&#xff0c;Lostmonkey 发明了一种超级弹力装置&#xff0c;为了在他的绵羊朋友面前显摆&#xff0c;他邀请小绵羊一起玩个游戏。 游戏一开始&#xff0c;L…...

程序验证之Dafny--证明霍尔逻辑的半自动化利器

一、What is Dafny?【来自官网介绍 Dafny 】 1)介绍 Dafny 是一种支持验证的编程语言&#xff0c;配备了一个静态程序验证器。 通过将复杂的自动推理与熟悉的编程习语和工具相结合&#xff0c;使开发者能够编写可证明正确的代码&#xff08;相对于 {P}&#xff33;{Q} 这种…...

Flutter 中的 SafeArea 小部件:全面指南

Flutter 中的 SafeArea 小部件&#xff1a;全面指南 在移动应用开发中&#xff0c;处理设备屏幕的边缘是一个常见的挑战&#xff0c;尤其是考虑到现代设备通常具有不同的屏幕形状&#xff0c;如刘海屏、曲面屏等。为了确保应用内容不会覆盖这些屏幕区域&#xff0c;Flutter 提…...

webpack生成模块关系依赖图示例:查看构建产物的组成部分 依赖关系图

npm i -D webpack-bundle-analyzer core-js babel-loaderwebpack.config.js const BundleAnalyzerPlugin require(webpack-bundle-analyzer).BundleAnalyzerPlugin; module.exports {entry: ./src/index.js,output: {filename: main.js,},// mode: production, // 或者 produ…...

Spacy的安装与使用教程

官网安装指导教程 https://spacy.io/usage 安装指令 需要根据自己系统的cuda版本选择 nvcc -V pip install -U pip setuptools wheel pip install -U spacy[cuda12x] python -m spacy download zh_core_web_sm python -m spacy download en_core_web_sm...

Pathlib,一个不怕迷路的 Python 向导

大家好&#xff01;我是爱摸鱼的小鸿&#xff0c;关注我&#xff0c;收看每期的编程干货。 一个简单的库&#xff0c;也许能够开启我们的智慧之门&#xff0c; 一个普通的方法&#xff0c;也许能在危急时刻挽救我们于水深火热&#xff0c; 一个新颖的思维方式&#xff0c;也许能…...

详解绝对路径和相对路径的区别

绝对路径和相对路径是用于描述文件或目录在文件系统中位置的两种不同方式。 绝对路径&#xff08;Absolute Path&#xff09;是从文件系统的根目录开始的完整路径&#xff0c;可以唯一地确定一个文件或目录的位置。在不同的操作系统中&#xff0c;根目录的表示方式可能略有不同…...

C++二叉搜索树搜索二叉树二叉排序树

C二叉搜索树 1. 二叉搜索树的概念 二叉搜索树&#xff08;BST,Binary Search Tree)&#xff0c;也称为二叉排序树或二叉查找树。它与一般二叉树的区别在于&#xff1a;每个结点必须满足“左孩子大于自己&#xff0c;右孩子小于自己”的规则。在这种规则的约束下&#xff0c;二…...

Java 自然排序和比较器排序区别?Comparable接口和Comparator比较器区别?

注&#xff1a;如果你对排序不理解&#xff0c;请您耐心看完&#xff0c;你一定会明白的。文章通俗易懂。建议用idea运行一下案例。 1&#xff09;自然排序和比较器排序的区别&#xff1f; 自然排序是对象本身定义的排序规则&#xff0c;由对象实现 Comparable 接口&#xff…...

【CV】opencv调用DIS/LK等计算光流,前一帧和当前帧写反了有什么影响?

当在计算光流时&#xff0c;将前一帧和当前帧输入反了&#xff0c;会导致一系列问题。 在计算光流时&#xff0c;通常是将前一帧作为模板&#xff0c;根据当前帧计算光流。因为光流是描述相邻帧之间像素移动的一种方法&#xff0c;它通过比较两帧之间的像素强度或特征点的移动…...

C语言学习细节|C语言面向对象编程!函数指针如何正确使用

文章目录 1.函数指针定义2.格式3.应用回调函数动态函数调用函数的间接调用 4.结构体与函数指针结合 1.函数指针定义 函数指针就是一个指向函数的指针变量&#xff0c;与指向数据的指针不同&#xff0c;函数指针保存的是函数的地址&#xff0c;这使得程序可以动态地调用不同的函…...

C语言简要(一)

总得让她开心吧 helloworld #include <stdio.h>int main() {printf("hello world!\n");return 0; } 程序框架 #include <stdio.h> int main {return 0; }输出 printf("hello world!\n"); "里面的内容叫做“字符串”&#xff0c;prin…...

那些年我与c++的叫板(一)--string类自实现

引子&#xff1a;我们学习了c中的string类&#xff0c;那我们能不能像以前数据结构一样自己实现string类呢&#xff1f;以下是cplusplus下的string类&#xff0c;我们参考参考&#xff01; 废话不多说&#xff0c;直接代码实现&#xff1a;&#xff08;注意函数之间的复用&…...

二刷算法训练营Day08 | 字符串(1/2)

今日任务&#xff1a; 344.反转字符串 541. 反转字符串II卡码网&#xff1a;54.替换数字 151.翻转字符串里的单词卡码网&#xff1a;55.右旋转字符串 详细布置&#xff1a; 1. 344. 反转字符串 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 …...

使用高防IP是应对网络安全的重要措施

使用高防IP&#xff08;High Defense IP&#xff09;在现代网络环境中显得尤为重要&#xff0c;这主要源于以下几个方面的原因&#xff1a; 一、网络安全形势严峻 随着互联网的快速发展&#xff0c;网络安全问题日益突出。各种网络攻击手段层出不穷&#xff0c;如分布式拒绝服…...

代码随想录-算法训练营day40【动态规划03:整数拆分、不同的二叉搜索树】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 第九章 动态规划part03● 343.整数拆分 ● 096.不同的二叉搜索树 详细布置 今天两题都挺有难度&#xff0c;建议大家思考一下没思路&#xff0c;直接看题解&#xff0c;第一次做&#xff0c;硬想很难想出来。343. 整数…...

MySQL数据库中基本数据管理操作

使用SQL语句实现基本数据管理操作——即DML语句 1.添加数据 insert into 表名&#xff08;字段名称&#xff0c;字段名称&#xff0c;字段名称&#xff09;values&#xff08;数据&#xff0c;数据&#xff0c;数据&#xff09; 在MySQL数据库中&#xff0c;除了数字&#x…...

记录一下Hql遇到的零碎问题

建表相关 -- 地区维度表 drop table dim_province_full; create table dim_province_full( id string comment 编号, name string comment 省份名称, region_id string comment 大区id, area_code string comment 行政区位码, iso_code string comment 国际编码, iso_3166_2 s…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG

TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码&#xff1a;HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...

人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型

在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重&#xff0c;适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解&#xff0c;并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...

stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)

这是系统中断服务程序的默认处理汇编函数&#xff0c;如果我们没有定义实现某个中断函数&#xff0c;那么当stm32产生了该中断时&#xff0c;就会默认跑这里来了&#xff0c;所以我们打开了什么中断&#xff0c;一定要记得实现对应的系统中断函数&#xff0c;否则会进来一直循环…...

华为云Flexus+DeepSeek征文 | 基于Dify构建具备联网搜索能力的知识库问答助手

华为云FlexusDeepSeek征文 | 基于Dify构建具备联网搜索能力的知识库问答助手 一、构建知识库问答助手引言二、构建知识库问答助手环境2.1 基于FlexusX实例的Dify平台2.2 基于MaaS的模型API商用服务 三、构建知识库问答助手实战3.1 配置Dify环境3.2 创建知识库问答助手3.3 使用知…...

从数据报表到决策大脑:AI重构电商决策链条

在传统电商运营中&#xff0c;决策链条往往止步于“数据报表层”&#xff1a;BI工具整合历史数据&#xff0c;生成滞后一周甚至更久的销售分析&#xff0c;运营团队凭经验预判需求。当爆款突然断货、促销库存积压时&#xff0c;企业才惊觉标准化BI的决策时差正成为增长瓶颈。 一…...