泛化端到端损失函数的说话者验证外文翻译资料

 2022-08-08 20:32:53

英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料


泛化端到端损失函数的说话者验证

Li Wan Quan Wang Alan Papir Ignacio Lopez Moreno

摘要

在本文中,我们提出了名为泛化端至端(GE2E)损失的一个新的损失函数,这使得说话者验证的训练模型比我们以前的基于元组的端到端(TE2E)损失函数更有效。不像TE2E,GE2E损失函数以一种强调示例的方式更新网络,该示例在培训过程的每个步骤都难以验证。另外,GE2E损失函数不需要示例选择的初始化阶段。有了这些特性,该模型与新的损失函数学习一个更好的模型,通过在较短的时间内将EER降低10%以上,并通过将训练时间减少超过60%来实现。我们还介绍了MultiReader技术,该技术使我们能够进行域自适应-训练更准确的模型,该模型支持多个关键字(例如“OK Google”和“Hey Google”)以及多种方言。

索引词:说话人验证,端到端损失函数,MultiReader,关键字检测

1.引言

1.1 背景

说话者验证(SV)是使用语音匹配[1、2]等应用程序根据说话者的已知说话(即注册说话)验证说话是否属于特定说话者的过程。

根据注册和验证所用话语的限制,说话者验证模型通常分为两类之一:文本相关的说话者验证(TD-SV)和文本无关的说话者验证(TI-SV)。在TD-SV中,注册和验证话语的笔录都受到语音的限制,而在TI-SV中,注册或验证话语的笔录没有词典限制,从而暴露出较大的音素变化和发声持续时间[3, 4]。在这项工作中,我们专注于TI-SV和TD-SV的一个特定子任务,称为全局密码TD-SV,其中验证基于检测到的关键字,例如“OK Google” [5,6]

在以前的研究中,基于i-vector的系统一直是TD-SV和TI-SV应用的主要方法[7]。近年来,更多的努力集中在使用神经网络进行说话人验证上,而最成功的系统则使用端到端培训[8,9,10,11,12]。在这样的系统中,所述神经网络的输出载体通常被称为嵌入矢量(也称为d-vector)。类似于i-vector的情况,这种嵌入可用于表示固定维空间中的发音,在该维中,其他通常更简单的方法可用于消除说话者歧义。

1.2 基于元组的端到端损失

在我们以前的工作[13]中,我们提出了基于元组的端至端(TE2E)模型,模拟运行注册和验证在训练中两阶段。在我们的实验中,结合了LSTM [14]的TE2E模型达到了当时的最佳性能。对于每个训练步骤,一个评估发声Xj〜和M个注册发声Xkm(对于m = 1,...,M)被供给到我们的LSTM网络:{Xj〜(XK1,...,XKM)},其中x表示所述特征(对数梅尔-滤波器组能量)固定长度段,j和k代表发音的说话者,并且j可以等于或者可以不等于ķ。元组包括来自说话者j的单个发音和来自说话者k的M个不同发音。如果Xj~和M个注册语音都来自同一说话者,即j = k,我们称一个正元组,否则称为负元组。我们交替生成正负元组。

对于每个输入元组,我们计算LSTM的L2归一化响应:{ej〜(ek1,...,ekM)}。在此,每个e是固定大小的嵌入向量,该向量是由LSTM定义的序列到向量的映射产生的。元组的质心(ek1,...,ekM)表示从M语音建立的声纹,其定义如下:

,(1)

通过余弦相似度函数来定义相似度:

(2)

其中w和b是可学习的。TE2E损失函数最终定义为:

(3)

此处sigma;(x)= 1 /(1 e-x)是标准的S型函数,如果j = k,则delta;(j,k)等于1,否则等于0。当以下情况时,TE2E损失函数会鼓励使用更大的s值: k=j,并且当kne;j时s较小。考虑正负元组的更新-此损失函数与FaceNet[15]中的三元组损失非常相似。

1.3 总览

在这篇论文中,我们介绍了一个概括的我们TE2E的架构。这种新的架构构建的元组从输入序列的不同长度以更有效的方式,导致显著的性能和训练速度两个TD-SV和TI-SV提升。本文的组织结构如下:2.1我们给出了GE2E损失函数的定义; 2.2 GE2E为什么更有效地更新模型参数的理论依据; 2.3引入了一种称为“ MultiReader”的技术,该技术使我们能够训练一个支持多种关键字和语言的模型。最后,我们在Sec中介绍我们的实验结果3。

2.泛化端到端模型

泛化端到端(GE2E)训练基于一次处理大量语音的形式,该批处理包含N个说话者,每个说话者平均M个发音,如图1所示。

2.1 训练方法

我们获取Ntimes;M语音以构建批处理。这些话语来自N个不同的扬声器,每个扬声器有M个话语。每个特征向量xji(1le;jle;N和1le;ile;M)代表从说话人口述i中提取的特征。与我们以前的工作[13]相似,我们将从每个发声xji提取的特征输入LSTM网络。线性层连接到最后一个LSTM层,作为网络最后一个帧响应的附加转换。我们将整个神经网络的输出表示为f(xji; w ),其中w代表神经网络的所有参数(包括LSTM层和线性层)。嵌入矢量(d矢量)定义为网络输出的L2归一化:

,(4)

这里的eji表示第j个说话者的第i句话语的嵌入向量。通过公式1将来自第j个说话者[ej1,hellip;,ejM]的嵌入向量的质心定义为cj

相似度矩阵Sji,k定义为每个嵌入向量eji与所有质心ck之间的缩放余弦相似度(1le;j,kle;N,1le;ile;M):

,(5)

其中w和b是可学习的参数。我们将权重限制为正wgt; 0,因为当余弦相似度较大时,我们希望相似度较大。TE2E和GE2E之间的主要区别如下:

bull;TE2E的相似性(等式2)是标量值定义嵌入矢量ej~之间的相似度和单个元组矩心ck

bull;GE2E建立相似度矩阵(等式5),该矩阵定义每个eji与所有质心ck之间的相似度。

图1以不同的颜色表示了来自不同说话者的特征,嵌入向量和相似度得分,从而说明了整个过程。

在训练过程中,我们希望每个发音的嵌入都与该说话者的质心相似,同时又远离其他说话者的质心。如图1的相似度矩阵所示,我们希望着色区域的相似度值较大,而灰色区域的相似度值较小。图2以不同的方式说明了相同的概念:我们希望蓝色嵌入矢量接近其说话者的质心(蓝色三角形),而远离其他质心(红色和紫色),尤其是最接近的质心(红色三角形)。给定嵌入向量eji,所有质心ck和对应的相似性矩阵Sjik,有两种方法可以实现此概念:

Softmax我们在k = 1,...,N时在Sji,k上放置一个softmax,使输出等于1,如果k = j,否则使输出等于0。因此,每个嵌入矢量eji的损失可能是德网络定义为:

,(6)

此损失函数意味着我们将每个嵌入矢量推向其质心附近,并将其拉离所有其他质心。

对比 在正对和最积极的负对上定义对比度损失为:

,(7)

其中sigma;(x)= 1 /(1 e -x)是S形函数。对于每一个发声,正好两个组件被添加到损失函数:(1)一种正向分量,其与嵌入矢量之间的正匹配相关联并且它是真实说话者的声纹(质心)。(2)一种顽固的负分量,与嵌入向量和声纹(质心)之间的负匹配相关,在所有错误说话者中相似度最高。

在图2中,正项对应于将eji(蓝色圆圈)推向cj(蓝色三角形)。负项对应于将eji(蓝色圆圈)拉离ck(红色三角形),因为与ck0相比,ck与eji更相似。因此,对比度损失使我们能够专注于嵌入向量和负质心的困难对。

在我们的实验中,我们发现GE2E损失的两种实现都是有用的:对比度损失对于TD-SV表现更好,而softmax损失函数对于TI-SV表现更好。

此外,我们观察到的是,当除去eji计算真正的扬声器的重心,使训练稳定,有助于避免琐碎的解决方案。因此,尽管在计算负相似度(即kne;j)时仍使用等式1,但是当k = j时,我们使用等式8:

,(8)

,(9)

结合方程式4、6、7和9,最终GE2E损失函数LG是相似矩阵(1le;jle;N,1le;ile;M)上所有损失的总和:

.(10)

图1.系统总览。不同的颜色表示来自不同说话人的语音/嵌入。

图2.GE2E损失推向真正的质心嵌入扬声器,并且远离从该质心的的最相似的不同的扬声器。

2.2 比较TE2E和GE2E

考虑GE2E损失更新中的单个批次:我们有N个发言人,每个发言人有M个发音。每个单步更新将推动所有Ntimes;M个嵌入矢量朝着自己的重心,拉他们离开对方重心。这反映了每个xji TE2E损失函数[13]中所有可能的元组所发生的情况。假设比较说话者时,我们从说话者j中随机选择P发音:

1.正元组: {xji,(xj,i1,...,xj,iP)}对于1le;iple;M且p = 1,...,P。 有(MP)这样的正元组。

2.负元组:{ xji,(xk,i1,...,xk,iP)}对于k 6 = j,对于p = 1,...,P,1le;iple;M。对于每个xji,我们必须与所有其他N - 1个质心进行比较,其中N - 1个比较中的每组包含(MP)个元组。每个正元组与一个负元组平衡,因此总数是正元组和负元组的最大数量乘以2。因此,TE2E丢失中的元组总数为:

.(11)

等式11的下界出现在P = M时。因此,我们的GE2E损失中xji的每次更新至少等于我们的TE2E损失中至少2(N - 1)步。以上分析显示了GE2E为什么比TE2E 更有效地更新模型,这与我们的经验观察一致:GE2E在较短的时间内收敛到更好的模型(有关详细信息,请参见第3节)。

2.3 使用MultiReader进行训练

考虑以下情况:我们关心具有小数据集D1的域中的模型应用程序。同时,我们在相似但不相同的域中拥有更大的数据集D2。我们希望在D2的帮助下训练一个在数据集D1上表现良好的单一模型:

(12)

这类似于正则化技术:在正常正则化中,我们使用对模型进行正则化。但是这里,我们使用进行正则化。当数据集D1没有足够的数据时,在D1上训练网络可能会导致过度拟合。要求网络在D2上也要表现得相当好,这有助于规范网络。可以将其概括为组合K个不同的,可能极不平衡的数据源:D1,hellip;,DK。我们分配一个权重alpha;k给每个数据源,表示数据源的重要性。在训练期间,在每个步骤中,我们从每个数据源中获取一批/多批发声,并将总损失计算为公式10。

3.实验

在我们的实验中,特征提取过程与[6]相同。音频信号首先被转换为宽度为25ms和步长为10ms的帧。然后,我们提取40维log-mel-filterbank能量作为每帧的特征。对于TD-SV应用程序,相同的功能可用于关键字检测和说话者验证。关键字检测系统仅将包含关键字的帧传递到说话者验证系统。这些帧形成固定长度(通常为800ms)的段。对于TI-SV应用,我们通常在语音活动检测(VAD)之后提取随机的固定长度段,并使用滑动窗口方法进行推理(在第3.2节中讨论)。

我们的生产系统使用带有投影的三层LSTM [16]。嵌入矢量(d-vector)的大小与LSTM投影大小相同。对于TD-SV,我们使用128个隐藏节点,投影大小为64。对于TI-SV,我们使用768个隐藏节点,投影大小为256。训练GE2E模型时,每批包含N = 64个说话者,M = 10个发音每个说话者。我们使用初始学习率0.01的SGD训练网络,并每30M步将其减少一半。梯度的L2范数被裁剪为3 [17],并且LSTM中投影节点的梯度比例设置为0.5。关于损失函数的缩放因子(w,b),我们也观察到了良好的初始值为(w,b)=(10,-5),和0.01对它们的较小梯度规模有助于平滑收敛。

3.1 文本相关的说话人验证

尽管现有的语音助手通常仅支持一个关键字,但研究表明用户更喜欢同时支持多个关键字。对于Google Home上的多用户,同时支持两个关键字:“OK Google”和“Hey Google”。

表格1.MultiReader与直接混合数据源相比。

表2.文本相关的说话人验证EER。

在TD-SV和TI-SV之间启用针对多个关键字的说话者验证,因为该笔录既不包含在单个短语中,也不完全不受限制。我们使用MultiReader技术(第2.3节)解决了这个问题。与更简单的方法相比,MultiReader具有巨大的优势,例如,将多个数据源直接混合在一起:它可以处理不同数据源大小不平衡的情况。在我们的案例中,我们有两个用于训练的数据源:1)一个来自匿名用户查询的“OK Google”训练集,该查询的发音约

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[240131],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。