GENERALIZED END-TO-END LOSS FOR SPEAKER VERIFICATION

GENERALIZED END-TO-END LOSS FOR SPEAKER VERIFICATION

基于广义端到端损失的说话人验证

1. ABSTRACT

在这篇论文中,我们提出了一个新的损失函数-广义端到端损失(GE2E),该方法在说话人验证模型上比之前的基于元组的端到端损失函数(TE2E)更加的有效。与TE2E不同的是,GE2E损失函数用一种强调在训练过程的每个步骤中难以验证示例的方式来更新网络。此外,GE2E损失不需要在初始阶段进行示例选择。利用这些特征,我们的模型使用了新的损失函数,降低了说话人验证的EER10%以上,同时较少了60%的训练时间。我们也引进了多读取器技术,它允许我们进行域自适应-训练一个支持多个关键字的更精确的模型。(ok google 和hey google)以及多种方言。

INTRODUCTION
1.1 Background

说话人验证是根据说话人的已知话语(即注册话语)来验证话语是否属于某个特定说话人的过程。例如应用Voice Match。

基于用来注册和验证的话语的限制,说话人验证模型通常分为:文本相关说话人验证(TDSV)和文本无关说话人验证(TISV)。在文本相关说话人验证中,注册和验证话语的转录都受到音位的限制;而在文本无关说话人验证中,并没有词汇的限制,暴露了音素和话语持续时间的较大变化。在本论文中,我们基于文本无关的说话人验证和文本相关说话人验证的一个子任务(全局密码TDSV,基于关键词“ok,google”的验证)。

在之前的研究中,基于i-vector的系统已经成为TDSV和TISV应用的主要方法。在最近几年,基于神将网络的方法变得更加有效,其中最成功的的系统使用了端到端训练。在这样的系统中,神经网络的输出向量通常被称为嵌入向量(embedding vectors)(也叫做d-vector)。与i-vector类似,这样的嵌入可以用于表示固定维空间中的话语,其中可以使用其他更简单的方法来消除说话者之间的歧义。

1.2 Tuple-Based End-to-End Loss

在我们之前的工作中,我们提出了基于元组的端到端模型(TE2E),该模型模拟了训练中注册和验证两个阶段的过程。在我们的实验中,TE2E模型结合LSTM达到了当时最好的性能。对于每个训练步骤,一个包含了一个评估话语xj和M个注册话语xkM的元组输入到LSTM网络中。**元组:{Xj,(Xk1,…XkM)}**.X代表来自固定长度段的特征(log-mel-filterbank energies);j代表说话人个数;k代表说话人的话语数。**元组包含了来自说话人j的单个话语,和说话人k的不同话语。**如果j和k是同一个人,我们就叫做正元组;否则就叫做负元组。我们交替生成正元组和负元组。

对于每个输入元组,我们计算LSTM的L2归一化响应。{ej~,(ek1…ekM}。每个e是一个固定维度的嵌入向量,它是由LSTM定义的sequence-to-vector(序列到向量)映射的结果。元组的质心就代表着M个话语的声纹,并且定义如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6YYFQ6Iz-1611461304859)(./image/声纹质心定义公式.png)]

余弦相似度定义如下:

在这里插入图片描述

TE2E损失最终定义如下:

在这里插入图片描述

其中,σ(x)=1/(1+e−x)是标准的sigmoid函数;如果j=k,δ(j,k)=1;否则等于0。当j=k时,TE2E损失函数推荐s有一个更大的值。该损失函数与FaceNet中的三元组损失非常相似。

1.3 Overview

在这篇论文中,我们介绍了TE2E架构的一个概括。这种新的架构以更有效的方式从不同长度的输入序列构造元组,显著提高了TDSV和TISV的性能和训练速度。这篇论文安排如下:2.1 我们给出了GE2E损失的定义。2.2 是GE2E更有效更新模型参数的理论依据。2.3 介绍了一种称为“多读取器”的技术,使我们能够训练一个支持多种关键字和语言的单一模型。3. 实验结果

2. GENERALIZED END-TO-END MODEL

广义端到端训练是基于一次处理大量的话语。一个批次包含了N个说话人,每个说话人有M个话语。

在这里插入图片描述

2.1 Training Method

我们把N * M 个话语构造成一个批次。这些话语来自于N个不同的说话人,每个说话人有M个话语。说话人j的第i个话语的特征我们用Xji来表示。

与之前我们的工作相似,我们把从话语Xji中提取的特征送进LSTM网络中。线性层连接到最后一个LSTM层,作为网络最后一帧响应的附加变换。定义整个网络的输出为f(Xji,W);W代表神经网络的所有参数(LSTM层和线性层)。嵌入向量(d-vector)作为神经网络输出的L2归一化,定义如下:

在这里插入图片描述

eji代表第j个说话人的第i个话语的嵌入向量。第j个说话人的嵌入向量的质心[ej1…ejM]被定义为cj。

相似矩阵Sjik 被定义为每个嵌入向量eji到所有质心ck之间的比例余弦相似性。定义如下:

在这里插入图片描述

w和b是可学习的参数。我们限制w>0,因为当余弦相似度更大的时候我们想要相似性也更大。GE2E与TE2E的主要不同在于:

  • TE2E的相似度是一个标量值,它定义了嵌入向量ej~和单个元祖质心ck之间的相似度
  • GE2E建立一个相似度矩阵,定义了每个eji和所有质心ck之间的相似性

在训练的过程中,我们想要每个话语的嵌入向量到所有说话人嵌入向量的质心更加相似,同时远离其他说话人的质心。正如图中的相似度矩阵表示,我们希望彩色区域的相似度值较大,而灰色区域的相似度值较小。下图以不同的方式说明了相同的概念,我们希望蓝色嵌入向量接近他自己的说话人的质心(蓝色三角形),远离其他质心(红色和紫色三角形),尤其是最近的质心(红色三角形)。

在这里插入图片描述

给定一个嵌入向量eji,所有质心ck和相应的相似度矩阵Sjik,有两种方法实现这个概念。

Softmax

我们在Sji上加一个softmax,如果k=j,输出等于1;否则输出为0.每个嵌入向量eji定义如下:

在这里插入图片描述

这个损失函数意味着我们将每个嵌入向量推到它的质心附近,远离其他质心。

Contrast

对比度损失定义为正对和最具攻击性的负对,如下:

在这里插入图片描述

σ(x) = 1/(1 +e−x)是sigmoid函数。对于每一个话语,有两个分量被添加到损失中:一个正分量,它与嵌入向量和真实说话人声纹(质心)之间的正匹配相关联。一种负分量,它与嵌入向量和声纹(质心)之间的负匹配相关,在所有假说话人中具有最高的相似性。

在我们的实验中,我们发现GE2E损失的两种实现都是有用的:对比度损失对TDSV性能更好,而softmax损失对TISV性能更好。此外我们观察到当计算值真实说话人的质心去除eji可以使训练稳定,避免琐碎的解决方案。

2.2 Comarsion between TE2E and GE2E

在GE2E损失中考虑一个单独的批次更新:我们有N个说话人,每个说话人有M个话语。每个单独的更新将会把所有的N*M嵌入向量推向各自的质心,并远离其他质心。

这反映了TE2E损失函数中每个Xji的所有可能元组的情况。假设我们在比较说话人时随机从说话人j中选择P个话语。

正元组:{Xji,(Xji1,Xji2…Xjip)}

负元组:{Xji, (Xki1,…,Xkip)} k不等于j,对于每个Xji,我们必须与其他N-1个质心进行比较。

每个正元组都和负元组相平衡,因此总的元组数量是正元组和负元组的最大数目乘以2.

2.3 Training with MultiReader
3. EXPERIMENTS

在我们的实验中,特征提取的过程与[论文6][Automatic gain control and multi-style training for robust small-footprint keyword spotting with deep neural networks,]一致。音频信号首先被转换成宽度为25ms,步长为10ms的帧。然后提取40维log-mel-filterbank能量特征作为每一帧的特征。对于文本相关说话人验证的应用,相同的特征用于关键字检测和说话人验证。关键字检测系统只将包含关键字的帧传递到说话人验证系统。这些帧形成一个固定长度(通常为800ms)的段。对于说话人无关说话人验证应用,我们通常在语音活动检测(VAD)后提取随机定长片段,并使用滑动窗口的方法进行推断。

我们介绍的系统使用了带投影的3层LSTM。嵌入向量(d-vector)的大小与LSTM投影大小相同。对于TDSV,我们使用128个隐藏节点,投影大小为64.对于TISV,我们使用768个投影大小为256的隐藏节点。训练GE2E模型时,每个批次包含N=64个说话人,每个说话人有M=10个话语。我们用SGD对网络进行训练,初始学习率为0.01,并且每20M步减少一半。梯度的L2范数被裁剪为3,LSTM中投影节点的梯度比例被设置为0.5.关于损失函数中的标度因子(w,b),我们还观察到一个好的初始值是(w,b)=(10,-5),而且较小的梯度标量0.01有助于平滑收敛。

3.1 Text-Dependent Speaker Verfication

虽然现有的语音助理通常只支持一个关键字,但研究表明,用户更喜欢同时支持多个关键字。对于Google Home上的多用户,同时支持两个关键字:ok google和hey google。

多个关键字启用说话人验证介于TDSV和TISV之间。因为the transcript既不局限于一个话语,也不完全不受限制。我们使用MultiReader 技术解决了这个问题。与简单的方法相比,MultiReader有很大的优势,例如直接将多个数据源混合在一起,它处理不同数据源大小不平衡的情况。在我们的例子中,我们有两个;用于训练队 数据集:1.一个来自匿名用户查询的ok google数据集,包含150M话语和630K个说话人;2.一个混合ok/hey google训练集,手动收集1.2M话语和18K说话人。第一个数据集比第二个数据集大125倍的话语数和35倍的说话人数。

为了评估我们报告了四种情况下的等错误率(EER):使用任意关键字注册,并对任一关键字进行验证。所有评估数据集都是从665名说话人中手工收集,平均每个说话人有4.5个注册话语和10个评估话语。结果如下:

在这里插入图片描述

我们还在一个更大的数据集中进行了更全面的评估,该数据及收集了83K个不同的演讲者和环境,来自匿名日志和手工收集。我们平均每个说话人使用7.3个注册话语和5个评估话语。我们总结了使用和不使用MultiReader训练的不同损失函数的平均EER,如下:

在这里插入图片描述

基线模型是一个单层LSTM,有512个节点,嵌入向量大小为128.第二层和第三层的模型架构是三层LSTM。比较第2层和第3层,我们发现GE2E比TE2E好10%左右。而且这里在MultiReader下也表现的更好。

3.2 Text-Independent Speaker Verification

对于TISV训练,我们将训练话语分成更小的片段,我们称之为部分话语。虽然我们不要求所有的部分话语都具有相同的长度,但同一批次中的所有话语必须具有相同的长度。因此对于每一批数据,我们在[lb,ub]=[140,180]帧内随机选择一个时间长度t,并强制该批中的所有部分语句的长度为t。

在这里插入图片描述

在推断过程中,我们对每一个话语使用一个固定大小的滑动窗口(lb+ub) / 2 =160帧,重叠50%。我们计算每个窗口的d-vector。通过L2归一化窗口方向的d-vector,然后取元素方向的平均值,生成最终话语方向的d-vector。

在这里插入图片描述

我们的TISV模型是从匿名日志中提取的来自18K说话人的约36M个话语进行训练的。对于评估,我们使用了额外的1000个说话人,平均每个说话人有6.3个注册话语和7.2个评估话语。下图显示了不同训练损失函数之间的性能比较。

在这里插入图片描述

第一列是softmax,它预测训练数据中所有说话人的说话人标签。第二列是用TE2E损失训练的模型。第三列是用GE2E损失训练的模型。从表中可以看出,GE2E的性能优于softmax和TE2E,EER性能提高大于10%。此外,我们还观察到GE2E训练比其他损失函数快3倍左右。

4. CONCLUSIONS

数据中所有说话人的说话人标签。第二列是用TE2E损失训练的模型。第三列是用GE2E损失训练的模型。从表中可以看出,GE2E的性能优于softmax和TE2E,EER性能提高大于10%。此外,我们还观察到GE2E训练比其他损失函数快3倍左右。

4. CONCLUSIONS

本文提出了广义端到端(GE2E)损失函数来更有效地训练说话人验证模型。理论和实验结果都验证了这种新型损失函数的优越性。我们还引入了MultiReader技术来组合不同的数据源,使我们的模型能够支持多个关键字和多种语言,通过结合这两种技术,我们得到了更精确的说话人验证模型。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 黑客帝国 设计师:白松林 返回首页