1.一种基于迁移训练的声纹识别中毒样本生成方法,其特征在于,所述方法包括以下步骤:(1)对语音数据集预处理:对于每一段语音采用傅里叶变换将其转化为频谱,再通过图像的形式保存为语谱图;
(2)搭建声纹识别模型:预先确定声纹识别模型的结构,层数以及各层的参数且不再变化,指定用来训练该模型的数据集,即语音样本,分别给这些样本标注身份标签并输入模型训练,数据集中的样本应以高准确度被正确预测;
(3)获得迁移训练任务数据集的特征表示空间:将新任务数据集输入到预训练的声纹识别模型中,只取softmax之前层的输出,即样本的特征表示空间,该空间的维度由构建模型时定义;
(4)从测试集中选择目标样本与基样本:先指定需要攻击的目标样本,再选择需要攻击的类别,从该类别中选择特征表示空间最接近目标的一个样本,将其视为基样本;
(5)利用优化算法生成中毒样本:以基样本为起始点,利用Adam优化算法与后向步骤进行迭代生成中毒样本,每次迭代过程中通过预训练声纹识别模型更新特征表示空间,最终使目标样本与中毒样本特征表示空间无限接近,但输入空间几乎不改变;
(6)将中毒样本加入到原训练集中进行迁移训练:在不改变原模型权重的情况下,只重新训练替换的softmax层适用当前分类任务,训练集为原训练集加上一个中毒样本,在测试阶段,目标样本将会被误分类为基样本的标签。
2.如权利要求1所述的一种基于迁移训练的声纹识别中毒样本生成方法,其特征在于,所述步骤(1)的步骤如下:(1.1):分帧,语音信号中的频率随时间而变化,是个非平稳态过程,所以在大多数情况下,对整个信号进行傅立叶变换是没有意义的,随着时间的推移会丢失信号的频率轮廓,为了避免这种情况,需要进行分帧操作,把每一帧当成平稳信号处理,通过连接相邻帧来获得信号频率轮廓的良好近似,将N个采样点集合成一个观测单位,称为帧,长度为Ttotal的语音信号分帧公式如下:u=H[(Ttotal‑toverlap)/tinc] (1)toverlap=ts‑tinc (2)
其中u表示帧的数量,ts表示每帧涵盖的时间,tinc表示后一帧对前一帧的位移量,简称帧移,toverlap表示相邻两帧间的重叠部分,用来避免相邻两帧的变化过大,保持语音信息的完整性,H(.)表示取整函数,第i帧语音信号表示为Si(n),n=0,1,2,…,N‑1,这里0≤i≤u;
(1.2):加窗,为了增加每一帧左端与右端的连续性,需要对帧进行加窗处理,通过一个窗函数使原本没有周期性的语音信号呈现周期函数的部分特征,采用汉明窗,某一帧乘上汉明窗后信号为S′i(n):S′i(n)=Si(n)×W(n) (3)
W(n)=0.54‑0.46cos[2πn/(N‑1)],0≤n≤N‑1 (4)(1.3):提取语音频谱图:对语音信号从时域转换到频域处理,将每一帧采用短时傅里叶变换得到在频谱上的能量分布,公式如下其中S′i(n)是输入的语音信号,k表示频率点,N表示傅里叶变换的点数,与变换后频率点的总个数相同,取每一帧采样点的数量,Xi(k)代表第i帧的频谱,表示频率与能量的关系;将频谱转换为对数功率谱:2
X′i(k)=10log10|Xi(k)| (6)
将每一帧的对数功率谱求转置矩阵后映射到一个灰度级表示:
其中X′i(k)=[X′i(1),X′i(2),...,X′i(N)],Yi表示第i帧的灰度矩阵,最后将每一帧的灰度级表示在时间轴上拼凑起来得到语谱图,起到用二维表示三维的作用,公式如下:Ygray=[Y1,Y2,...,Yu] (8)
此处Ygray表示灰度语谱图,最后将其进行彩色映射Y=RGB(Ygray)变为彩色语谱图Y。
3.如权利要求1或2所述的一种基于迁移训练的声纹识别中毒样本生成方法,其特征在于,所述(2)的过程如下:先预先指定模型的结构,层数以及各层的参数且不再变化,采用的分类模型结构包含卷积层,池化层,批归一化层,全连接层,其中卷积层,池化层,批归一化层构成一个卷积块,其卷积层用来提取语谱图的局部特征,池化层扩大感知视野,批归一化层用批量数据来对输入归一化,加速收敛,减小过拟合,卷积层的数学表达式如下:Hout=(Hin+2padding‑kernel_size)/stride+1 (9)Wout=(Win+2padding‑kernel_size)/stride+1 (10)其中,Hout为卷积层输出的宽度,Wout为卷积层输出的长度,Hin为输入卷积层的宽度,Win为输入卷积层的长度,padding为输入的每条边补充0的层数,stride为卷积步长,kernel_size为卷积核尺寸,若模型输入的语谱图为Y,则经过第m个卷积块后的输出为:(m) (m‑1)
Y =Conv_Block(Y ) (11)
(0)
其中,Y =Y,Conv_Block表示卷积块,然后使用Flatten函数将最终卷积块后的输出变换为一维矩阵输入至全连接层:(0) (i)
Z =Flatten(Y ) (12)
(l) (l) (l‑1) (l)
Z =Relu(w ·Z +b ) (13)
(l‑1) (l)
其中i表示卷积块的总个数,Z 和Z 分别表示第l个全连接层的输入和输出,这里1(l) (l)≤l≤j‑1,j表示全连接层的总数量,w 表示该层的权重矩阵,b 表示该层的偏置矩阵,采用Relu激活函数来减少参数间的依存关系,缓解过拟合现象;
该模型的参数有卷积层的数量和大小、池化层的大小、全连接层神经元的数量;将此模型在50个不同说话人的数据集上进行训练,使其拥有良好的提取样本特征的能力,作为小型声纹识别任务迁移训练的通用模板。
4.如权利要求1或2所述的一种基于迁移训练的声纹识别中毒样本生成方法,其特征在于,所述步骤(4)的步骤如下:(4.1):从测试集中根据攻击者的需求选择一个目标类别t和一个基类别b,从标签为t的样本中随机挑选一个目标样本Yt:Yt=Select(Gt) (15)
其中Gt表示测试集中所有标签为t的样本,成功的攻击会使迁移训练后的模型将目标样本Yt预测为基类别b;
(4.2):从标签为b的样本中挑选基样本Yb,选择基样本时选择特征空间最接近目标样本的示例,选择算法如下:其中 表示目标样本的特征表示空间, 表示第i个候选基样本的特征表示空间,M表示特征空间的维数,此算法使用欧式距离选择特征表示空间靠近目标的基样本Yb,在中毒样本生成过程中可以减少迭代次数,增加攻击成功率,优化中毒样本的质量。
5.如权利要求1或2所述的一种基于迁移训练的声纹识别中毒样本生成方法,其特征在于,所述步骤(5)的步骤如下:(5.1):加载目标样本的特征表示空间,根据样本频谱图的维数与特征空间的维数选择参数α以满足以下损失函数:以基样本Yb为起始优化点,即Y′=Yb迭代生成中毒样本,Y′表示优化过程中的中毒样本的语谱图, 表示该中毒样本的特征表示空间,最终生成的中毒样本YP不仅特征表示空间贴近目标样本,它本身的语谱图相对于基样本几乎不改变,参数α的计算如下:2
α=β×(M/Q) (18)
β是超参数,M是特征表示空间的维数,Q是样本输入特征的维数,由此选择的α可根据样本不同的维数自适应数值以调整优化的重心;
(5.2):使用前向传播与Adam算法优化中毒样本,Adam更新梯度时对梯度的一阶矩估计和二阶矩估计进行了综合考虑:其中T是迭代的次数,在第一次迭代中,Y′0=Y′,αT是指定的学习率且不再变化,β1和β2是指数衰减率, 表示当时损失函数相对于中毒样本Y′T‑1的梯度,mT是梯度的指数移动平均数,vT是梯度平方的指数移动平均数,因m0和v0初始化为0,所以用 与 对梯度均值进行偏差修正,ε是用来避免除数为0的极小数,Adam对更新步长的计算,从梯度均值和梯度平方两个角度进行自适应调节,可以加速收敛速度;
(5.3):后向算法用来优化中毒样本的输入空间,使中毒样本与基样本的语谱图更相似,以此欺骗样本标签标注者,其中λ是调整语谱图的相似度的超参数,clip用来将扰动限制到规定范围:(5.4):重复(5.3)‑(5.4),直至样本特征空间B的距离小于指定阈值或者迭代次数超出给定范围,保存中毒样本。