一种用回归神经网络学习说话人嵌入的无监督神经网络预测框架

An Unsupervised Neural Prediction Framework for Learning Speaker Embeddings using Recurrent Neural Networks

一种用回归神经网络学习说话人嵌入的无监督神经网络预测框架

摘要

本文提出了一种无监督的训练框架,用于使用神经预测编码(NPC)技术学习特定于说话者的嵌入。我们采用回归神经网络(RNN)训练未标记的音频,具有多个未知的说话人变化点。我们假设短期说话者平稳性,因此短时间接近的语音帧起源于单个说话者。相反,假设来自不同音频流的两个随机短语音段源自两个不同的说话人。基于这个假设,开发了一种二元分类场景,用于预测输入的短语音段是否来自同一个说话人。训练基于RNN的深暹罗网络,并且从网络的隐藏层表示中提取的所得嵌入被用作说话者嵌入。说话人变化点检测的实验结果显示了所提出的方法学习短期说话者特定功能的功效。我们还通过简单的基于统计的话语级别说话人分类任务显示这些功能的一致性。所提出的方法优于用于说话者变化检测的MFCC基线,以及用于说话者分类的MFCC和I-vectors基线。索引术语:无监督学习,循环神经网络,说话者分割,说话者分类,与文本无关的说话人识别

一,简介

语音信号传达了大量不同的信息,包括语音细节,说话者和频道特征,短期情绪和情绪,甚至是长期的行为线索[1]。从语音中提取说话人特有的特征在诸如说话人识别[2],语音识别[3]和说话者分段(或说话者变换点检测)和二分法[4]等众多应用中起着至关重要的作用。

通常,短期[2]声学特征,如MFCC [5]和PLP [6],编码不同的信息,并且不限于仅保留说话者特定的特征。然而,它们是许多最先进的说话人分割,二值化和识别系统的基础。大多数这些应用程序的基本技巧是利用短期特征并利用时间背景来创建说话人模型[2]。一种广泛使用的方法是对短期特征(例如,高斯)的概率分布提出一些数学假设,并且基于此,从可变持续时间的话语中导出固定维度说话者特定的特征向量。例如,Reynolds等人。 [7]通过训练GMM-UBM [7]并利用MAP的连接方式(在说话者的数据上)GMM(称为GMM supervector [2])作为固定维度说话人依赖,提出了一种说话者验证技术[7]。向量。基于此基础,一系列因子分析方法[8,9]出现在图片中,用于从音频中分离说话人和声道相关的潜在变化,以获得更好的说话人模型。后来,Dehak等人提出了i-vectors [10],采用单一的总可变性矩阵来模拟通道和说话人的可变性。尽管I-vectors仍然被认为是最先进的特征,但GMM假设[2]及其在不匹配的训练和测试话语持续时间[11]中的性能恶化是I-vectors的两个主要缺点,如文献。

深度神经网络(DNN)[12]研究的最新进展吸引了语音科学家利用DNN的独特能力来学习和从音频中提取特定于说话者的特征。最常见的趋势是使用一些区分说话人的损耗函数,并提取一个或多个有意义的隐藏层表示,通常称为“说话人嵌入”,然后将其用作说话人特定的功能。例如,[13]训练了一个说话人分类网络,并利用说话人嵌入进行了分类。 [14]通过比较两个输入语音帧是否来自同一个发言者,提出了一种监督训练方案。加西亚等人。 [15]采用了类似的方法,但他们的DNN有一个时间池层来处理可变长度的突出。斯奈德等人。 [16,17]通过为演讲者分类任务培训的DNN,在演讲者验证方面取得了最先进的表现。最近的工作[18]比较了使用卷积神经网络(CNN)和RNN进行说话人验证的不同架构,使用三重态损耗。

上述方法的共同缺点是它们都需要用于监督学习的标记数据。在可用的标签数据稀缺的情况下,这可能会抑制这些方法的性能,在这种情况下,如果测试环境与训练条件完全不同,这些方法可能无法很好地执行。这就需要开发可扩展的无监督方法来学习说话人嵌入。过去已经完成了一些工作[19,20]用于使用DNN聚集说话人空间,并将聚类空间部署为DNN-UBM以取代传统的GMM-UBM,但它们仅适用于说话人识别而且他们不学习短期特定于演讲者的特征。李等人。 [21]训练DNN进行无监督的说话人分类,但是他们在TIMIT数据集[22]上进行了训练,其中训练话语没有多个发言者,只进行了域内评估。

最近我们提出了Speaker2Vec [23],其中密集的DNN在无监督设置中训练以学习说话者特定的特征。 在我们最近的后续工作[24]中,我们提出了神经预测编码(NPC)的一般概念。 它假定两个时间上接近的短语音段属于单个说话者,因此可以对两个段进行编码的独特变换可以将它们投射到高维流形,在这些流形中它们彼此更接近而不是它们在 原始的MFCC特征空间。 通过培训DNN来学习这种独特的转变。 在本文中,我们通过利用RNN的时间记忆来学习来自未标记数据的说话人嵌入,从而构建了这一理念。

这项工作的贡献如下:a)它涉及无人监督的训练,因此它可以训练现实生活中的数据,其中音频流有多个说话人具有未知的说话人变化点。这使它具有高度可扩展性。 b)它学习短期说话人嵌入,这对于说话人分割等应用很有用(第4.2节)。此外,对整个话语进行嵌入的简单统计可以产生话语级别的固定维度,这对于说话人识别等应用非常有用(第4.4节)。 c)门控递归单元(GRU)[25]利用MFCC帧中的序列信息,并帮助我们比[24]中使用的CNN更快地学习说话者嵌入,即使参数更少。 d)与[23]中的密集架构相比,部署暹罗网络(第2.2节)减少了参数的数量。此外,它为将模型应用于说话者分段铺平了直接的方式,并且不需要在两个段之间拟合任何分布和附加的散度计算(第4.2节)。

2.Methodology

NPC [24]的灵感来源于线性预测编码[26]。在LPC中,信号的未来值被建模为过去值的线性函数(由滤波器系数表示)。在NPC中,未来语音帧由过去帧的非线性函数描述,并且通过在大量未标记语音上训练DNN来学习该功能。

2.1。无人监督的培训计划

出现的第一个问题是,这种本地信息编码对于学习说话人嵌入是如何有用的。在这里,我们假设短期有源发言人站[23,24]。这是基于简单的观察,即在长而自然的对话中,任何随机的连续短语音段对很可能属于同一个说话者。换句话说,说话者改变通常在现实交互中不会非常快速地发生。虽然有一些对包含来自两个不同说话者的语音,但我们假设在一个大而多样的数据集中,这个概率很低。另一方面,如果我们从两个不同的音频流(例如,来自YouTube的两个随机视频)中随机选择两个短语音段,则那些属于同一说话者的概率也非常小。通过这种方式,我们可以从未标记的数据集中创建两组样本。第一组包含“真正的对”[27](图1中的(S1,S2)):两个连续的短语音段,概率地源自单个说话者。第二组包含“冒充者对”[27](图1中的(S1,S'2)):从数据集中的两个随机音频流中随机选择的两个短语音段,概率地源自两个不同的说话者。这些样本应用于暹罗神经网络[27]进行二元分类。图1中描述了训练框架以及NPC-RNN暹罗网络的草图。在这种判别风格中训练有两个主要的好处(而不是我们以前的方法[23]编码一个片段并将其解码为获得下一个片段)。首先,模型遇到负样本(冒充者对)以及正面样本(真实对)。其次,我们没有优化精确重建,而是教导DNN,如果这两个片段来自同一个说话人。

2.2.NPC-RNN暹罗网络

暹罗网络[27,28,29]有两个相同的双网(图1中的RNN1和RNN2),其权重是共享的。它通常使用两个双网络的输出之间的辨别能量函数在真实/冒充者对分类场景中训练。在图1中,每个RNN块表示多层GRU网络。我们使用GRU代替LSTM,因为它们需要更少的参数,但通常发现在几种应用中可以达到类似的性能[30]。第一段(S1)的所有d个输入帧被提供为GRU的矢量的时间序列。最后一层的最后(暂时)隐藏状态通过完全连接的网络连接到D维“嵌入层”(以产生变换e1)。同样具有d帧的第二段(S2或S'2)与嵌入e2类似地被变换。注意,真正的一对窗口(S1,S2)被Δ帧移动以从该音频流生成其他真正的对。然后计算e1和e2之间的L1距离矢量作为元素之间的绝对差异(灵感来自[29]):

L1 = | e1 - e2 | (1)

所以,L1也是D维的。现在,L1通过完全连接的层连接到最终的单个输出。最终输出具有S形非线性,用于预测输入对是真实的(0)还是冒名顶替者(1)。如果输入的段对是(S1,S2),则模型的最终输出p(S1,S2)表示S1和S2来自不同说话人的概率。二进制交叉熵损失用于优化。

2.3。评估NPC-RNN模型

NPC-RNN模型可以以两种方式使用。

2.3.1.Speaker变换点检测

首先,我们可以使用完整模型,并比较两个输入段(每个持续时间为1)来预测它们是否来自同一个说话人的概率。这对于说话人比较[14]和说话人变化点检测(第4.2节)等应用非常有用。我们可以在音频流上移动以时间t为中心的滑动窗口对(S1(t),S2(t)),并获得概率曲线p(S1(t),S2(t))。任何时候概率越高,它与说话人变化点相对应的可能性就越大。该说话人分割方法还消除了分段算法中通常使用的高斯性假设。

2.3.2。提取NPC-RNN说话人嵌入

第二个应用程序仅使用一个连体双胞胎,直到嵌入层,从任何1个语音段中提取D维嵌入。我们可以在测试音频流上使用1s移动窗口并将其移动1帧以创建一系列嵌入。这可以用于话语级别的说话人分类(第4.4节)。例如,整个话语上的嵌入的统计函数可以用作可变长度话语的固定长度表示,或者更高层的机器学习方法可以将这些作为特征使用。

3.实验设置

3.1。功能和型号参数

我们使用40维高清MFCC功能,使用Kaldi工具箱[25],使用25ms宽度和10ms移动的滑动窗口进行计算。我们使用训练段大小,d = 1s = 100个MFCC帧,并且移位,Δ= 2s = 200帧。每个连体双胞胎(RNN1或RNN2)具有3个GRU层,每层具有200个隐藏单元。嵌入尺寸D = 512.因此,最后一层GRU的最后隐藏状态通过200 512完全连接的层附着到嵌入层。该模型在嵌入层之后具有一个批量归一化层,即在进入sigmoid输出之前。整个模型有大约732k可训练参数。我们在两个NVIDIA K40 GPU上训练模型。我们采用RMSProp优化器[32],学习率为10-4和l2

正规化因子为10-6。

3.2。培训数据集

我们在两个不同的数据集上训练我们的模型。第一个是在TED-LIUM训练数据集上训练的[33]。这最初是为语音识别目的而开发的。它有666个说话人,但我们拒绝了19个说话人,它们也出现在TED-LIUM开发(7个说话人)和测试(11个说话人)组中。之后,我们最终获得了大约100个小时的演讲数据集。考虑到真品对和冒充者对,我们从中创建了大约358,000个样本。由于每个TED-LIUM会话主要包含一个发言者,因此该数据集不能准确地验证我们的短期发言者平稳性假设。然而,我们使用此数据集来比较域内和域外培训场景(第4.1节)。我们还从YouTube收集了随机视频,以准备更实际的未标记数据集YoUSCTube,具有大约584小时的音频,从而产生2.1M的训练样本。 YoUSCTube数据集是从一些初始随机视频开始以无人监督的方式准备的,然后从自动YouTube推荐列表中随机选择多个视频,并在我们喜欢的时间内继续该过程。在这种情况下,我们这样做,直到我们收集了584小时的独特材料。对数据集的简要分析表明,它包含来自不同语言和环境的干净,嘈杂,单一和多说话人语音。对于这两个数据集,我们创建了相同数量的真实和冒充者对。

3.3。验证和测试数据集

我们在训练期间使用TED-LIUM开发设置作为验证集来进行模型选择。选择具有最佳验证精度的模型。我们利用了成绩单中提供的话语开始和结束时间,以便验证没有错误。在这里,我们应该记住,训练集是嘈杂的,因为我们假设短期说话者的平稳性。如第4节所述,TED-LIUM测试装置(没有与训练或验证装置重叠的说话人)用于测试不同应用中的NPC-RNN嵌入。

4.结果和讨论

NPC-RNN模型在说话人变化点检测和话语级说话人分类任务上进行评估。说话人变化点检测任务的性能与NPC-RNN嵌入作为帧级特征的有用性有关。基于统计的说话人分类实验验证了嵌入在整个语言中的一致性。在这两种情况下,这些都是为了显示所提出的嵌入的相对有效性,并且可以通过更高层次的可训练机器学习系统提供更好的结果。

 

4.1。域内和域外(OOD)培训

在图2中,我们比较了两个训练数据集的训练和验证准确度:YoUSCTube和TED-LIUM。从3.3节我们可以推断TED-LIUM遇到域内训练,而YoUSCTube训练是域外训练。此外,如第3.2节所述,YoUSCTube数据集对于验证短期演讲者平稳性假设更为现实。正如我们在图2中所看到的,在两个数据集中,我们达到了100%的训练准确率。对于TED-LIUM和YoUSCTube数据集的培训,我们分别获得了94.26%和96.93%的最大验证性能,即使后者采用了域外验证集。我们相信YoUSCTube的高验证准确性既支持短期平稳性假设,也支持对大量不同和未标记数据进行无监督培训的好处。在随后的部分中,我们将仅报告使用NPC-RNN-YoUSCTube模型获得的结果。

4.2。帧级:说话人变化点检测

我们将NPC-RNN-YoUSCTube模型应用于说话人变化点检测应用。我们使用TED-LIUM测试数据集中随机选择的持续时间介于1s到3s之间的音频片段创建人工对话。它总共有200个说话人更换点。基线是广泛使用的基于BIC度量的说话人变化检测算法[34]。表1显示了

4.4。话语水平:说话人分类

我们对包含11个独特说话人的TED-LIUM测试装置的语音(使用提供的手动时间戳提取)进行话语级说话人分类。为此,我们使用k = 1的kNN分类器,以便分类器的简单性使我们能够正确评估不同特征的强度。我们比较了原始MFCC特征,I-vectors和NPC-RNN-YoUSCTube嵌入的性能。 i-矢量系统是训练有素的OOD(注意NPC模型也是

训练有素的OOD)关于Fisher English数据集[37]。表2比较了不同特征与不同入学人数[2]话语的表现。对于给定数量的登记话语n,我们随机地为每个说话者提供5个话语用于测试,并且随机选择n个其他话语(作为输入话语)以训练kNN分类器。在每种情况下,都会针对所有不同的功能选择相同的注册和测试话语。整个过程重复5次(因此,11 5 5 =对6种不同的登记情景中的每一种进行275次随机测试,并报告平均准确度。我们可以看到NPC-RNN始终优于其他人。此外,当与I-vectors连接时,有时它会向I-vectors提供补充信息。

5.结论和未来方向

我们引入了一种无监督的训练方案,用于学习来自未标记数据的说话人嵌入,这些数据可能包含具有未知说话人变化点的多说话人音频流。该框架基于提出的短期发言人平稳性假设,即使使用未标记的数据集,我们也可以构建基于对比损失的二元分类方案。关于说话人变换点检测,嵌入的帧级可视化以及话语级别说话人分类任务的表现的实验结果表明了该方法的有效性和有效性。

在未来,我们将构建一个基于RNN的端到端无监督框架,以生成可变长度话语的固定维度嵌入,因此将消除对话语统计的需求。我们相信这将简化框架并提高性能。

猜你喜欢

转载自blog.csdn.net/weixin_38858860/article/details/84035945
今日推荐