Partially Spoofed Audio Detection论文介绍(ICASSP 2024)

An Efficient Temporary Deepfake Location Approach Based Embeddings for Partially Spoofed Audio Detection

论文翻译名:一种基于部分欺骗音频检测的基于临时深度伪造位置方法的高效嵌入

摘要:

  • 部分伪造音频检测是一项具有挑战性的任务,在于需要在帧级别上准确地定位音频的真实性。
  • 时间性深度伪造定位( TDL ),可以有效地捕获特征和位置信息。
  • 我们的方法包括两个新颖的部分:嵌入相似性模块和时间卷积操作。
  • 为了有效地集中位置信息,提出了时间卷积操作来计算相邻帧之间的帧特异性相似度,并动态地选择信息丰富的邻居进行卷积。

结论:TDL在19PS数据集上取得了最好的性能,并且在跨数据集场景下也表现良好。

背景:

  • 在大多数数据集和挑战中,一个重要的场景被忽略,即一个真实的语音语句被合成的语音片段污染,导致部分欺骗(PS)。
  • 在整个PS发展领域,先有了两个数据集(一个叫PartialSpoof),使用SELCNN网络增强语音的准确性,之后是有人使用Wav2Vec2作为前端,ECAPA-TDNN作为后端,在ADD 2022 Track 2中取得了第一名。
  • 上面方法并不能精确地定位特定的片段,有人将之前的语音级PS数据集标签扩展到帧级,并提出了相应的基于W2V2的对抗策略来增强帧级检测能力。
  • TDL——Wav2Vec2作为前端,后端集中于细腻地定位虚假语音片段:第一次使用嵌入相似度模块(嵌入空间并得到高质量的嵌入相似度向量);然后,我们提出了时间卷积操作来从嵌入向量中定位区域。从嵌入中计算每个时间位置的局部相似性。获得一个特定于帧的权重来指导卷积进行时间敏感的计算。

内容成果:

1.使用Wav2Vec - XLS - R从原始音频中提取帧级特征;

2. 设计了一个嵌入相似度模块来在嵌入空间中分离真实帧和合成帧,在嵌入层面增强真假区分的识别;

3.为了捕获位置信息,采用时间卷积操作,通过关注相邻帧之间特定帧的相似性;

4.使用1D卷积层和全连接层对帧级标签进行下采样,以计算二进制交叉熵;

一、W2V2 前端

过在掩码特征编码器上解决对比任务进行训练,

首先,不同长度的语音信号通过由七个卷积神经网络( CNN )层组成的特征提取器。

随后,使用包含24层、16个注意力头、嵌入大小为1024的Transformer网络获得上下文表示。

二、嵌入相似度模块(ESM)

  • 嵌入向量是L2 -规范化的;
  • 利用余弦相似度来度量两个嵌入向量的相似度:

  • 为了增加嵌入空间中真假帧之间的距离,提高泛化能力,我们计算了真帧之间、假帧之间以及真假帧之间的余弦相似度;
  • 确保来自不同位置的真实帧表现出相似性,来自不同位置的虚假帧表现出相似性,而真实帧和虚假帧彼此不相似性;
  • 使得不同位置的真实帧和虚假帧相似:

理解:τsame 是同一类别帧的相似度阈值,⌊ . . . ⌋+ 表示零下限幅,...

  • 虽然知道帧级真实性标签的位置,但W2V2-XLS-R特征的时间维度并不与这些帧级标签内在地保持一致。
  • 分离真假帧:

τdiff为相似度阈值,用于约束真假帧之间的距离;

  • 最后嵌入相似度模块采用LESM进行优化:

三、时间卷积操作

为了有效地捕获位置信息,使用嵌入向量作为局部注意力掩码来执行时间卷积操作;

理解:其中fmt为输出特征向量的第m个通道的值,⌊· · ·⌋表示向下取整操作,[ · · ·]表示矩阵的切片,( · )表示内积。X是经过近邻相似度计算处理的调制特征。

其中矩阵a∈Rk × T是一个相似矩阵,计算每个时间位置的局部相似性,a[ i , t]表示第t个特征向量和它的k个邻居之间的相似性。在实际操作中,邻居设置为1,a[ i , t]、a[ i , t-1 ]、a[ i , t + 1]之间进行相似度计算。

在实际操作中,我们根据ESM模块生成的嵌入向量来确定动态核权重。我们对两个序列1D - CNN上的W2V2特征进行时间卷积操作,其中输入通道和输出通道都保持不变,以保持时间维度上的一致性。

四、总损失

使用1D-CNN,全连接层和sigmoid激活函数来计算BCE(Binary Cross-Entropy)损失。

五、实验结果分析

所有的度量都是基于部分欺骗音频的帧级真实性标签计算的。

使用了基于点的二分类准确率,召回率和Sklearn的F1分数。在任何评估之前,根据特征的实际长度消除零填充。

实验测试表明使用real 1fake 0标签的效果更好,而且提出的模型复杂度更低。

贡献点:

  • 提出TDL方法,一种适用于PS场景的高效的ADD方法,该方法结合了嵌入相似性模块和时间卷积操作,可以有效地捕获特征和位置信息。
  • 提出的方法在ASV spoof 2019PS数据集上优于基线模型,即使在跨数据集实验中也表现出优越的性能。

注:科研新手总结的论文,后续会出一篇结合代码的分析文章。

  • 29
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
AttributeError: partially initialized module是一个错误提示,意味着在导入模块时发生了错误。这个错误通常是由于循环导入或模块未正确初始化导致的。 解决这个错误的方法有以下几种: 1. 检查循环导入:循环导入是指两个或多个模块相互导入,导致无法正确初始化。可以通过重新组织代码结构,避免循环导入的情况发生。 2. 检查模块初始化:确保模块被正确初始化。可以尝试重新安装模块或更新到最新版本,以确保模块的正确性。 3. 检查模块命名冲突:有时候不同的模块可能有相同的名称,导致导入错误。可以尝试更改模块的名称,以避免命名冲突。 4. 检查模块依赖关系:有时候模块依赖其他模块,但这些依赖关系没有正确安装或导入。可以检查模块的依赖关系,并确保它们都正确安装和导入。 5. 检查Python环境:有时候错误可能是由于Python环境配置不正确导致的。可以尝试重新配置Python环境或使用虚拟环境来解决问题。 以下是一个示例代码,演示了如何解决AttributeError: partially initialized module错误: ```python import seaborn as sns # 检查循环导入 # 如果有循环导入的情况,可以尝试重新组织代码结构 # 检查模块初始化 # 可以尝试重新安装模块或更新到最新版本 # 检查模块命名冲突 # 如果有其他模块与seaborn模块有相同的名称,可以尝试更改模块的名称 # 检查模块依赖关系 # 确保所有依赖的模块都正确安装和导入 # 检查Python环境 # 可以尝试重新配置Python环境或使用虚拟环境 # 其他解决方法 # 如果以上方法都无法解决问题,可以尝试在社区或论坛上寻求帮助,或者查阅相关文档和教程。 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MaximusCoder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值