鉴于自动语音识别(ASR)系统的广泛应用,它们的安全问题受到了前所未有的关注,主要是因为深度神经网络(DNN)对对抗性攻击的脆弱性,微小的扰动可以使模型在不改变语义的情况下犯错误或性能下降。这些攻击方法大多需要在L2范数或L∞范数范数约束下添加噪声扰动,不可避免地留下人工修改的痕迹。最近的研究通过操作风格向量来合成基于文本到语音(TTS)合成音频的对抗性示例,缓解了这一限制。
然而,基于优化目标的风格修改显著降低了音频风格的可控性和可编辑性。在本文中,我们提出了一种基于用户自定义风格转换的ASR系统攻击。我们首先测试了结合风格转换和对抗性攻击的顺序的风格转换攻击(STA)的效果。然后,作为改进,我们提出了一种迭代风格码攻击(SCA)来保持音频质量。实验结果表明,我们的方法可以满足用户自定义风格的需求,并在攻击中实现了82%的成功率,并保持了声音的自然性。
1、风格迁移攻击(STA)与风格迁移攻击(STA)方法概述
-
1.1 风格迁移攻击(STA)
风格迁移攻击(STA)的具体步骤如下:
- 风格迁移: 首先,输入音频x和风格参考音频xs,通过风格迁移模型g,得到风格化音频z = g(x,xs)。
- 添加扰动: 接着,在z上添加扰动δ,形成对抗音频x' = z + δ。
- 优化扰动: 然后,优化δ以最小化对抗损失函数,同时满足扰动强度的约束。损失函数包含对抗目标损失和与风格化音频相似度的正则化项。
- 迭代优化: 在优化过程中,通过反向传播计算损失函数对δ的梯度,并更新δ,直至ASR模型转录结果与目标文本一致。
- 最终输出: 最后,当满足停止条件时,输出对抗音频x'。
++++与传统攻击方法相比,STA利用了语音风格迁移的特点,++++ ++++打破++++ ++++传统对抗扰动约束,并且使得生成的对抗示例更难以检测。++++
1.2 风格码攻击(SCA)
- 风格编码提取: 首先,利用内容编码器ec和风格编码器es,分别提取源音频x和风格音频xs的内容编码c和风格编码s。
- 风格编码替换: 接着,用风格音频的编码s替换源音频的编码,实现风格迁移,得到编码组合(c,s)。
- 解码生成音频: 然后,利用解码器D,基于(c,s)解码生成音频x'。
- 优化风格编码: 将风格编码s作为优化变量,计算对抗损失函数对s的梯度,并更新s,直至ASR模型转录结果与目标文本一致。
- 迭代生成: 重复第3-4步,直至满足停止条件,输出最终的对抗音频x'。
++++与STA相比,SCA直接在风格编码层面进行迭代优化,避免了生成噪声,提高了对抗音频的自然度和质量。++++
在实际应用中,为确保SCA攻击的音频质量符合要求需要注意以下几个方面:
- 选择合适的风格编码: 选择**++++与源音频相似度较高的风格音频++++** 作为参考,有助于保持源音频的内容,并确保生成的对抗音频质量。
- 限制风格编码的扰动范围 :在迭代优化风格编码时,需要限制其扰动范围,避免过大扰动导致音质下降。通常通过设置优化目标函数中的正则化项来实现。
- 监控音频质量 :在迭代过程中,定期评估生成的对抗音频的质量,若质量下降,应及时调整优化目标或停止迭代。
- 利用人类听觉感知 :结合人类主观评价,对生成的对抗音频进行评分,以便及时发现问题并进行调整。
- 使用高质量的解码器 :使用高质量的解码器有助于生成更自然和高质量的对抗音频。可以采用经过训练的语音合成模型作为解码器。
- 调整最大迭代次数 :合理设置最大迭代次数,避免迭代过多导致音频质量下降。在达到一定迭代次数后,可以提前停止迭代。
2、与传统攻击的对比
- ++++打破传统对抗扰动约束++++ :该方法通过语音风格迁移创造音频波形变化的广泛空间,然后添加微小的扰动来误导语音转录,从而打破了传统对抗扰动在lp范数约束下的限制。
- ++++支持用户定制风格:++++ 传统攻击方法难以控制生成对抗示例的风格,而本文方法允许用户选择所需的风格,并生成相应对抗示例,实现了对用户定制风格的支持。
- ++++减少痕迹:++++ 传统攻击方法难以避免留下人工修改的痕迹,而本文方法通过语音风格迁移掩盖了这些痕迹,使得生成的对抗示例更难被检测。
- ++++提高自然度:++++ 传统攻击方法生成的对抗示例自然度较低,而本文方法在迭代语音风格码的过程中提高了语音质量和自然度。
- ++++利用语音属性:++++ 本文方法充分利用了语音的内容、音高、节奏等属性,在固定内容的同时优化其他属性生成对抗示例,而传统攻击方法没有充分利用这些语音的特定属性。
3、实际效果
3.1 攻击成功率和字错误率
- STA方法在同时转换音高和节奏时,攻击成功率为85%,字错误率为7.2%。
- SCA方法在同时迭代音高代码和节奏代码时,攻击成功率为82%,字错误率为4.3%。
- STA方法单独转换音高时,攻击成功率为68%,字错误率为9.8%。
- STA方法单独转换节奏时,攻击成功率为71%,字错误率为10.0%。
- SCA方法单独迭代音高代码时,攻击成功率为8%,字错误率为48.4%。
- SCA方法单独迭代节奏代码时,攻击成功率为76%,字错误率为7.6%。
- 仅攻击方法时,攻击成功率为61%,字错误率为17.8%。
3.2 不同Levenshtein距离下的攻击成功率
- 当Levenshtein距离在1-3时,SCA和STA方法的攻击成功率均较高。
- 当Levenshtein距离在4-6时,SCA和STA方法的攻击成功率略有下降。
- 当Levenshtein距离在7-9时,SCA和STA方法的攻击成功率继续下降。
- 当Levenshtein距离在10-15时,SCA的攻击成功率显著下降,而STA仍保持较高水平。
- 当Levenshtein距离超过20时,SCA的攻击成功率再次上升,超过STA。
3.3 失败攻击的Levenshtein距离
- STA方法的失败攻击Levenshtein距离主要集中在1-8之间。
- SCA方法的失败攻击Levenshtein距离主要集中在1-2之间。
3.4 用户主观评价
- STA的平均MOS为2.10。
- SCA的平均MOS为3.68
4、常用术语
4.1 L0范数, L2 范数, L∞ 范数
各种的攻击算法中,这几个范数出现的频率特别高,这三个范数的存在主要是为了去更统一的规范各个攻击算法产生的扰动的范围。
- L0范数:扰动的像素点数量;
- L2范数:原始图像和扰动之后的图像之间,所有像素点距离绝对值的总和;
- L∞范数:在所有的扰动中,扰动最大的那一个。
我们可以看到,L0范数约束的是对抗样本被扰动过的像素点数量,被扰动的越少,那L0范数就越小,L2范数是对扰动整体进行了一个约束,要求扰动整体的绝对值之和要小于某个值,对于L∞范数来说,它只限制了扰动的最大值,只要扰动不超过这个规定的值,就是合理的。
4.2 莱文斯坦距离(Levenshtein distance)
莱文斯坦距离(Levenshtein distance),也称为编辑距离,是一种衡量两个字符串之间差异的方法。它由俄罗斯科学家弗拉基米尔·莱文斯坦在1965年提出。这个概念可以用来计算将一个字符串转换成另一个字符串所需的最少编辑操作次数,编辑操作如下:
- 插入:向字符串中添加一个字符。
- 删除:从字符串中移除一个字符。
- 替换:将字符串中的一个字符替换为另一个字符