张家良 张强
关键词:说话人确认;语音特征;ECAPA-TDNN;感受野;多尺度特征
0 引言
说话人确认技术是判断某段测试语音是否来自所给定的说话人,是“一对一”的判别问题。该技术已经应用于许多实际的领域,如智能家居、金融安全、刑侦破案等。近10年来,说话人确认技术得益于深度神经网络(Deep Neural Network,DNN) 强大的学习能力得到了快速发展。
鉴于DNN强大的特征提取能力,在说话人确认领域已经广泛应用。2014年,Variani[1]等人基于DNN的基础上,提出了一种具有帧级别说话人声学特征的模型,将训练好的DNN从最后一个隐藏层提取的说话人特定特征的平均值作为说话人的模型,称为d-vector。相对于i-vector[2],d-vector在小规模文本相关的说话人确认任务上有着更好的性能。由于d-vector只能提取帧级别的特征,Snyder[3]等人提出了x-vector,其主要利用多层时延神经网络结构(Time-delay Neural Net?work,TDNN)和统计池化层,将帧级别的输入特征转化为句子级别的特征表达。此外,杨宇奇[4]还在TDNN 的基础上建立多分支聚合TDNN网络的方式来提取说话人的嵌入特征。
近年来,研究者开始将卷积神经网络应用到说话人确认领域。Nagrani[5]基于循环神经网络提出了VG?GVox模型。在残差网络(Residual Networks,ResNet) [6]的基础上,Chung[7] 等人提出ResNetSE34L,ResNe?tSE34V2模型,采用不同尺度的卷积核提升多尺度特征的表达能力。此外,Desplanques 等人[8]还在基于TDNN 的x-vector 架构上,提出了ECAPA-TDNN 模型,采用引入SE-Net[9]模块、通道注意机制和多层特征融合等增强方法,进一步扩展时间上下文,该模型已成为说话人确认领域最优秀的框架之一。
尽管当前大部分说话人确认网络都采用了更深、更复杂的网络结构来提升特征提取能力,但这也导致模型的参数和推理时间倍增。鉴于此,本文提出一种改进的ECAPA-TDNN模型,采用VoxCeleb1公开数据集进行实验,结果表明,相对于原模型,在说话人特征提取能力方面实现了明显提升。
1 相关工作
1.1 ECAPA-TDNN 模型
ECAPA-TDNN是一种基于音频信号的说话人识别模型。模型如图1所示,该模型参数包括T、C、K、d 和S,分别代表输入的音框数目、卷积通道数目、卷积核大小、空洞卷积扩张率和说话人数目。在本系统中,T为300个frame的固定值,C为512,S为训练数据集的说话人数目。输入特征为80维的说话人特征向量乘T,输入后经过Conv1D+Relu+BN层处理,紧接着是三层1D 的挤压激励的Res2Block(SE-Res2Block),这些层采用不同的空洞扩张率,分别为2、3、4。接下来一层是Cov1D+Relu,将不同扩张率的SE-Res2Block 输出进行结合,形成多层特征融合(MFA)。再经过At?tentive Statistical Pooling(ASP)层,进行加权平均值和加权标准差聚合后进行池化,最后通过全连接层,生成192维的说话人特征向量。最后一层采用AAMSoftmax算法进行分类,将192维度的说话人嵌入向量进行分类,输出数据集训练的说话人数目。
1.2 提高模型嵌入向量维度
在ECAPA-TDNN模型中,通过将嵌入向量的维度从原本192维调整至512维度,可以更准确地捕捉和识别不同说话者之间的语音差别,从而提升模型的准确性。具体来说,说话人的特征在低维度下可能会变得模糊或失真,而高维度的嵌入可以更好地保留这些特征。此外,在进行分类任务时,使用高维度的嵌入还可以提高模型对于训练数据特征的拟合能力,从而得到更好的分类效果。
1.3 改进的SE-Res2Block
ECAPA-TDNN 模型中最重要的部分就是SERes2Block,如图2(a) 所示,将SE-Block 添加到Res2Block模块的末端。SE代表着压缩(Squeeze)和激励(Excitation),其用于增强卷积神经网络的表达能力,学习特征通道之间的关系,并根据特征通道的重要性对它们重新加权。在Res2Block模块中,说话人特征信息在经过第一个1×1卷积后,将输入划分为S个子集(ECAPA-TDNN模型中S为8),定义为xi,i ∈ {1,2,...,S },每份子特征的尺度大小都相同,除了最后一个子特征之外,其余的子特征都经过一个3×3卷积,并且该卷积有空洞率参数d,定义为Convi,d ( ),其输出为yi.子特征xi 都和Convi - 1,d ( ) 进行相加,然后输入Convi,d ( ),因此yi 的公式如下:
除了最后一份子特征外,Res2Block模块在卷积操作之前可以接收其左边的特征信息,这使得每个输出都能够获得更大的感受野,從而实现不同数量和不同感受野大小的特征组合。
相对于原模型中潜在地获取左边子特征的输出信息,为获取更多不同大小感受野的大小组合,本文提出一种(All Connect,AC)的模型,如图2中(b)所示。每个子特征会与左边所有的子特征卷积结果进行融合后再进行卷积操作,最后一份子特征遵循原论文,不做任何操作,保留原信息。改进后的公式如下所示:
与原模型相比,在没有增加模型参数的前提下,每个子特征相比原来的感受野不断增大,更全面地捕获了所有左侧特征的特征表示信息和语义信息,从而能够更加准确地提取说话人区别特征,提高模型的性能和准确率。
1.4 空洞卷积扩张率数组模块
空洞卷积最初是针对图像语义分割问题中下采样导致图像分辨率下降、信息丢失的情况提出的一种卷积方法。相比于标准的卷积,空洞卷积引入了一个超参数称为扩张率(dilation rate,d),d 表示卷积核内部各个点间的数量,标准卷积核的扩张率为1。空洞卷积的优点在于不进行池化操作的情况下,扩大了卷积核的感受野,使得每个卷积可以接收更广范围的信息。以3×3的卷积为例来展示普通卷积和空洞卷积,如图3所示。
由图3可知,(a) 为普通的标准卷积,其感受野为3;(b) 图中将标准卷积的d 设置为2,其感受野由原来的3扩大为5。感受野的计算如公式(3) 所示,其中原卷积核的大小为k,空洞扩张率为d, k'为等效的卷积核感受野的大小。
在ECAPA-TDNN 的3 层SE-Res2Block 中,Res2Net模块被均等地分为8份,每一份的卷积核为3×3,由上到下每层SE-Res2Block扩张率为固定的2、3、4。本文提出一种多个空洞卷积扩张率(Multi-Dilation,MD) 数组[2,3,4,5,2,3,4,5]来替代固定的扩张率。以固定的扩张率2来做对比,Re2Net中8份的感受野分别为[5,5,5,5,5,5,5],MD的感受野分别为[5,7,9,11,5,7,9,11]。相比单一固定的空洞扩张率,MD方法使用多个不同大小的扩张率,每个分支学习可以学习到不同大小尺度的特征信息,能够在多个尺度上进行表达,从而增加特征的多样性,提高模型的性能。其次多个不同大小的扩张率可以覆盖到更广泛的感受野,使得网络能够更好地捕捉说话人的信息,提高模型的表示能力,从而提高模型的性能。
2 实验设置与结果分析
2.1 实验环境与参数设置
本文实验的操作系统为Ubantu18.04,开发环境为Pytorch1.7.0,Cuda版本为11.0,编程语言为Python。实验采用的CPU为Intel Xeon(R) 8255C,GPU为 NVIDIARTX 3090(24GB显存)。在训练过程中说话人语音特征提取采用帧长为30毫秒,步长为10毫秒,使用汉明窗进行加窗操作,使用80维滤波器组特征FBank。采用Adam优化器,epoch为100,batchsize为150,初始学习率为0.001,采用间隔学习率调整策略(StepLR),step_size为1,gramma为0.97(每轮学习率=前一轮学习率*0.97)。
2.2 数据集
本文实验数据采用牛津大学的VoxCeleb1公开数据集。数据集全部是文本无关的,说话人范围广泛,并且性别分布均衡。数据的音频为单声道,频率为16 Khz,采样大小为16 bit,WAV格式。在本次实验中,将VoxCeleb1数据集划分为训练集和测试集(两个数据集的说话人没有交集)。其中,训练集(VoxCe?leb1-train) 挑选1 211名说话人的14 864条语音,测试集(Vox Celeb1-Test) 挑选出40名说话人的4 708条语音,构成37 611个测试对,其中18 802对来自同一说话人,18 809对来自不同说话人。
2.3 数据增强
在深度学习训练时,拥有大量的标记数据会使得训练的效果更好,也能确保训练时,不会发生过拟合的问题,因此本文实验利用数据增强的方式来增加训练数据的数目和多样性。本实验采用两种方法进行数据的增强。第1种是加入MUSAN语料库的噪声,MUSAN语料库包含了演讲、音乐和噪声3个部分,演讲部分的内容大部分是政府部门的演讲;音乐部分包含了古典乐和现代流行乐;噪声部分包含了技术性噪声(传真机噪声、拨号音等)和环境噪声(风声、雨声、动物噪声等)。第2种是加入RIR语料库,即房间脉冲响应,其主要用于模拟不同房间环境下的语音信号,可以制作出不同房间的聲学环境,通过添加噪声模拟真实语音环境中存在的噪声问题。
2.4 实验评价标准
为了验证模型的有效性,本文采用在说话人确认、人脸识别等领域常用的等错误率(Equal ErrorRate,EER) 和最小检测代价函数(Minimum DetectionCost Function, minDCF) 作为系统的评价指标。minDCF公式为:
为了说明本文方法的有效性,通过消融实验来验证引入扩大说话人嵌入向量的维度,空洞卷积率数组MD和AC模块的改进性,通过与ECAPA-TDNN模型对比验证本文算法的优越性。各个模型的实验结果如表1所示:
从表1可以看出,在ECAPA-TDNN的基础上将说话人的嵌入向量由192调整为512,EER和miniDCF分别提升了0.12%、0.01;由于在ECAPA-TDNN 的基础上添加MD模块,EER和miniDCF分别提升了0.22%、0.02;由于在ECAPA-TDNN 的基础上添加AC 模块,EER 和miniDCF 分别提升了0.17%、0.02。最后本文实验添加MD、FC 和512 维度,对比原模型,EER 和miniDCF分别提升了0.31%、0.02。
3 结论
针对说话人确认研究中难于提取充分的语音特征问题,本文提出了一种改进ECAPA-TDNN的说话人确认方法,该方法主要从3个方面对网络层进行改进。首先,扩大说话人的嵌入向量维度,以增强特征表达能力。其次,采用一种全连接的SE-Res2Block模块,最后利用空洞卷积扩张率数组,在网络输出中获取多种感受野大小的组合,从而更有效地表达语音特征的多个尺度信息。实验证明,本文提出的说话人确认方法大大降低了等错误率,在minDCF上也有显著提高,后续会在语音的输入特征和模型结构上进行深入研究。