本文由台湾大学、清华大学、香港中文大学与腾讯科技有限公司合作,针对说话人验证系统很容易受到对抗性样本攻击的问题,提出了一种基于神经声码器的、用于说话人验证系统的对抗样本检测的方法。


扫码阅读论文:

https://arxiv.org/abs/2107.00309


代码开源:

https://github.com/hbwu-ntu/spot-adv-by-vocoder



背景动机
说话人验证是生物特征识别最重要的技术之一。深度学习极大地推动了说话人验证技术的发展。如今,说话人验证系统已广泛应用于高安全性应用。然而,先前的工作表明,说话人验证系统很容易受到最近出现的对抗性样本的攻击(adversarial attack)。对抗性样本(adversarial samples)会导致严重的安全问题,但针对此类攻击的有效对策是有限的。为此,本文提出了用神经声码器(neural vocoder)来检测对抗样本的方法。为了验证本文所提方法的有效性,我们使用 Parallel WaveGAN这一神经声码器作为案例进行深入研究。


主要贡献
我们发现使用神经声码器重新合成音频,该重新合成音频的说话人验证分数与原始音频的说话人验证分数之间存在明显的差异,而且该差异可以作为区分真实样本和对抗样本的良好指标。有鉴于此,本文提出了一种基于神经声码器来检测说话人验证系统的对抗样本的方法。实验表明,本文所提方法可以有效地检测出对抗样本;此外,检测框架中采用的神经声码器与训练声码器的数据集无关,保证了本文所提方法的通用性。特别地,我们还将相关代码进行了开源,以方便社区研究人员开展进一步的工作,并进行实验比较。

研究方法
本文所提出的方法,其框架如图1所示。给定一条音频x,通过上下两条路径分别得到说话人验证系统的分数s和s'。其中,上面的路径直接将给定的音频x送入到说话人验证系统(ASV),并得到分数s;而下面的路径则将给定的音频x进行特征提取后送到神经声码器(Vocoder)得到重新合成的音频x',再通过说话人验证系统,得到分数s'。最后我们会得到一个分数差值|s'-s|。该分数差值越大,输入的音频是一条对抗样本的概率越大。
由于神经声码器是数据驱动的,并且在训练过程中使用真实的数据,以模拟真实数据的分布。因此,神经声码器在合成真正的语音时,合成语音与真实语音之间的失真很小。在推理的过程中,对于真实音频而言,神经声码器的预处理不会过多地影响说话人验证系统的分数,因此此时分数差值|s'-s|是比较小的。而另一方面,假设输入的是对抗音频的样本,在这种情况下,神经声码器将尝试将其净化成正常的样本, 以净化对抗性噪声;此时,两条路径的分数之间就会存在比较大的差异。


实验验证

实验设置

本文的说话人验证系统使用Voxceleb1和Voxceleb2的开发集进行训练。我们采用VoxCeleb1的测试集来产生对抗样本,并用该数据集评估说话人验证系统的性能、以及本文所提方法的对抗样本检测性能。

我们在实验中使用了两种声码器:一种是传统的声码器Griffin-Lim(GL),另一种是神经声码器Parallel-WaveGAN(Vocoder)。对于传统声码器,为了考察不同输入谱的影响,我们在实验中比较了使用线性谱输入的GL-lin、以及使用Mel谱输入的GL-mel。另外,为了验证本文所提方法中所使用的神经声码器是否具有数据集无关的通用性,我们还基于一个大规模数据集重新训练了神经声码器,并将其标识为Vocoder-L。


数据观察与立意基础

表1给出了不同对抗攻击强度(ε)下说话人验证系统的性能对比。可以看出,在没有对抗攻击(ε=0)的时候,说话人验证系统均能取得良好的性能;而当有对抗攻击(ε>0)的时候,说话人验证系统的性能随着对抗攻击强度的增加而急剧下降。这说明,对抗样本能严重破坏说话人验证系统、影响其性能。

另一方面,与没有声码器处理的情况(表1中第1行)相比,在加入声码器重新合成音频的处理之后(表1中第2-4行),当有对抗攻击(ε>0)时,说话人验证系统的性能有所提升;而对于没有对抗攻击(ε=0)的真实样本而言,说话人验证系统的性能没有太大变化。这表明,两种声码器在具有一定的净化噪声的功能的同时,并不会过多影响真实样本情况下的说话人验证系统的性能。

除此之外,对于有声码器处理(表1中第2-4行)和没有声码器处理(表1中第1行)时说话人验证系统的性能对比,我们有以下观察:当没有对抗攻击(ε=0)时,两种情况下的性能差别不大;而当有对抗攻击(ε>0)时,两种情况下的性能有明显差别。我们认为,这种性能差别是一种用来区分对抗样本和真实样本的很好的指标。这也是本文所提方法的立意基础。


真实与对抗样本得分差异分布验证

为了验证本文所提的基于得分差异来区分真实样本和对抗样本的有效性,我们基于本文所提框架,对比了在不同声码器的情况下说话人验证系统的得分分布,结果如图2所示。可以看出,无论是哪种声码器(Vocoder或GL-mel),真实样本(genuine samples)的得分分布和对抗样本(adversarial samples)的得分分布之间都有明显的区别。在不同的声码器条件下,我们都可以清晰地设定一个阈值,以区分对抗样本和真实样本。


对抗样本检测实验

为了验证本文所提方法的对抗样本的检测能力,我们首先得到不同声码器情况下的ROC曲线(receiver operating characteristic curve),并进而计算相应的ROC曲线下的面积AUC值(the area under the curve),AUC值越大说明检测性能越好。不同声码器情况下,对抗样本检测的AUC值如表2所示。可以看出,无论是哪种声码器(Vocoder、GL-lin或GL-mel),本文所提的方法都有很高的AUC值,验证了其针对对抗样本的检测性能。特别地,使用Parallel-WaveGAN声码器(Vocoder)时,对抗样本的检测性能要好于Griffin-Lim声码器(GL-*)。


我们进一步进行了对抗样本检测的检出率(detection rate)的实验,结果如表3所示。可以看出,两种声码器都有很高的对抗样本检出率,Parallel-WaveGAN声码器(Vocoder)的检测性能要好于Griffin-Lim声码器(GL-*)。特别地,在不同的错误接受率(FRR)的情况下,本文所提的Vocoder方法均能取得接近或超过90%的对抗样本检出率;即使对抗攻击的强度很小(ε=5)的情况下,对抗样本检出率也能接近或达到80%。相反地,我们也将本文所提方法与目前常用的高斯滤波(Gaussian)对抗检测方法进行了对比,可以看出,即使在FRR=0.05的情况下,Gaussian方法的性能也不够理想。



结论

本工作采用神经声码器来检测说话人验证系统的对抗样本。本文所提出的方法达到了很好的对抗样本检测的性能,并且在所有设置中都优于Griffin-Lim 基线。神经声码器有两个关键特性,其一是对真实样本的失真较小,其二是对对抗样本有很好的净化能力。这两个特性对于检测对抗样本都很重要。在未来的工作中,我们将研究当攻击者知道我们的防御方法时,我们该如何提高对抗样本的检测性能。


更多实验结果请扫码或复制下方链接至浏览器

https://arxiv.org/abs/2107.00309