1. 引言
说话人验证是从语音中提取出说话人特征信息,以确定两个语音段是否来自同一说话人。深度学习的兴起之前,提取说话人信息特征的方法主要是高斯混合模型(GMM)、i-vector等算法 [1] [2] [3] [4]。随着深度学习的兴起,由于其具有强大的自主学习能力以及充分挖掘特征潜在信息的能力,在说话人识别领域取得了优异的性能表现,并成为了主流的声纹特征提取方法 [5] [6] [7] [8]。深度神经网络在用于声纹特征提取时,损失函数作为待优化的目标函数,极大影响了所学声纹特征的判别性,因此,许多学者在损失函数的设计上展开了深入研究。
其中Softmax损失是分类网络中最常见的损失函数,也是训练说话人嵌入神经网络最常用的损失函数之一,但它学习的特征区分性不够明显,具体表现为不同类特征间的距离不够远。因此,人们提出了几种Softmax的改进损失来增强特征的类间区分性,包括L-softmax [9]、A-softmax [10]、SpherFace [11]、CosFace [12] 和ArcFace [13] 等等,它们也被引入到说话人识别领域中 [14] [15] [16]。这些方法主要通过将特征和分类权重向量单位化投影到超球面上,使分类结果取决于特征和分类权重向量之间的角度,再对类间间隔施加一个惩罚因子,使不同说话人特征的间距更加明显。然而,超参数间距惩罚因子的设置又是一个新的难点。基于深度度量学习的端到端损失如对比损失 [8] 和三元组损失 [17] 直接优化说话人嵌入间的距离。其中对比损失以成对样本进行训练,使得同一类样本对的特征距离缩小,不同类样本对特征之间的距离拉开,因此对比损失能学习到具有明显类间距离的特征表示。受此启发,本文在分类神经网络的训练过程中引入非同类样本对的学习,通过对非同类样本对特征距离的优化拉大样本的类间距离。
此外,与欧几里得距离相比,角距离是特征空间中更自然的选择,因此,本文沿袭Softmax改进损失的思想将特征和分类权重向量单位化到超球面上,再通过优化不同类样本对之间的余弦值来增加特征的类间角度距离,使分类权重向量彼此远离,该损失函数称为余弦Softmax损失。在AISHELL语音数据集上的说话人验证实验结果表明,余弦Softmax损失的表现要优于Softmax损失以及其改进损失A-softmax损失。
2. 具有角度判别性的深度说话人嵌入
2.1. 余弦Softmax损失
在多分类的情况下神经网络的Softmax损失为:
其中k是样本数量,w是最后层分类层的权重项,b是分类层的偏置项,
是第i个训练样本,
分别是w的第j列和第
列,
分别是b的第j项和第
项。因为
,
是
与
之间的夹角,所以Softmax损失可以写为:
是
与
之间的夹角。
对Softmax施加额外约束,令权重范数
且
,并去掉偏置项b,则损失为:
设
是从网络最后隐藏层特取样本
的特征向量,且
不属于同类样本,则该对样本特征的相似度D为:
给定两个负样本对的相似度阈值
,
,优化每对特征相似度小于阈值的负样本,使得负样本对特征都能有不小于
的角度距离,取
,则两个不同类样本至少存在垂直的角度间距,
因此定义负样本对学习的损失函数为:
余弦Softmax是
损失和
损失的和,
用于平衡负样本对的损失:
其解释如图1所示,
损失以分类权重向量为中心聚拢同类样本特征,
损失通过负样本对之间的距离优化,带动分类权重向量彼此分隔开,这种联合效应可以学习到更有判别性的说话人嵌入。

Figure 1. Geometric interpretation of cosine Softmax loss
图1. 余弦Softmax损失的几何解释
2.2. 网络模型设计
通过设计两个共享权重参数的特征提取网络组成孪生网络进行训练。特征提取网络又由卷积层Conv1、残差块 [18]、均值池化层Avg-pool、全连接层和分类层组成。网络训练完成后从最后的隐藏层提取语音的声纹特征,即:
为说话人语音,经过特征提取网络
后得到深度说话人特征
和
。

Figure 2. Training structure of network
图2. 网络训练结构图
网络训练结构图如图2所示,通过最小化以下损失函数来优化网络参数:
表示两条语音不属于同一说话人,n为训练的样本对数,K表示分类的说话人数量。
3. 实验及结果分析
3.1. 数据集
实验采用AISHE数据集 [19],该数据集是公开的最大的中文语音数据集,从中选取100个说话人,每个说话人选取100条语音作为训练集语音,20条语音作为测试集语音。
3.2. 实验设置
输入特征:用基于能量的语音活动检测方法去除沉默语音段,采用32 ms长度汉明窗和16 ms的窗口移位提取语音的MFCC特征。
网络设置:训练说话人嵌入的孪生网络参数如表1所示。前端提取器基于ResNet [18] 架构,ReLU激活函数和批归一化应用于每个卷积层,Dropout层设置沉默的神经元比例为0.4,全连接层设置64个神经元,提取64维的说话人嵌入特征,最后的分类层100个节点对应训练数据的100个说话人,具体网络结构如下表。

Table 1. The structure parameters of speaker embedding network
表1. 说话人嵌入网络结构参数
3.3. 实验结果
从测试集根据正负样本对1:1的比例抽取10,000对测试样本,采用ROC曲线下面积(AUC)和等误差率(EER)来评估结果,不同损失函数训练的实验结果如表2所示,ROC曲线图如图3所示。

Table 2. Speaker verification results of different loss functions
表2. 不同损失函数的说话人验证实验结果

Figure 3. ROC curves of cosine Softmax and A-softmax
图3. 余弦Softmax和A-softmax损失的ROC曲线图
由实验结果可知,在相同网络结构和数据集的条件下,改进损失函数余弦Softmax损失函数的实验结果优于Softmax和A-softmax,取得了最低的EER 4.88%,同时该损失测试的AUC最大为0.983。
4. 总结
本文的余弦Softmax损失以引入负样本对学习的方式对Softmax损失进行了改进,有效改善了Softmax损失类间距离不显著的问题,并在说话人验证实验中取得了优于A-softmax损失的性能。
基金项目
国家自然科学基金(11426045)、吉林省自然科学基金学科布局项目(20180101229JC)。
NOTES
*通讯作者。