深度声纹:一个端到端的神经声纹嵌入系统
简介:本文提出了Deep Speaker,这是一个使用神经网络的神经说话人嵌入系统。系统将话语排列在一个超球面上,在这个超球面上,通过余弦相似度计算说话人的相似度。
应用场景:说话人识别、确认和聚类。
方法:利用雷斯克恩和GRU结构提取声学特征,利用均值池生成声学级的说话人嵌入,利用基于余弦相似度的三重损失进行训练。
结果:在三个不同数据集上的实验结果表明,Deep Speaker的性能优于基于DNN的i-vector基线。例如,在与文本无关的数据集上,认证错误率相对降低50%,识别准确率提高60%。此外,实验还表明,用普通话训练的模型可以提高英语说话人的识别准确率。
1,简介
基础知识点1:说话人识别
算法用于从音频数据中识别说话人。主要有两种:一种是说话人验证,一种是说话人身份验证(两分类任务,是不是说话人);二、说话人识别,说话人识别(多分类任务,谁在说话)。
基础知识点二:演讲者
识别根据输入数据分为两类:一是文本依赖识别,要求说话人念出特定的句子;第二,文本无关识别,随便说说,不需要具体内容。
行业行情1:说话人识别至今仍是一项具有挑战性的任务。
基础知识点三:传统音箱
识别基于I向量和概率线性鉴别分析(PLDA)。框架主要分为三步:1,收集足够的统计数据);数据;2.提取说话人嵌入(I向量);3.分类(PLDA)。
基础知识点4:官方统计(又称鲍姆-韦尔奇统计)可以用高斯混合模型-通用背景模型(GMM-UBM)计算。通过使用序列类型特征向量(例如梅尔频率倒谱系数、MFCC)来优化该模型。最近,深度神经网络(DNN)也被用于提取表面统计数据。
基础知识点五:传统方法的上述三个步骤是相互独立的。基于DNN的方法可以将第一步和第二步结合起来进行训练,中间瓶颈层提供的帧级向量可以用于训练集中不包括的说话人。但是这种方法至少有两个主要问题:(1)步骤1和步骤2没有直接针对说话人识别进行优化;(2)培训与测试不匹配。训练使用帧级标签,而测试使用表达式级标签。
本文算法结构概述1: (1)利用DNN(ResCNN和GRU)从语音模式中提取帧级特征。(2)池化和长度标准化层生成具有表达级别的说话人嵌入。(3)模型采用三重丢失训练,即同一说话人的向量对之间的距离最小化,不同说话人的向量对之间的距离最大化。(4)使用softmax层和交叉熵来提高模型的性能。
基础知识点6: CNN可以有效减少声音特征的谱变异,对声音特征的谱相关性进行建模。
本文算法的结构细节是1:与类似PLDA的损失函数不同,本文中的损失函数是DNN在本文中训练的嵌入向量的相似度,可以直接反映相似度。
本文算法结构细节2:采用全局负采样代替同一个小批量训练数据的负采样,提高训练速度。
本文的结论是1:深度说话人明显优于基于DNN的i-vector。
文本无关的说话人识别系统,在文本相关的识别中,深度说话人可以达到基线,如果采用文本无关的调试模型,文本相关的识别可以得到改善。
结论二:(1) Deep Speaker在大规模数据上表现良好;(2)不同语言之间的迁移表现良好。
2.相关著作
基础知识点7: PLDA可用于计算向量相似度,其变体方法有重尾PLDA和高斯-PLDA。
3、深度扬声器
整体结构:
3.1?DNN结构
3.1.1残余CNN
批量归一化:我们在卷积和非线性之间采用顺序批量归一化(bn),遵循[18]。
激活限幅整流线性(relu)功能:
3.1.2 GRU
GRU采用唯前锋GRU;;
BN和clipped ReLu也用于层间。
3.2扬声器嵌入
3.3三重损失和选择
相似度计算公式:
损失函数公式:
其中,
重要提示:在全球范围内寻找阴性样本,而不仅仅是这一批。
三联体丢失可以参考/jcjx 0315/article/details/77160273。
3.4 Softmax预训练
预训练(用预训练得到的权重初始化正式训练的权重):用分类层代替长度(soft max+交叉熵)?标准化和三重态损失层。
预培训的好处:
注:有预训练的线路,前10次是softmax预训练,后15次是triple正式训练,导致ACC和EER突变。