雷锋网按:此前雷锋网曾经报道过百度在语音技术上的进展。日前,百度美研院宣布了其在声纹识别上所取得的突破性成果。研究表明:利用深度学习的方法比传统的i-vector方法在识别准确率上获得了显著的提高。
声纹识别算法寻求从音频中识别说话者的身份。两个常见的识别任务是确认(说话者是不是他宣称的那个人)和说话者身份识别(在一群未知的说话者中确认声音的来源)。
该项技术已经有了各种应用。例如,声纹可以用来登录设备。说话者确认也可以作为金融交易的额外安全措施。此外,类似于智能家居助手之类的共享设备也可以利用这项技术来提供个性化的服务。
最近使用神经网络来进行声纹识别的论文已经改进了传统的i-vector方法(参考Interspeech教程的原始论文或者幻灯片)。i-vector方法认为说话内容可以被分为两个部分,一个部分依赖于说话者和信道可变性,另一个部分依赖于其它的相关因素。i-vector声纹识别是一个多步过程,其涉及到使用不同说话者的数据来估计一个通用的背景模型(通常是高斯混合模型),收集充分的统计数据,提取i-vector,最后使用一个分类器来进行识别任务。
一些论文用神经网络代替了i-vector流水线的方法。其它研究者要么训练了一个文本相关(使用者必须说同样的话)的端对端语者识别系统,要么训练了文本独立(这个模型与说话内容不相关)的端对端语者识别系统。我们介绍Deep Speaker:一个端对端的神经声纹识别系统,它在文本相关和文本独立的场景下都取得了良好的效果。这意味这个系统可以被训练来识别谁在说话,无论是当你对你的家庭助手说“wake”或者你在会议中发言。
Deep Speaker由深度神经网络层组成,从音频中提取特征,基于余弦相似性的时间池和三元组损失(triplet loss)。百度美研院探究了ResNet激活的卷积模型和现有模型在提取声学特征上的效果。
说明:在这里百度美研院使用了人脸识别中采用的三元组损失。在训练过程中,他们选择了一个说话者的话语,然后计算一个嵌入(标记为“Anchor”)。再产生两个嵌入,一个来自相同的演讲者(标记为“Positive”),一个来自于不同的演讲者(标记为“Negative”)。在训练过程中,其目标是让Anchor与positive嵌入之间的余弦相似度高于Anchor与negative嵌入之间的余弦相似度。
百度美研院展示了Deep Speaker在三个不同数据集上的有效性,包括文本相关和文本独立的任务。其中之一的UIDs数据集包括大约250000名说话者,是知识文献中最大的数据集。实验结果表明:Deep Speaker要明显优于基于DNN 的i-vector方法。例如,在一个文本独立的数据集中随机挑选出100个演讲者,Deep Speaker在说话者身份确认任务上的错误率是1.83%,正确率是92.58%。相比于基于DNN 的i-vector方法,它降低了50%的错误率,提高了60%的正确率。
说明:在实验中百度美研院所使用的数据集是 UIDs,XiaoDu,和Mandarin。UIDs和XiaoDu是普通话数据集,Mturk是英语数据集。UIDs和Mturk是文本独立的数据集,XiaoDu是文本相关的数据集,其基于百度的唤醒字(wake word)。为了在不同大小的训练集上做实验,他们用了全部的UIDs数据集(250,000)和它的一个子集(50,000)。在评估阶段,他们选择了一个Anchor,然后再从测试部分随机地选择1个Anchor positive样本和99个Anchor negatives样本。
团队还发现Deep Speaker学习到了与语言无关的特征。当在普通话语境下训练时,Deep Speaker却能在英文确认和识别的任务上达到5.57%的错误率和88%的正确率。此外,先用普通话再用英文训练可相比于只用英文训练,提高了英文识别的准确率。这些结果都显示出尽管不同的语言听起来非常不同,深度语者却学习到了跨语言的声音特征。这些结果与Deep Speech 2的结果类似,同样的架构都可以用来辨认不同语言的声纹识别。
关于Deep Speaker模型的更多细节,训练技巧和实验结果都可以在论文中找到。
论文地址:https://arxiv.org/abs/1705.02304
via research.baidu,雷锋网翻译