1.一种面向语音识别系统的音乐嵌入攻击防御方法,包括以下步骤:
(1)数据集准备及预处理:采集实验所需的音乐音频,分为预训练数据集和用于生成对抗样本的扰动数据集,对采集所得的音乐音频进行裁剪并处理成数据流格式;
(2)训练语音识别模型:利用处理得到的音乐音频数据集对语音识别模型进行训练,使得模型能够具有识别歌词的能力,并利用测试数据集对语音识别模型测试,若未达到预设的识别准确率则重新训练语音识别模型;
(3)预训练生成对抗网络:预训练音频生成网络G、音频判别网络D1,得到生成网络和判别网络的初始参数;
该音频生成模型和音频判别模型是利用如图1所示的模型训练体系获得的,具体的模型训练体系包括三个模块:分别为音频生成网络G、音频判别网络D1、语音识别模型D2.音频生成网络G生成音乐音频,即通过输入一个噪声矩阵可以获得一个音频矩阵;音频生成网络G是由LSTM单元和全连接层构成的神经网络,原始的输入矩阵为[1,N],N表示采样时间点个数,矩阵中的每个值表示每个采样点的采样值;
音频判别网络D1判别正常的音乐音频和生成的音乐音频,定义正常音乐音频的类标为
1,生成音乐音频的类标为0,通过判别网络的损失反馈更新音频生成网络G的参数,使该生成网络生成的音频更接近真实音乐音频;音频判别网络D1主要由全连接层构成,输出为0-1之间的一个数表示判别结果,判别结果越接近1表示生成的音频更接近正常音乐音频,判别结果越接近0则表示生成的音频虚假性较高,容易被人耳识别;
语音识别模型D2识别音乐音频中的歌词,即将音乐音频转录成对应的文字;语音识别模型首先通过特征提取获得音频的MFCC特征向量,特征提取的具体过程如下:Step31:对音频矩阵进行预加重,并以40ms为一帧进行分割,相邻帧之间重叠160个采样点,使得帧与帧之间保持内容上的关联性;
Step32:将分割后的每帧音频通过傅里叶变换得到对应的频谱,并在频谱上进行倒谱分析,即通过对频谱进行离散余弦变换获取第2-13个系数作为梅尔倒谱系数;
Step33:计算梅尔倒谱系数的一阶差分和能量值,与12维的梅尔倒谱系数构成26维的特征向量,特征向量大小[batch_size,n_frames,26],其中batch_size表示每一批次中的样本数量,n_frames表示音频的帧数;
其中,语音识别模型D2主要由DNN和双向RNN网络构成;识别模型的输出为每帧被识别为不同字符的概率。语音识别模型的输出作为语言模型的输入,通过贪心算法搜索得到最可能被识别的字符序列,并得到最终转录结果;
(4)重训练生成对抗网络:重训练包括固定音频生成网络G的参数,更新音频判别网络D1的参数以及固定音频判别网络D1的参数,更新音频生成网络G的参数两个过程,重训练的具体过程如下;
Step41:固定音频生成网络G和语音识别模型D2的参数,将真实音乐音频、生成的音乐音频作为音频判别网络D1的输入训练音频判别网络D1,提高判别网络判别虚假生成音频和真实音乐音频的能力;
Step42:固定音频判别网络D1和语音识别模型D2的参数,将噪声矩阵作为音频生成网络G的输入,根据判别网络的损失更新音频生成模型G的参数,使其生成的音乐音频更加接近正常音乐音频,能够不被人耳辨别其虚假性;
Step43:重复Step41、Step42交替迭代训练音频生成网络G和判别网络D1,直到达到设定的迭代次数训练停止,训练好的音频生成网络G为音频生成模型,音频判别网络D1为音频判别模型;
训练过程中音频生成网络和判别网络的目标函数分别如式(1)、(2)所示:
其中,xG表示音频生成网络G生成的音乐音频,xmusic表示真实音乐音频;pdata表示真实音频的分布,pG表示音频生成网络G的输出分布,D1(xmusic)和D1(xG)分别表示音频判别网络D1对真实音乐音频xmusic和生成音乐音频xG的判别结果;
音频生成网络目标函数的第一项衡量了生成音频与真实音频之间的差距,第二项利用CTC-loss来衡量当前生成音频与目标短语之间的距离,目标函数的值越小,表示生成的音频越接近真实音频,且转录结果与目标短语越相近。
(5)生成对抗样本:利用训练好的生成对抗网络生成能够转录为目标短语的对抗样本,同时确保对抗样本能够保持音乐的基本特性,不能被人耳辨识;
(6)对抗训练:将步骤(5)中得到的对抗样本加入到预训练数据集中,重新训练语音识别模型,得到能够防御对抗样本攻击的语音识别模型。