Deep Speaker: an End-to-End Neural Speaker Embedding System

Deep Speaker: 端到端说话人识别系统

摘要

​ 我们提出了Deep Speaker,它是一种基于深度神经网络的说话人识别系统,该系统将语音映射到超球面上,利用余弦相似度来确定说话人的相似度。由Deep Speaker生成的嵌入可用于许多任务,包括Speaker标识、验证和聚类。我们使用ResCNN和GRU架构进行实验,提取声学特征,然后使用均值池来生成对话层面的说话人嵌入,并使用基于余弦相似度的三重损失函数进行训练。在三个不同数据集上的实验表明,Deep Speaker的性能优于基于DNN的i-vector方法。例如,在文本无关的数据集上,Deep Speaker将验证等错误率降低了50%(相对),并将识别精度提高了60%(相对)。我们也提出了一些建议,即从一个受过普通话训练的模型中进行调整,可以提高识别说英语者的准确性。

1 介绍

​ 说话人识别算法试图从音频中确定说话人的身份。两个常见的识别任务是说话者验证(确定说话者所声称的身份是真还是假)和说话者识别(在一组说话者中对未知声音的身份进行分类)。验证和识别算法可能要求说话者说出一个特定的短语(依赖于文本的识别),或者不知道音频的内容(依赖于文本的识别)。在所有这些子任务中,可以使用嵌入方法将语句映射到一个特征空间,其中距离对应于说话人的相似度。虽然在过去的几年里,许多算法已经很先进了[1] [2] [3] [4] [5] [6] [7],但说话人识别仍然是一个具有挑战性的任务。

​ 传统的说话人识别方法需要使用i-vector[3]和概率线性判别分析(PLDA)[5]。这个框架可以分解为[4]的三个阶段:

步骤1 充分收集统计数据

步骤2 提取说话人的特征(i-vector)

步骤3 分类(PLDA)

充分的统计数据(也称为Baum-Welch统计数据)是从一个高斯混合模型-通用背景模型(GMM-UBM)计算出来的,该模型使用一组特征向量(如梅尔频率倒谱系数(MFCC)[3])进行优化。最近,深度神经网络(DNN)声学模型也被用来提取足够的统数据计[4]。高维的统计数据被转换成一个低维的i-vector,它对说话人身份和其他语句级别进行可变性的编码。然后使用PLDA模型通过比较不同语句[5]的i-vector来产生验证分数。

​ i-vector系统的三个步骤传统上是针对子任务独立训练的,而不是联合优化的。另一种基于DNN的方法使用分类层[8],结合了步骤1和步骤2。DNN的中间瓶颈层提供了帧级嵌入,可用于未包含在训练集中的说话人。在预测期间,需要额外的步骤来聚合帧级表示并执行验证。这种方法至少存在两个主要问题:(1)步骤1和步骤2在说话人识别方面没有直接优化;(2)训练与测试不匹配。训练标签在帧级给出,语句级预测在测试中给出。

​ [6]和[7]引入了端到端的神经说话人验证系统,将这三个步骤结合起来。[6]使用长短时记忆(LSTM)[9]模型的最后一帧输出作为语句级说话人嵌入,而[7]使用网络中的网络(NIN)[10]的非线性性,然后是语句级池化层来聚合帧级表示。[6]和[7]都使用相同的距离度量进行训练。

​ 在本文中,我们扩展了[6]和[7]中提出的端到端说话人嵌入系统。 首先,深度神经网络用于从语句中提取帧级特征。 然后,池化层和长度归一化层会生成语句级别的说话人嵌入。该模型使用三重损失函数[11]进行训练,使嵌入对与同一说话人的距离最小化,使嵌入对与不同说话人的距离最大化。 在固定的说话人列表上使用softmax层和交叉熵进行预训练可改善模型性能。

​ 更具体地,我们测试了基于卷积神经网络(CNN)和基于递归神经网络(RNN)的帧级特征提取的架构,并给出了说话人验证和识别的结果。CNNs是一种有效的减少谱变化和模拟声学特征中谱相关性的方法。CNNs最近也被应用于语音识别,取得了良好的效果。由于深度网络比浅层网络[15]更能代表长语句,因此我们根据残差网络(residual networks, ResNets)[16]提出了深度残差CNN (deep residual CNN)。我们还研究了叠加门控循环单元(GRU)[17]层代替帧级特征提取,因为它们已被证明在语音处理方面是有效的[18] [19]。

​ 和[7]一样,我们使用基于距离的损失函数来区分相同说话人和不同说话人的对话。然而,与[7]中的"类PLDA"的损失函数不同,我们训练我们的网络,使嵌入空间中的余弦相似度直接对应于语句相似度。我们还通过全局检查候选语句在每次迭代中选择困难负样本,而不仅仅是在相同的小规模数据集中训练。这种方法提供了更快的训练收敛。

​ 最后,我们在三个不同的数据集上对我们提出的深层说话人系统进行评估,该系统适用于中英文文本无关和文本相关的说话人识别任务。我们还研究了softmax预训练、系统组合、训练数据集大小和注册的语句数量的影响。实验结果表明,与基于DNN的i-vector文本无关的说话人识别系统相比,Deep Speaker识别系统有明显的改进。在文本依赖任务中,Deep Speaker可以匹配DNN i-vector的基准系统,并在文本无关训练的基础上进行改进。特别地,两个有趣的结果显示:(1)Deep Speaker很好地利用了大数据(在多达25万名讲话者的训练下,性能提升);(2)Deep Speaker可以很好地在普通话和英语之间的多种口头语言之间进行交流。

2 相关成果

​ 传统上,i-vector用来在说话人之间的差异上建模[3]。基于i-vector的说话人识别模型使用i-vector或更高级的技术(如PLDA[20]、重尾PLDA[21]和Gauss-PLDA[5])之间的余弦相似性进行分类。

​ 已经有几篇论文用DNNs取代了传统的说话人识别系统。一种方法是训练GMM从DNN中提取瓶颈特征,然后提取i-vector[22]。另一种基于DNN的方法是使用声学语音识别DNN来代替UBM-GMM生成i-vector计算[4]的帧后验。Ehsan Variani等人使用[8]训练的DNNs对具有帧级声学特征的说话人进行分类。最后一个隐藏层的激活在语句上被平均,以创建一个"d-vector"来代替i-vector。这些方法都比传统的i-vector有所改进。

​ 最近也有端到端神经说话人识别的努力。Georg Heigold等人[6]训练了一个LSTM用于文本相关的说话人验证,在"Ok Google"基准上获得了2%的等错误率(EER)。该模型将一个测试语句和几个参考语句直接映射到单个评分进行验证,并使用与测试时相同的评估协议共同优化系统组件。David Snyder等人还训练了一个端到端的文本无关的说话人验证系统。像[6]一样,目标函数将相同的说话者和不同的说话者分开,在验证过程中进行相同的评分。与i-vector基准相比,该模型平均减少了13%的等错误率。

​ 我们的论文使用了不同于[6]和[7]的架构,平衡了推断时间和模型深度,并借鉴了最先进的语音识别系统。我们展示了我们的模型在文本相关和文本无关的识别任务中的有效性。最后,我们提供了关于数据集大小、softmax预处理、模型融合和从一种语言到另一种语言的适应的影响的新见解。

3 Deep Speaker

图1展示了Deep Speaker的架构。原始音频首先使用4.3节中详细介绍的步骤进行预处理。然后利用前馈神经网络对预处理后的图像进行特征提取。我们尝试了两种不同的核心架构:ResNet风格的[16]Deep CNN和Deep Speech 2(DS2)风格的架构,该架构由卷积层和GRU层组成。这些网络的细节将在3.1节中描述。句子平均层将帧级的输入转换为语句级的说话人表示。然后,仿射层和长度归一化层将临时合并的特征映射到说话人嵌入,如3.2节所示。最后,三重损失层作用于嵌入对,通过最大化来自同一说话人的嵌入对的余弦相似性,并最小化来自不同说话人的余弦相似性,如3.3节所述。

图1:Deep Speaker的架构图

图1:Deep Speaker的架构图

此处内容需要评论回复后(审核通过)方可阅读。


  1. 例如,i-vector模型中的总方差矩阵t在大数据集上很难计算。实际上,人们通常使用大型数据集的子集来训练i-vector。实际上,我们尝试在更大的数据集上训练i-vector系统,但没有得到明显的改进。
本文作者:Author:     文章标题:Deep Speaker: an End-to-End Neural Speaker Embedding System
本文地址:https://alphalrx.cn/index.php/archives/65/     
版权说明:若无注明,本文皆为“LRX's Blog”原创,转载请保留文章出处。
Last modification:November 10th, 2019 at 07:44 pm
给作者赏一杯奶茶吧!

Leave a Comment