端到端的文本相关说话人确认
端到端的文本相关说话人确认
论文:Heigold G, Moreno I, Bengio S, et al. End-to-end text-dependent speaker verification[A]. ICASSP, IEEE International Conference on Acoustics, Speech and Signal Processing - Proceedings[C]. 2016, 2016-May: 5115–5119.
大数据训练是这篇论文的重点,端到端的模式产生了更加显著的性能。
摘要
在大数据的文本相关说话人确认中,G. Heigold 提出了一种端到端的系统,该系统将一段测试语音和一组注册语音进行匹配,直接投影为确认的得分。该方法由单个神经网络结构组成,采用联合优化的方式训练系统各个组成部分,包括确认评估的过程。在 “OK Google” 的测试场景中,提出的端到端方法优于 i-vector 系统和 d-vector,并实现了 EER 从 3% 到 2% 的提升。结果还表明:1)在说话人确认任务中,段层次的特征优于帧层次的特征;2)RNN 结构能够进一步达到 1.5% EER,但会产生 10 倍以上的计算量;3)softmax 损失可以进一步采用得分归一化、候选人采样和 dropout 层提供性能,但得分归一化对端到端模型没有提升效果。
引言
文本相关的说话人确认系统是一种通行短语受限的系统,常用的短语形式是密码、关键词、数字序列,这类短语的时长较短,例如 “OK Google” 短语大约 0.6 秒。这类系统常用于关键词发现系统和语音搜索系统。
G. Heigold 提出的系统是端到端的系统,即之间从语音建模,获得最终的评分,评分的过程会被整合到优化过程中。相对于级联的说话人确认系统,例如 i-vector 与 PLDA 的系统、d-vector 与 PLDA 的系统,减少了对特定知识的需求和模型的假设。
说话人确认的协议可以分为三部分:训练、注册与评估。
-
训练:训练用于获得语音的说话人表示,进而用于得分计算。与说话人表示学习相关的因素有三种,分别是
- 模型类型,例如高斯子空间、DNN
- 表示层次,例如帧层次、段层次
- 模型训练损失,例如最大似然、softmax
- 注册:在注册阶段,一个说话人提供多个语音,这些语音用于估计说话人模型。常见的方法是将同一个人的多个语音的说话人向量(例如 i-vector, d-vector)取均值。
- 评估:在评估阶段,计算测试语音与注册说话人模型之间的评分,其中注册说话人模型来自注册阶段。常见的方法有 Cosine 函数或者 PLDA。
方法
-
基准 1:i-vector,具体地,13 PLPs + Delta + Delta Delta,1024 高斯成分,300-d i-vector
-
基准 2:i-vector + PLDA,具体地,150-d i-vector,PLDA 在 2M_train 数据集上训练(4k 人,50 段语音/人)
-
基准 3:帧层次 + DNN + softmax,训练方法与 d-vector 系统。
-
基准 4:d-vector
-
模型:输入 DNN Cosine
-
输入:“OK Google”,约 0.6 秒,40 log-filterbanks,80 帧(snippet 最后的 80 帧,不满足则剪切或者补全开始未知),10 ms 帧间距。
-
DNN:504(ReLU) 504(ReLU) 504(ReLU) 504(线性)
- 嵌入:一段语音的所有帧输入 DNN,网络最后隐藏层的**向量(线性层)输出,然后对所有帧进行取均值。
-
Cosine:余弦函数 t-norm 得分归一化,
-
训练方法:批量大小 32,损失函数 softmax
-
不足:d-vector 的 softmax 损失无法拓展到更多的数据,其原因如下:
-
随着训练集说话人的数量增加,计算复杂度线性增加;
-
每一个说话人需要一个最小数量以上的数据,用来估计针对说话人的权重和偏差。
-
-
-
端到端模型:
-
模型:输入 端到端
-
输入:与基准 3 相同,形式为:测试语音 1 段,注册语音 N 段
-
端到端:神经网络 + Cosine + 逻辑回归,神经网络采用 d-vector 的神经网络结构或者 LSTM。
- 损失函数:端到端损失 ,,
- 确认的得分阈值:
-
训练方法:训练集训练整个网络,随后,注册集训练带偏差的一维逻辑回归;其它方式与 d-vector 相同。
-
-
其它神经网络结构 LSTM:作为 DNN 的替换结构,单层隐藏层,504 阶段,无映射层,patch 大小 ;输入与 DNN 相同,按帧沿时间顺序。
- 嵌入:LSTM 最后的输出与损失函数连接,形成段层级说话人表示。
数据
数据的基本情况如表 1 所示。
数据/统计 | 语音数量(增益后的数量) | 说话人数量 | 人均语音数 |
---|---|---|---|
train_2M | 2M(9M) | 4k | >500 |
train_22M | 22M(73M) | 80k | >150 |
注册数据 | 18k | 3k | 1-9 |
评估数据 | 20k | 3k | 3-5 |
数据集是来自匿名的语音搜索日志,“OK Google”,约 0.6 秒。训练数据 train_2M 与 train_22M 采用人工加噪声的方式进行增益,采用的噪声类型是车辆噪声、咖啡厅噪声,采用多种 SNRs,模拟说话人与麦克风的不同距离。模型与训练数据的关系见表 2 所示,DNN 与 LSTM 表示 d-vector 或者端到端的结构。
训练数据/模型 | i-vector | PLDA | DNN | LSTM |
---|---|---|---|---|
train_2M | YES | 子集(4k 说话人,50段语音/人) | YES | YES |
train_22M | NO | NO | YES | YES |
系统性能
实验评估从三个方面测试端到端的性能以及和其它基准方法的差别:帧层次表示 vs. 段层次表示、softmax vs. 端到端损失、前馈 vs. 循环神经网络以及最优注册语音数。
帧层次表示 vs. 段层次表示
表 3 描述了帧层次特征与段层次特征之间的区别,其中 DNN 的线性层使用了 50% dropout 层。结果表明 d-vector 优于 帧层次表示。
表示层次 | 系统 | 原始 EER (%) | t-norm 之后 EER (%) |
---|---|---|---|
帧层次 | i-vector | 5.77 | 5.11 |
i-vector + PLDA | 4.66 | 4.89 | |
DNN, softmax | 3.86 | 3.32 | |
段层次 | d-vector | 2.90 | 2.28 |
softmax vs. 端到端损失
表 4 描述了不同损失的模型性能。结果表明:1)t-norm 能够提升 softmax 损失 20 %;2)端到端方法通过不同噪声增益学习了归一化的得分,使得额外的得分归一化显得多余了;3)DNN softmax 初始化再进行端到端训练,能够实现 2.86% -> 2.25% 的提升。
loss/训练数据 | EER (%), 原始/t-norm 之后 | |
---|---|---|
train_2M | train_22M | |
softmax | 2.90 / 2.28 | 2.69 / 2.08 * |
end-to-end | 2.86 / 2.85 | 2.04 / 2.14 |
前馈 vs. 循环神经网络以及最优注册语音数
表 4 描述了不同端到端模型的性能。不同模型意味着不同模型规模和计算时间,LSTM 乘法与加分次数更多,超过 DNN 10 倍,但实现了最优的性能。
表 5 描述了不同注册语音数量与 DNN 性能的关系。结果表明 5 段注册语音相对最优,1 段注册语音也有 2.25% EER。
模型 | 帧层次 DNN 基准(基准 3) | 小型 DNN | 最好 DNN (5 隐藏层) | LSTM |
---|---|---|---|---|
EER(%) | 3.32 * | 2.04 | 1.87 | 1.36 |
注册语音数量 | 1 | 2 | 5(默认) | 10 | 16 |
---|---|---|---|---|---|
EER(%) | 2.25 | 2.13 | 2.04 | 2.15 | 2.39 |
参考文献
- Chen Y, Lopez-Moreno I, Sainath T N, et al. Locally-Connected and Convolutional Neural Networks for Small Footprint Speaker Recognition. 16th Annual Conference of the International Speech Communication Association. 2015: 1136–1140.
作者信息:
****:https://blog.****.net/i_love_home?viewmode=contents
Github:https://github.com/mechanicalsea
2019级同济大学博士研究生 王瑞 [email protected]
研究方向:说话人识别、说话人分离