APP下载

基于卷积循环神经网络的语音逻辑攻击检测

2022-07-23杨海涛王华朋楚宪腾牛瑾琳林暖辉张琨瑶

科学技术与工程 2022年18期
关键词:滤波器语音卷积

杨海涛, 王华朋*, 楚宪腾, 牛瑾琳, 林暖辉, 张琨瑶

(1.中国刑事警察学院公安信息技术与情报学院, 沈阳 110854;2.广州市刑事科学技术研究所, 广州 510030)

近年来电信网络诈骗屡屡发生,不法分子利用伪造语音来掩饰自己的声学特征以达到恶意欺骗的目的,对人民的生命财产安全构成严重威胁。快速、准确、有效地对伪造语音进行检测可以有效保证录音资料的真实性和完整性,保护公民合法权益,保障司法公正[1]。

伪造语音的方法通常包括合成、转换、回放和模仿[2]。其中语音合成和语音转换被称为逻辑攻击(logical access,LA)为本文的研究对象。语音逻辑访问攻击的检测方法有很多,主要分为传统机器学习的方法和基于深度学习的方法。在传统机器学习检测方法中GMM和i-vector较为常见,在2015—2019年自动说话人识别欺骗攻击与防御对策挑战赛(automatic speaker verification spoofing and countermeasures challenge, ASVspoof)上都取得不错的成绩,该项比赛是迄今为止规模最大,最全面的针对伪造语音的挑战赛[3]。随着深度学习(deep learning, DL)的发展出现了一批深度神经网络模型,他们能够很好地区分非线性复杂特征从而提高分类的准确度并被用于语音检测领域[4]。Yu等[5]使用深度神经网络DNN分类器及声学动态特征在自动说话人识别系统对欺骗语音进行检测取得了很好的结果。鉴于卷积神经网络CNN在图像处理中取得的成功,不少学者将其用于语音处理相关问题中[6]。Liang等[7]使用CNN网络去解决失真小的伪造语音检测问题,其结果区分准确度大于95%相比传统方法提高了4.2%。在处理与时序相关的场景中循环神经网络RNN有突出表现,本文研究中采用了长短时记忆网络(long short term memory, LSTM)、门控循环神经单元(gated recurrent unit, GRU)、双向长短时记忆循环网络(bidirectional LSTM, Bi-LSTM) 3种变种RNN网络用于语音逻辑攻击检测实验,在其他学者的研究中Scardapane等[8]采用RNN网络模型在ASVspoof2015数据集上提取常用声学特征进行实验,平均等错误率为2.91%。长短时记忆网络则更加适合处理长时依赖问题[9],在ASVspoof2017挑战赛中Li等[10]使用了基于注意力机制的LSTM结构并取得了良好的结果。有研究表明:融合模型是进一步提升系统性能的好方法。Chen等[11]使用基于ResNet的混合网络模型进行语音回放检测,其等错误率相对单层网络结构减少了18%。Sainath等[12]2015年首次将CNN、LSTM、DNN三者结合成一个统一的体系结构CLDNN网络,并将其用于自然语言处理来解决大词汇量连续语音识别的问题。Emam等[13]则对CNN、LSTM、CLDNN三者进行了对比,结果表明CLDNN网络表现最优。而后Bo等[14]将CLDNN网络用于说话人识别,在2 000 h的含噪语音数据集上进行实验其结果相对单层网络提升了12.7%。Dinkel等[15]提出了一种基于CLDNN网络端到端的伪造语音检测在BTAS2016数据集上进行实验表现优秀。

基于此,现从混合网络模型,特征选择出发,提出基于CNN-RNN-DNN的混合网络,包括CNN-LSTM-DNN、CNN-GRU-DNN、CNN-BiLSTM-DNN三种混合网络模型。模型中CNN部分可以进行下采样充分提取语音信号的深度信息,RNN部分解决语音中的时序问题,DNN部分则实现分类功能。每种混合网络模型包含20层网络层,运用所提网络对提取的6种声学特征进行实验,以期为语音逻辑攻击检测提供基础。

1 提出的CNN-RNN-DNN混合网络

基于CNN-RNN-DNN混合网络检测流程如图1所示。分别提取语音信号特征后将提取到的语音特征数据划分为训练集、验证集和测试集,模型训练阶段分别采用CNN-RNN-DNN网络检测系统中的CNN-LSTM-DNN、CNN-GRU-DNN、CNN-BiLSTM-DNN等混合网络进行训练,得到训练好的模型后用测试集测试最后输出结果进行系统性能评判。

图1 检测系统流程Fig.1 Process of the detection system

1.1 声学特征

在语音识别领域梅尔频率倒谱系数MFCC被广泛应用,语音信号经过预加重后分窗、加帧等处理再进行快速傅里叶变换,送入Mel滤波器进行滤波处理后取对数运算,再进行DCT操作最后输出MFCC参数特征[16-17]。MFCC特征参数提取流程如图2所示。

对输入的语音信号s(n)依次进行预加重、分帧、加窗等处理,生成时域信号t(n),本文研究中预加重系数取值为0.95,分帧设置为25 ms(帧大小)和10 ms跨度(重叠15 ms),选择窗的长度为25 ms的汉宁窗。

图2 MFCC提取过程Fig.2 MFCC extraction process

(1)接着对语音时域信号t(n)通过快速傅里叶变换处理得到频域信号P(k),其中N=256,FFT为快速傅里叶变换,ti为信号t(n)的第i帧。

(1)

(2)将频域信号P(k)输入Mel滤波器组进行滤波操作,Mel滤波器组是一组三角带通滤波器,使用式(2)在Hertz(f)和Mel(m)之间转换f为频率:

(2)

(3)滤波操作后对信号进行取对数运算计算每个滤波器组输出的对数能量S(m),Hm为经Mel滤波处理后的信号:

(3)

(4)使用离散余弦变换(DCT)将对数频谱S(m)转换为MFCC特征参数X(n)其表达式为

(4)

式(4)中:m为滤波器组;n为系数阶数。

(5)

伽马通频率倒谱系数(gammatone frequency ceptral coefficient,GFCC)能够精确模拟人耳的听觉响应,且具有较强的噪 声鲁棒性,伽马通滤波器是一组用来模拟耳蜗频率分解特点的滤波器模型,可以用于音频信号的分解[19]。GFCC特征参数的提取过程类似于MFCC,在处理过程中将伽马通滤波器组代替Mel滤波器组,其时域表达式为

g(f,t)=tn-1e-2πSitcos(2πfi+Øi)U(t),

1≤i

(6)

式(6)中:n为滤波器阶数;Si为衰减因子;fi为中心频率;Øi为相位一般为0;U(t)为单位跃阶函数;i为滤波器个数。

提取MFCC、LFCC、GFCC等单个特征及MFCC+LFCC、MFCC+GFCC、LFCC+GFCC等混合特征作为训练神经网络的语音特征。在单个特征提取过程中,特征维度设置为20维,选择二维离散余弦变换,选择窗的长度为25 ms的汉宁窗,每50帧语音为特征长度组成一个序列。混合特征提取分别设置单个特征维度为20维,选择二维离散余弦变换,选择窗的长度为25 ms的汉宁窗,单个特征长度为25帧,使用vstack函数将两种单个特征组合在一起形成一个50帧语音为特征长度,维度为20的序列。

1.2 神经网络对语音特征的处理

本文中提出的基于CNN-RNN-DNN网络的混合网络模型包括CNN-LSTM-DNN、CNN-GRU-DNN、CNN-BiLSTM-DNN,其结构如图3所示。

图3 混合网络结构Fig.3 Fusion model structure

以MFCC特征为例,将提取到的MFCC特征X(n)中的随机特征[Xt-1,Xt,Xt+1],其中每一个特征参数使用python中的reshape函数处理使其具有4个维度依次为:样本个数、高度、宽度、通道数,然后输入到卷积层,经过两次卷积操作后输入到池化层进行下采样处理随后设置Dropout随机丢弃一部分神经节点防止过拟合,再进行卷积和Dropout操作,输入到池化层最后经过归一化层和Flatten层输出给reshape通过调整网络参数后输出特征向量为yi然后输入RNN网络部分。RNN部分三种混合网络分别为LSTM、GRU、Bi-LSTM网络,一共设置两层。数据通过RNN部分后经过Dropout和归一化层最后输出到Dense层进行二分类(真实类,伪造类)输出。

1.3 相关网络模型

1.3.1 卷积神经网络(CNN)

标准的卷积神经网络由卷积层、池化层、全连接层、激活函数构成,卷积层由多个卷积核组成,其目的是学习输入数据的特征;池化层的目的是通过降低特征映射的分辨率来实现偏移不变性;全连接层则充当分类器的作用;激活函数通常包括sigmoid、tanh、ReLU[13,20-21]。图4所示为本文设置的CNN网络的结构。可由式(7)表示:

(7)

式(7)中:N为卷积核个数。

CNN网络模型在进行语音逻辑攻击检测时,输入的语音特征xi为[Xt-1,Xt,Xt+1]经过卷积核kij的卷积操作后输出的yi为[Yt-1,Yt,Yt+1],其中i为滤波器的编号,偏差为bi, *为卷积操作,f为激活函数本文使用ReLU。

Conv.卷积层;Maxpooling最大池化层;Dense全连接层 图4 卷积神经网络结构Fig.4 CNN network structure

1.3.2 长短时记忆神经网络(LSTM)

LSTM网络结构由一系列的记忆单元所组成,图5所示为LSTM的记忆单元结构,在时间步长t处,LSTM表示[9,22]为

ft=σ(Wf[ht-1,xt]+bf)

(8)

it=σ(Wi[ht-1,xt]+bc)

(9)

(10)

(11)

ot=σ(Wo[ht-1,xt]+bo)

(12)

ht=ot*tanh(Ct)

(13)

图5 LSTM记忆单元Fig.5 LSTM memory cell

在CNN-LSTM-DNN网络模型中,语音特征经过卷积处理后输出yi然后输入到LSTM层进行前向计算,LSTM公式中的输入特征xt=yi,过计算后将最后一个时刻的隐藏向量输入到DNN网络中进行分类处理,判断真实类还是伪造类。

1.3.3 门控循环神经单元(GRU)

GRU与LSTM的结构相似但是结构更简单GRU通过直接在当前网络的状态ht和上一时刻网络的状态ht-1之间添加一个线性的依赖关系,来解决梯度消失和梯度爆炸的问题[23],GRU计算公式为

rt=σ(Wxrxt+Whrht-1+br)

(14)

zt=σ(Wxhxt+Whzht-1+bz)

(15)

(16)

(17)

式中:rt、zt分别为重置门、更新门;Wxr、Wxh、Whr分别为输入向量到重置门的权重、输入向量到输出向量的权重、输出向量到重置门的权重;br、bz、bh分别为重置门、更新门输出向量的偏置向量;⊙表示操作矩阵中对应的元素相乘。

在CNN-GRU-DNN网络中,GRU网络部分接收经过卷积处理过的特征yi作为输入特征即xt=yi,GRU网络进行前向传播可由式(14)~式(15)表示,其中的rt通过计算能够将新信息与前一时刻的记忆ht-1结合,zt与ht-1的矩阵相乘表示前一个记忆单元保留的最终记忆信息。输入特征yi经过GRU网络计算后得到最后一个时间步的特征向量,后输入到DNN网络层进行分类。

1.3.4 双向长短时记忆循环网络(Bi-LSTM)

Bi-LSTM网络由前馈LSTM和后馈LSTM组成,这种结构允许网络在每个时间步长都有关于向前和向后的序列信息,能够解决标准RNN网络在处理时序过程中忽略上下文关系的问题[24-25]。Bi-LSTM网络计算公式为

图6 GRU记忆单元Fig.6 GRU memory cell

(18)

(19)

(20)

图7 BI-LSTM网络结构Fig.7 BI-LSTM network structure

2 逻辑访问攻击检测实验

2.1 实验环境

基于Ubuntu18.04.4LTS系统,使用Jupyter Notebook软件运行环境,Python版本为3.6, tensorflow2.0深度学习框架,硬件配置采用Intel Xeon(R) Gold 6132 CPU处理器,NVIDIA Tesla P4显卡。

2.2 数据库

针对语音逻辑访问攻击进行检测,采用ASVspoof2019LA场景下的训练集作为本次实验的数据集,该数据集为英国爱丁堡大学、法国国家信息与自动化研究所、日本NEC等组织共同发起的ASVspoof挑战赛官方用数据集,由20 名(8男12女)不同说话人组成,采样率为16 kHz,共计23 580个音频文件。该数据集是目前世界上伪造语音检测的主要数据集,其语音伪造方法由4种语音合成算法和2种语音转换算法生成,为目前主流的语音伪造方法,具有广泛的代表性[3]。

提取语音特征后得到特征数据并将特征数据划分为训练集(60%)、验证集(20%)和测试集(20%),表1给出本次实验所划分特征数据集详细信息。

表1 划分数据集详细信息(特征个数)Table 1 Dataset used in the experiment(number of features)

2.3 实验参数设置

使用基于CNN-RNN-DNN网络的CNN-LSTM-DNN、CNN-GRU-DNN、CNN-BiLSTM三种混合网络模型对提取到的MFCC、LFCC、GFCC、MFCC+LFCC、MFCC+GFCC、LFCC+GFCC进行实验。由于单独的神经网络模型在处理语音信号问题上有所局限性,如CNN网络能够充分提取语音频谱的伪影信息从而区分出伪造语音但是却忽略了语音的时序性,RNN网络则是处理时序关系常用的神经网络,但是其提取频谱信息能力较CNN差[12-13]。为了适应语音逻辑访问攻击检测任务,更好地区分出伪造语音和真实语音,首先使用CNN网络充当特征提取器,充分提取语音频谱信息,再按帧输入RNN网络模型中来解决语音信号的时序问题,最后利用Dense网络来进行真伪类别分类,设置的网络参数结构如表2所示。

输入的数据为(X,50,20,1),X为对应特征训练集中特征数据的个数。网络第1层设置32个输出通道及3×3的卷积核,激活函数采用ReLU;第2层为具有64个隐藏节点的卷积层,卷积核大小为3×3,激活函数采用ReLU;第3层对经过两次卷积处理的数据进行池化,此处采用最大池化,随后第四层设置Dropout层随机丢弃50%的神经节点防止过拟合;第5层设置隐藏节点为64的卷积层,卷积核为3×3,激活函数采用ReLU;第6层为Dropout;第7层为128个隐藏节点的卷积层,随后经过最大池化,归一化处理最后经过Flatten传递给变形层,数据经过变形处理后流入RNN部分,RNN部分分别采用LSTM、GRU、BiLSTM 3种网络,共设置了两层,隐藏节点分别为64和128,激活函数采用ReLU。随后进行Dropout处理,丢弃50%神经节点后进行归一化处理。Dense层设置为两层,第1层隐藏节点为256,激活函数为ReLU,第2层激活函数为softmax,两层Dense之间先后添加了Dropout和归一化层。网络的迭代周期设置为1000,batch-sizes设置为512即网络一次训练512个数据,优化器使用Adam,损失函数采用稀疏分类交叉熵。

表2 网络参数结构Table 2 Network parameter structure

3 实验结果及分析

3.1 评价方法

伪造语音检验中等错误率(equal error rate, EER)是常用的评价模型好坏的标准,在ASVspoof2015-2019挑战赛中都被用作评判标准[3,26]。等错误率是指错误拒绝率和错误接受率相等时的数值,本文研究中使用Python中metrics函数计算等错误率。

AUC(area under the curve of ROC, AUC)是衡量二分类系统性能的标准,其数值越接近1,说明分类器性能越好[27]。本文研究中AUC数值计算采用Python中sklearn包的AUC函数计算。

F1分数(F1-score)是分类问题的一个衡量指标,它是精确率和召回率的调和平均数,最大为1,最小为0,F1-score越大说明模型质量越高[28]。本文研究中采用classification_report函数计算。

3.2 实验结果分析

CNN-LSTM-DNN、CNN-GRU-DNN、CNN-BiLSTM-DNN 3种混合网络模型对提取到的6种特征的实验结果如表3所示。

AUC及F1-score指标均为衡量模型性能好坏的指标,两种指标越接近1说明模型性能越好由两种指标可以看出CNN-RNN-DNN模型系统具有良好的区分性能,AUC均在86%以上,对真实类语音区分准确度在80%以上,对伪造类语音区分度在98%以上,说明该系统可有效检测逻辑攻击伪造语音。其中CLDNN混合网络与MFCC特征组合表现最好,AUC指标为94.21%,对真实类区分准确度为88%,对伪造类区分准确度为99%。

从等错误率指标分析,整体来看18种组合中EER指标共有13对组合超过B01基线系统,其中有8对超过B02基线系统(8.09%),如表3中加粗字体所示。其中表现最为突出的为CNN-LSTM-DNN混合网络+MFCC特征,其等错误率为5.79%比B02基线系统低28.43%。

表3 逻辑访问攻击检测实验结果Table 3 Logical access attack detection experiment results

在模型选择上总体来看表现最优的为CNN-GRU-DNN混合网络,其对6种特征的平均等错误率为8.28%,平均AUC为91.72%。

在声学特征的选取上,单个特征表现最突出的是MFCC特征其平均等错误率为7.22%,平均AUC为92.78%。混合特征中表现最突出为MFCC+LFCC,平均等错误率为7.76%,平均AUC为92.24%。

综上所述,基于CNN-RNN-DNN网络系统对逻辑攻击检测准确率高,稳定性好。其中CNN-LSTM-DNN混合网络和MFCC组合取得最好的结果,在模型选取中CNN-GRU-DNN混合网络平均测试结果表现最优。CNN-BiLSTM-DNN混合网络对混合特征测试的结果最好。声学特征的选取上单个特征中MFCC平均测试结果最好,混合特征中MFCC+LFCC平均测试结果最佳。

3.3 不同模型比较分析

为验证本文所提混合网络模型的优点,增加了其与CNN、LSTM、GRU、Bi-LSTM等单独神经网络模型的对比实验。对比实验采用MFCC特征及MFCC+LFCC混合特征作为实验用语音特征。对比实验网络参数按照CNN-RNN-DNN网络中相应网络设置,控制其他变量。表4给出了本次对比实验的结果。

比较设置的CNN、LSTM、GRU、Bi-LSTM这几种单独神经网络的实验结果与本文所提方法的实验结果,选取语音特征为MFCC时,对比模型中仅有CNN网络超过本文所提方法的平均值。选取的语音特征为MFCC+LFCC时4种对比网络均比本文所提方法要差。实验结果表明,在逻辑访问攻击场景下,CNN-RNN-DNN网络模型较其他模型有一定的性能提升。

表4 对比实验结果Table 4 Comparative experiment results

4 结论

提出了基于CNN-RNN-DNN网络的3种混合网络模型用于逻辑访问攻击语音检测。这3种混合神经网络模型能够对提取到的特征有效分类,性能表现优秀。对提取到的6种声学特征进行实验结果表明18种组合中有13种超过B01基线系统,8种超过B02基线系统,其中CNN-LSTM-DNN和MFCC组合取得最好效果,在特征选择上MFCC及MFCC+LFCC更为适合此混合网络。通过对比实验可知CNN-RNN-DNN网络较其他模型表现更优,其原因在于混合网络融合了单独网络的优点,CNN进行下采样捕捉细节特征,RNN部分则解决语音长时依赖问题,结果证明CNN-RNN-DNN网络系统能够有效应用于语音逻辑攻击检测任务中,未来的工作将集中在模型的结构优化及深层特征的提取上,进一步提高准确率。

猜你喜欢

滤波器语音卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
卷积神经网络的分析与设计
魔力语音
基于MATLAB的语音信号处理
从滤波器理解卷积
基于MQ3与MP3的价廉物美的酒驾语音提醒器
对方正在输入……
开关电源EMI滤波器的应用方法探讨
基于傅里叶域卷积表示的目标跟踪算法
一种微带交指滤波器的仿真