谷歌利用序列转导来实现多人语音识别和说话人分类
扫描二维码
随时随地手机看文章
传统的说话人分类系统依赖于人声的声学差异识别出对话中不同的说话人。根据男人和女人的音高,仅仅使用简单的声学模型(例如,混合高斯模型),就可以在一步中相对容易地将他们区分开来。然而,想要区分处音高可能相近的说话者,说话者分类系统就需要使用多步方法了。首先,基于检测到的人声特征,使用一个变化检测算法将对话切分成均匀的片段,我们希望每段仅仅包含一个说话人。接着,使用一个深度学习模型将上述说话人的声音片段映射到一个嵌入向量上。最后,在聚类阶段,会对上述嵌入聚类在不同的簇中,追踪对话中的同一个说话人。
在真实场景下,说话人分类系统与声学语音识别(ASR)系统会并行化运行,这两个系统的输出将会被结合,从而为识别出的单词分配标签。传统的说话人分类系统在声学域中进行推断,然后将说话人标签覆盖在由独立的 ASR 系统生成的单词上。
这种方法存在很多不足,阻碍了该领域的发展:
(1)我们需要将对话切分成仅仅包含以为说话人的语音的片段。否则,根据这些片段生成的嵌入就不能准确地表征说话人的声学特征。然而,实际上,这里用到的变化检测算法并不是十全十美的,会导致分割出的片段可能包含多位说话人的语音。
(2)聚类阶段要求说话人的数量已知,并且这一阶段对于输入的准确性十分敏感。
(3)系统需要在用于估计人声特征的片段大小和期望的模型准确率之间做出艰难的权衡。片段越长,人声特征的质量就越高,因为此时模型拥有更多关于说话人的信息。这然而,这就带来了将较短的插入语分配给错误的说话人的风险。这将产生非常严重的后果,例如,在处理临床医学或金融领域的对话的环境下,我们需要准确地追踪肯定和否定的陈述。
(4)传统的说话人分类系统并没有一套方便的机制,从而利用在许多自然对话中非藏明显的语言学线索。例如,「你多久服一次药?」在临床对话中最有可能是医护人员说的,而不会是病人说的。类似地,「我们应该什么时候上交作业?」则最有可能是学生说的,而不是老师说的。语言学的线索也标志着说话人有很高的概率发生了改变(例如,在一个问句之后)。
然而,传统的说话人分类系统也有一些性能较好的例子,在谷歌此前发布的一篇博文中就介绍了其中之一(博文地址:https://ai.googleblog.com/2018/11/accurate-online-speaker-diarization.html)。在此工作中,循环神经网络(RNN)的隐藏状态会追踪说话人,克服了聚类阶段的缺点。而本文提出的模型则采用了不容的方法,引入了语言学线索。
我们研发出了一种简单的新型模型,该模型不仅完美地融合了声学和语音线索,而且将说话人分类和语音识别任务融合在了同一个系统中。相较于相同环境下仅仅进行语音识别的系统相比,这个集成模型并没有显著降低语音识别性能。
我们意识到,很关键的一点是:RNN-T 架构非常适用于集成声学和语言学线索。RNN-T 模型由三个不同的网络组成:(1)转录网络(或称编码器),将声帧映射到一个潜在表征上。(2)预测网络,在给定先前的目标标签的情况下,预测下一个目标标签。(3)级联网络,融合上述两个网络的输出,并在该时间步生成这组输出标签的概率分布。
传统系统和 RNN-T 系统错误率的对比,由人类标注者进行分类。此外,该集成模型还可以预测其它一些标签,这些标签对于生成对读者更加友好的 ASR 译文是必需的。例如,我们已经可以使用匹配好的训练数据,通过标点符号和大小写标志,提升译文质量。相较于我们之前的模型(单独训练,并作为一个 ASR 的后处理步骤),我们的输出在标点符号和大小写上的误差更小。