培训话语级嵌入网络,用于说话人识别和验证

Training Utterance-level Embedding Networks for Speaker Identification and Verification

培训话语级嵌入网络,用于说话人识别和验证

摘要

将语音信号中特定于说话者的特征编码为固定长度矢量是说话人识别和验证系统的关键组成部分。 本文介绍了一种用于说话人嵌入模型的深度神经网络架构,其中嵌入式话语向量中的相似性明确地近似于说话者的声音模式中的相似性。 所提出的架构包含额外的扬声器嵌入查找表,以基于嵌入相似性来计算损耗。 此外,我们提出了一种新的数据增强特征抽样方法。 基于两个数据库的实验表明,与完全连接的分类器和端到端验证模型相比,我们的模型在说话人识别和验证方面更有效。

索引术语:说话人分类,说话人歧视,表征学习,损失组合,特征增强

一,简介

能够区分说话者的表示在许多与说话者识别相关的问题(如说话人识别,验证,检测,分割和聚类)以及与说话者相关的语音识别系统中起着至关重要的作用。通过比较说话者表示,系统可以识别说话者的身份或验证当前说话者是否与登记的目标说话者匹配。

为了构建说话人模型,像i-vector [1]这样的传统方法详细阐述了将特征空间分解成与声音因素相对应的子空间,包括扬声器,会话和声道效果,然后提取扬声器因子。随着最近表现学习中深度模型的成功,研究人员开发了深度神经架构(DNA)来生成特定于说话者的表示[2,3,4]。其中一项早期研究引入了d向量方法[2],其中d向量(或深向量)与i向量具有相似的作用,但是来自深度神经网络。通过对所有帧级特征的最后隐藏层的激活进行平均来获得话语级d-向量。

对验证中的d向量方法的主要批评之一是它分别处理前端表示学习和后端评分组件。为了解决这个问题,Heigold等人。 [3]提出了一个端到端架构,它共同优化了一个集成网络中的系统组件,用于“OK Google”基准测试,该基准测试依赖于文本,需要发言者陈述预定短语。后来,斯奈德等人。 [5]通过开发另一种端到端架构,将问题域扩展到与文本无关的说话者验证环境。对于微软的“Hey,Cortana”基准测试,引入了基于注意力的端到端模型[6]。最近,百度研究人员提出了一种端到端神经元嵌入系统[4],它将话语级输入转换为表示为连续向量的扬声器嵌入。他们不是一起训练前端和后端组件,而是训练网络,以便在假设基于余弦相似性的后端分类器时,嵌入空间中的共同相似性尽可能地与话语相似性相对应。

由于大量的专用数据,端到端系统在他们自己的基准测试任务中取得了成功,但是大多数系统在模型训练和缺乏普遍性方面都存在困难[7]。困难主要来自于这些系统将话语对作为训练输入,以了解每对是来自同一个说话者还是不同说话者。通过可训练的子网络传播对增加了计算成本和不稳定收敛的可能性。以对称方式训练模型高度取决于采样对的分布。此外,端到端方法的任务导向性质导致有限的可重用性,而忽略了嵌入系统[4,8]。

本文介绍了一种用于说话人嵌入模型的DNA,其中话语嵌入的向量空间相似性直接近似于说话者的声音模式的相似性。我们有[4]类似的动机,同时提出另一个损失项而不是使用三联体损失。我们的DNA在训练阶段不采用采样对或三联体作为输入,避免了上述困难。更具体地说,所提出的方法基于显式计算存储器中当前嵌入和可更新扬声器嵌入之间的相似性来最小化测量误差的额外损耗,这受到字嵌入模型的启发[9,10,11]。与整个图的计算负担相比,附加项的计算负担是微不足道的。此外,我们在[3,4,5,6,8]中对话语级语音段而不是帧级语音段训练模型,因为许多说话者识别应用程序,如具有某些密码短语的用户验证系统,执行话语层面的任务。

我们在第2节中介绍了嵌入式DNA及其用于说话人识别和验证的训练过程。第3节提供了TIMIT和LibriSpeech数据库上提出的方法的实验结果。最后,最后一节总结并总结了论文。

2.提出的方法

我们首先解释如何增加训练说话人模型的数据,这些模型的输入是从话语级语音段中提取的特征向量序列。 接下来,我们描述了说话人分类的基线网络结构,并提出了一种通用的架构。 扬声器分类器本身可以用于闭合的扬声器识别,其中系统知道所有候选扬声器。 因此,我们使用两种表达方式,扬声器分类器和说话者识别模型,可以互换,取决于上下文。 完成分类器培训后,我们将经过训练的网络重新用作验证的特征提取器。 在这种情况下,我们分别将分类器训练和网络自适应称为预训练和微调。

2.1数据扩充

在话语级建模中,增强是至关重要的,其中训练实例的数量远小于帧级建模中的数量,尤其是当每个说话者有少量话语时。虽然已经有一些增强方法能够成功地训练语音识别的深层模型[12,13]并对说话者的母语进行分类[14],但是说话人识别的方法尚未进行彻底的研究。由于帧级建模[15,16]本身可以通过从话语中提取许多帧来增加训练实例的数量,因此增加数据的动机较少。对于话语级建模,大多数成功的系统使用来自数万个扬声器的足够数据来训练他们的网络[3,4,5,6]。因此,以前的论文很少涉及数据增加问题。

在不改变标签的情况下扰乱语音数据是语音识别中的一种常见增强策略。然而,许多保留音素标签的扰动方法不是说话者不变的。频域的变化可能存在扰动特征将失去说话者特征的风险[12,17]。速度和速度扰动[13]也容易受到这种限制,因为每个音素的时间持续时间与不同的声音生成密切相关[18]。

为了保留说话者标签,我们遵循重新采样风格,其中每个话语被随机分成几个部分。然后,以交替的方式移除或放置一块,并将其余的块连接起来。这是[14]中实现的增强的扩展,它从原始输入中采样连续子序列。我们选择奇数位置的片段和偶数位置的片段之间的较长级联语音,以防止输入太短。由于该过程在每个时期运行并且深度学习过程通常在多个时期上的训练集上迭代,因此迭代中的已删除语音将被馈送到其他迭代中的模型中。

2.2扬声器分类器

基线网络由一个d向量提取模块组成,它充当一个变换函数δ(),它将一系列特征向量x映射到d向量d,即δ(x)= d,并且完全符合 输出节点与扬声器ID一一对应的nected层(图1)。 我们使用长短期记忆(LSTM)递归神经网络(RNN)[19],其中单个最后一个输出后跟一个完全连接的层,用于提取d-向量,如[3]中所述。 虽然它可以改进模型以用复杂的子网结构替换子网结构,但在这里我们专注于使用提取的d向量来制定损耗,而不是将子网络构建为将特征序列转换为d向量。 可训练的网络权重得到优化

使用softmax交叉熵损失lf与完全连接的输出激活af,其中第i个元素定义如下:

其中Wi和bi分别对应于说话者ID i 1,2,...,K的完全连接层的权重和偏差。 af的大小等于训练集中的发言者数量K.

对于涉及处理诸如说话者验证之类的域外扬声器的任务,δ可以在通过最小化lf训练为特征扩展器之后产生用于后端分类器的输入的说话者表示。对后端分类器的直接方法是计算两个表示之间的余弦相似性,用于说明是否来自同一个说话者的说话人识别问题[2],但报告的表现并不令人满意[3,20] 。虽然其他后端分类器包括线性判别分析(LDA)和概率LDA [7,21],但在分类和区分之间的优化目标仍然存在不一致。

另一种有希望的方法是构建一个连体网络并同时优化d矢量提取模块和阈值部分。 Siamese架构由两个相同的子网络组成,共享可训练的权重[22]。子网将语音段对转换为两个d向量,然后标量能量函数评估它们之间的兼容性。在[5]中,作者在训练阶段使用了暹罗网络,当入学率为1时,[3]和[6]中的模型也被缩减为暹罗网络。

然而,这些模型需要通过为每个话语挑选最相似的冒充者[6]或通过从同一个扬声器中选择没有任何两对的真实对来构建小批量然后形成冒名顶替者来对真实和冒名者对进行抽样的繁琐程序其中[5]。最近,三重态损耗用于构建扬声器嵌入系统[4,8],但采样三元组必须满足硬约束。此外,同时训练相同的子网会导致不稳定的收敛[7]。是因为,

[4]预先训练了一个softmax扬声器分类器和[5]通过一个细致的方案提供训练对,该方案根据持续时间安排话语的馈送顺序。

图2描绘了我们提出的架构,其包含大小为K h的可训练嵌入查找表E,其中h是d向量大小,类似于字嵌入模型[9,10]。表格中的每个嵌入Ei Rh充当相应说话者的登记扬声器模型。我们计算表中d向量和说话人嵌入之间的相似性得分。通过这种计算,模型可以

以间接方式比较d向量而不需要完全对输入。分数向量用于计算soft-max交叉熵损失。就在softmax层之前,得分矢量通过线性层,整流线性单元(ReLU)层,然后再经过线性层。这种显式公式尽可能地刺激同一说话者的d向量,而不同说话者的d向量相对于某个相似性度量保持彼此的距离。线性和ReLU层保持得分低于某一相似性,以扩大d-向量附近的扬声器嵌入的影响。

括语音活动检测,平均倒谱替换,以及具有均值和方差的全局或说话者级标准化。相反,预计RNN会在一定程度上进行预处理,这将深入研究最小化输入预处理的趋势。

在这项工作中,实验模型的d向量大小和LSTM单位数为256。我们将特征向量序列x的最大长度限制为200帧,因为反向传播的步骤太多是不可取的[19]。在增强之后完成将特征序列截断为固定长度。在训练阶段,我们对完全连接的层应用批量归一化和丢失0.1,然后是最后一个RNN输出。批量大小为256,AdamOptimizer [24]更新了参数所有实验的学习率为10-4,β1= 0.9,β2= 0.99。我们通过将完全连接的层的平方权重的平均值乘以正则化参数0.01来使L2损失使基线模型正规化。

由于广义架构和Siamese架构在余弦相似度计算期间对d向量进行归一化,因此我们没有对它们应用L2正则化。

 

3.2绩效比较

为了研究2.1节中引入的增强的影响,我们通过将分裂点p的数量从零(无增大)改变为五来在TIMIT数据库上训练基线说话者分类器。图3中的结果显示了所提出方法的有效性。 LibriSpeech分类的数据集扩充不如TIMIT有效,因为LibriSpeech中每个说话者的话语数量是TIMIT的10倍以上。

尽管如此,增强并没有降低性能,并有助于模型的稳健性。因此,我们使用三个分裂点对下面给出的所有实验应用增强。

图4显示了三种广义模型的说话人识别性能:λ= 0的模型(称为M0),它是基线模型; λ= 1的模型(称为M1),在不考虑lf的情况下最小化le;和λ= 0.5的模型(称为M0.5)。实验重复几次,M0的误差率在3.1%和5.7%之间波动,而M0.5的误差率在TIMIT的1.7±3.1%范围内。在LibriSpeech上,M0和M0.5分别实现了2.3 4.3%和0.8 1.8%的错误率。对于这两个数据库,M0.5始终优于其他数据库。表现

M1在培训的早期阶段很差,但它在某些迭代中赶上了基线模型的表现。最小化组合损失加速了M1的训练并提高了M0的性能。

接下来,我们研究了从说话人识别数据集中学习的所提出模型的d向量提取模块,以查看它在说话人验证任务中是否仍然有用。对于这项调查,我们从每组中以1:1的比例对真正的对和冒充者对进行采样,如前一个小节所述。我们没有对不同性别的冒名顶替者进行抽样以避免琐碎的情况。表1显示了两个数据库的结果,通过比较训练四万次迭代后没有预训练的Siamese模型的错误率与两个微调模型,每个模型重复使用预训练三万次迭代后获得的权重分别为M0和M0.5。请注意,用于预训练的迭代比用于训练Siamese网络的迭代花费的处理时间更少,因为Siamese网络评估一对中两个输入的激活。

结果表明,微调模型在没有预训练的情况下优于Siamese模型,符合[7,25]。我们的结果类似于[3]中的小训练集实验,而不是同一篇论文中的大型训练集实验。这些共同意味着Siamese模型的性能对训练数据集中的扬声器数量比对微调模型更敏感。此外,重新使用M0.5的微调模型在两个数据库的微调模型中更好,这证实了所提方法的有效性。

 

4结论

在本文中,我们通过最小化基于嵌入相似性的附加损失,提出了一种易于处理且有效的方法来训练说话人嵌入网络。实验表明,我们的模型优于完全连接的基线网络模型,用于说话人识别。对于说话人验证,所提出的方法比微调基线分类器或原始d-向量方法[2]的模型获得了更好的结果,并且优于基于Siamese网络的模型,该网络是Siamese网络的简化版本。端到端方法[3]。此外,当说话者标记话语级别输入的实例不足以学习深度表示时,数据增加是必不可少的。

 

 

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/weixin_38858860/article/details/84639930