0%

AKH20 论文阅读笔记

前言

最近要开始进入科研状态了,所以会经常更论文阅读笔记了哈哈,尽量每一篇精读的文章都能出阅读笔记。

这一篇和前面刷的 2 篇关系还是比较紧密的,这篇文章给出了一个轻量级的语音活体检测系统(防止重放攻击等):Void。而我之前所读的两篇,包括海豚攻击以及 RSHC18,其实都是 Inaudible Commands 这一攻击大类的,是把语音命令以隐秘的形式发送给语音设备。但本质上,还是要将 Victim 的语音通过重放或合成的方式组合起来(如果有声纹识别),都是机器重放的,所以要想破解,从活体检测这个角度做也是非常有效的。在本文的摘要末尾也提到,该系统对于hidden voice command, inaudible voice command, voice synthesis, equalization manipulation attacks, and combining replay attacks 等可以达到 99.7%, 100%, 90.2%, 86.3%, and 98.2% 的检测率。

当然,回归本篇论文的初心,其实做活体检测最大的用处还是防止重放攻击。而 Void 在检测的准确率上其实并不是最高,作者给出了 17 年的一个检测大赛的成果, Void 的准确度可以排在第二的位置。但是第一所使用的是一个非常重的 DNN 模型,并且用到了很多计算代价较高的特征,模型参数也非常多。 Void 使用了其 153 分之一的内存,并且可以达到 8 倍的检测速度。具体来说,Void 的 EER(equal error rate)在比赛数据集上达到了 11.6%,在使用 MFCC 的基础上可以提高到 7.4 %。也就是说,Void 在保持了较为优秀的检测率的同时,大大优化了效率。

在具体的分类方法方面, Void 通过扬声器重放人声与天然人声之间在频谱上的 2 大天然区别进行分类。具体特征提取方法在下文再做描述。

这里说一些文中提到的概念(一些数学概念已经在原文的 Appendix 中进行解释):

EER:Equal Error Rate,当 FPR 与 FNR 相等时,二者的值。

Correlation Coefficients:相关系数,这里一般指 Pearson 相关系数,用于衡量变量之间线性相关的量。相关系数ρ定义为两个变量X、Y之间的协方差和两者标准差乘积的比值。https://blog.csdn.net/chao2016/article/details/80917579。

quadratic curve fitting coefficients:二次曲线拟合系数,将数据用二次曲线拟合后的系数。关于使用 MATLAB 做多项式曲线的拟合,可以参照链接。

https://ww2.mathworks.cn/help/matlab/ref/polyfit.html

Levinson-durbin algorithm:Levinson recursion or Levinson–Durbin recursion is a procedure in linear algebra to recursively calculate the solution to an equation involving a Toeplitz matrix. 下面是 MATLAB 的相关 API。

https://ww2.mathworks.cn/help/signal/ref/levinson.html

Toeplitz matrix:托普利兹矩阵的主对角线上的元素相等,平行于主对角线的线上的元素也相等;矩阵中的各元素关于次对角线对称,即T型矩阵为次对称矩阵。

Toeplitz matrix - Wikipedia

1 基本信息

1.1 论文来源

M. E. Ahmed, I.-Y. Kwak, J. H. Huh, I. Kim, T. Oh, and H. Kim, “Void: A fast and light voice liveness detection system,” in 29th USENIX Security Symposium (USENIX Security 20), Aug. 2020, pp. 2685–2702, [Online]. Available: https://www.usenix.org/conference/usenixsecurity20/presentation/ahmed-muhammad.

1.2 概述

本文是一篇对于语音设备情景的重放攻击的防御方案。目的是达到输入语音的活体检测,以确定输入的语音是人声发出还是由扬声器设备发出。目前已经有一些较为优秀的神经网络模型可以达到较高的准确率(7.4%的 EER),但是这些模型参数庞大(以最优秀的模型为例,84770,下同),速度慢(单条分类时间约0.27秒),占用内存大(需要304.176MB)。这么重的体量使得他们无法在真实场景的语音识别应用中使用(真实场景对于延迟的要求极高)。于是本文通过使用一些频谱能量特征进行分类,在复杂度较低的情况下达到了较高的准确度,在实际场景中具有实用性。另外,在结合 MFCC-GMM 的情况下,可以达到 8.7 % 的 EER(这里摘要没有提,但是后文的数据表示这样只需要额外的0.03秒,因为 MFCC 通常在语音设备进行识别时都已经被计算出来)。最后,与我之前工作相关的,Void 模型可以以极高的准确度识别出这些年兴起的几类攻击:hidden voice command, inaudible voice command, voice synthesis, equalization manipulation attacks, and combining replay attacks,可以达到 99.7%, 100%, 90.2%, 86.3%, and 98.2% 的检测率。

下面额外补充一张 Void 与之前准确率最高的模型的对比表。

度量标准 Void STFT-LCNN
特征提取时间(秒) 0.035 $3e^{-4}$
训练时间(秒) 0.283 15,362.448
分类时间(秒) 0.035 0.270
特征数量(个) 97 84,770
占用内存大小(MB) 1.988 304.176
EER 11.6% 7.4%

2 论文要点

2.1 背景

  • 当下的语音设备(包括手机、智能家居等)非常易受重放攻击影响,人们急需一个能够区分真人语音与扬声器重放语音的分类模型。

  • 在实际的语音识别应用场景中(包括典型的语音助手),对识别的延迟要求非常高,要求能将延迟降低到接近 0 秒。此外识别设备的运算能力通常也非常有限。所以只有轻量、快速、简单的分类器才能在实际应用中得到采用。

  • 产业界对分类准确率的要求通常是 EER 在 10% 以下。ASV Spoof 2017 竞赛中,最优秀的模型的 EER 达到了 6.7%,而第二优秀的设备的准确率则在 12.3%。

2.2 价值

  • 设计了一款快速轻量的语音重放攻击检测系统。使用参数极少,相比现有深度学习方案,本方案能够解释关键频谱能量特征的特点,并解释为什么他们能在分类中有效。
  • 对上文设计的系统做了系统性的评估。评估使用了 2 大数据集,一个是作者团队自己收集,255173个语音样本,另一个是 ASV Spoof 2017 竞赛中使用的开放数据集,共 18030 个语音样本。 Void 在两个数据集中的 EER 分别达到了 0.3% 和 11.6%。后者在 ASV Spoof 2017 中可以位列第二。此外,在使用 MFCC-GMM 时,可以将 EER 提高到 8.7%。
  • 对这些年兴起的几类攻击进行了评估:hidden voice command, inaudible voice command, voice synthesis, equalization manipulation attacks, and combining replay attacks,分别可以达到 99.7%, 100%, 90.2%, 86.3%, and 98.2% 的检测率。

2.3 问题陈述

现有的语音活体检测方案中,能够在准确率上达到业界要求的方案均采用深度学习方法,体量过于笨重,无法在实际产品中得以应用。

2.4 方法

Void 利用人声与机器重放语音之间在频谱能量特征上的区别进行分类。这里简要来说,利用了三个区别:

  1. 在 1kHz 左右人声有一个指数级的能量下降;而重放语音的能量下降通常更接近线性,并且其频谱能量分布相对较为均匀。
  2. 利用二者在低频峰形的区别(数目,峰值,分布等)
  3. LPCC(Linear prediction cepstrum coefficients,线性预测倒谱系数)的区别。

对于上面的 3 个区别,作者设计了 4 组特征向量,并且最终将 4 组向量连接起来作为分类器的输入。(具体特征提取算法参见论文)

在选择分类模型上,作者测试了k-Nearest Neighbor(kNN), Random forest, SVM with linear kernel (SVM linear), and SVM with RBF kernel (SVM RBF)。最终得出 RBF 核的 SVM 的效果最佳。

2.5 结果

Void 在作者数据集以及 ASV spoof 数据集分别达到了 0.99 和 0.94 的 AUC; 0.3% 和 11.6% 的 EER。在与现有模型在复杂度上的差距可参照 1.2 概述部分的表格。在与 MFCC-GMM 联用时,可以达到最佳 EER:8.7%(权重比例为 7:3)。

在不同变量的影响上,攻击距离(2.6m内)几乎没有影响,说话人性别影响也几乎没有影响。一般情况下,播放设备的影响也较低,但是当使用高品质扬声器时,有个别扬声器会使得准确度下降近 20%。而不同的训练数据集以及未知场景对模型精确度影响不大。

对于这些年兴起的几类攻击:hidden voice command, inaudible voice command, voice synthesis, equalization manipulation attacks, and combining replay attacks,分别可以达到 99.7%, 100%, 90.2%, 86.3%, and 98.2% 的检测率。

3 评论

3.1 局限性

  1. 当使用高端音频设备进行重放攻击时,Void 的表现会较为明显的下降。
  2. 可以使用均衡器操作(EQ manipulation)对特定频率端进行加强或者减弱,以使得重放的声音尽可能的拟近真实人声。但这需要较高的信号处理技术专家才能进行攻击。
  3. 一些对于 SVM 的攻击对 Void 同样奏效。

3.2 启示

  1. DNN 并不是万能的,体量笨重,难以解释使得它在一些要求即时性和重视隐私的领域难以得到应用。
  2. 在 Inaudible Voice Commands: The Long-Range Attack and Defense 中,作者提出了很细节的一些分类器用于防止 Inaudible Command 的攻击(也是通过频谱上的一些特征进行区分,但是是不需要训练的分类器)。但是实际上,本文的 Void 经过试验证实可以以 100% 的准确度拦截 Inaudible Command 的攻击。所以有时,也许跳出特定领域,寻找较大领域的通解也能在这个领域达到很好的效果。Void 根本目的是防御重放攻击,但是却对 Inaudible Command 达到了很好的防御效果。
  3. Void 在特征提取的设计上体现出了作者在信号处理相关领域的深厚基础,要想手动做特征工程,需要对领域有深刻的了解。

4 个人笔记

绕过:Void 利用了人声和机器扬声器之间在频谱上的区别,那么除了人声和机器扬声器我们是否有其他的方式发出数字的声音呢?比如数控乐器?该类的声音会不会被 Void 拦截?

思考:Void 的核心在于其特征工程,人声的频谱具有很多独立的特点,Void 使用一些方法提取出特征并组合成特征向量送入 SVM,所以我们如果不进行实验也无法判断乐器在频谱上的特点以及是否会被 Void 正确分类。假设使用乐器的声音可以绕过 Void,那么如何精准的将数字信息传入乐器?

一篇 GitHub 上的第三方复现 : https://github.com/chislab/void-voice-liveness-detection。