深度学习语音领域问题?

_她夏了夏天丶

这是一个很多技术专家被问到过的问题:深度学习在语音方面(特别是语音识别)的研究,相比于图像和文本,是否还值得投入精力去学习?技术是否已经达到了暂时的瓶颈?

其实,你这个问题中「语音」的范围比较模糊,这里暂圈定为「语音识别」。我们用机器之心不久前对腾讯AI Lab西雅图实验室负责人俞栋老师的专访来回答你的疑问:


语音领域:Where are we standing?

机器之心:语音领域整体的研究处于一个什么状态?

俞栋:去年底在 NIPS 会议上南大的周志华教授还和我开玩笑说,「语音识别已经解决了,你不要做了。」相信很多人有类似的感觉。虽然很多公司已经宣称可以在标准数据集或安静的近场环境下达到「97% 识别率」、「超过人」等等水平,但是实际上市面上的产品,在很多真实应用场景下,尤其是远场、中文夹杂英文、旁边有人说话等等情况下,效果还远远达不到期望值。还有很多待研究的问题。

机器之心:从标准数据集到真实场景,待解决的问题都有哪些?

俞栋:有很多。比如,现在的系统鲁棒性都不太高,而且都还依赖增加数据(包括合成的模拟数据)来提高鲁棒性。这一点对于基于深度学习的系统来说尤为明显:数据没覆盖的情况就做不好,是这类方法的一个局限性。

这个世界的可能性是无限的,即使采集了几十万小时的数据,也不能覆盖所有的情况,还是会有很多新的、没见过的场景。而标准数据集的一个特点是,训练集和测试集之间是强相关的,换言之,它们之间的不匹配度(mismatch)不大。

很多机器学习方法都要遵循一个基本假设:训练集和测试集符合同一分布。不满足这一要求的话,学出来的模型的效果是没有理论保证的。而真实场景,恰恰是不保证训练集与测试集满足同分布假设的情况。

在语音识别研究的历史上,很早就有人意识到了这一问题,并开发出了很多自适应算法,试图根据场景和环境的变化做自适应。目前来说,自适应算法起到了一定的作用,但是还不能完全解决鲁棒性问题。

机器之心:理论上来讲,推理的数据与训练数据不满足同分布假设的话,机器学习模型会整体失效。那么自适应算法最终能够解决鲁棒性问题吗?

俞栋:真实场景和训练集之间所谓的「不满足同分布假设」大概率来讲不是「完全不满足」,而是「近似」或者「满足一些」。因此机器学习模型的识别率虽然会下降,模型仍然可用。只不过需要采用一些方法来弥补大致满足与完全满足同分布情况下的差距。

自适应算法只是其中一种方法,它有多个变种。比如可以用另外一个模型来判定分布变化与否,甚至判定如何变化,从而将变化后的特征或分布「恢复」成和训练时所见基本一样的情况再进行识别。举个例子,如果一个模型用我的声音做训练,然后去识别你的声音,效果就会很差。但是如果有一个模型,专门刻画人声的特点,并且在训练的时候,就把「说话人身份」(Speaker ID)作为一个重要的变量放进去,那么今后在识别其他人的时候,只要把说话人身份替换掉,就能获得识别率的上升了。问题在于,这种对于变化的估算也会引入误差,相对的性能还是会有损失。

四个前沿问题的进展

机器之心:端到端模型之前,语音识别模型的发展历程是什么样的?

俞栋:以前的语音识别系统基于高斯混合模型(Gaussian Mixture Model, GMM)和隐马尔可夫模型(Hidden Markov Model),合在一起,叫 GMM-HMM 模型。

在 90 年代初期,伯克利大学的研究人员就开始用多层感知机加上隐马尔可夫模型进行语音识别,由于模型由一个传统的生成模型 HMM 和一个比较时髦的判别式模型神经网络组成,他们称其为混合模型(Hybrid Model)。2010 年,我们用深层神经网络替换掉了浅层神经网络,用上下文相关音素(Phoneme)替换单音素作为建模单元,仍然沿用混合模型的基本架构但增加了建模单元的数量,取得了识别效果上的突破。

最近的端到端模型则完全不再需要隐马尔可夫模型,从头到尾都是一整个神经网络。有时候需要结合外部语言模型,如果数据比较多,连外部语言模型都不需要了。

机器之心:端到端识别模型有哪些进展呢?

俞栋:在即将召开的 ICASSP 上,谷歌会发表一些相关文章,部分预印版已经放在 arXiv 上了,文章里提到当使用大量训练数据时可以在语音搜索任务的某一个测试集上做到和混合模型一样的效果。但是在真实场景下当出现没见过的尾端(tail)搜索词的情况下,效果还有差距,这表明这些模型记忆能力很强但是举一反三的能力还比较欠缺。

但无论如何,这仍然是十分可观的进展了,因为之前的端到端系统和混合模型之间的差距还很大,现在这个差距在缩小,甚至在某一场景下端到端模型可以做到超越,这都是比较大的进展。

腾讯 AI Lab 最近几个月也做了一些类似的工作,在数据量比较少,也就是端到端系统的优势更不能得到体现的情况下,用一些新的算法和技巧大幅提高了性能。

应该看到,在端到端系统上面,大家的投入是比较多的,也确实有一些比较有意思的进展。但是端到端系统是否能替代混合模型,仍然是未知数。

只有当新模型比旧模型好很多的时候,替换才会发生。当然,这里的好是多方面的,不单单是识别率好,也可能是在其他指标不变的情况下你的运算量小了,或者是解码速度提升了。

机器之心:端到端模型在产品中有实际应用吗?

俞栋:目前的端到端系统基本上基于两个框架,一个是 CTC(Connectionist Temporal Classification)框架,一个是基于注意力机制的 seq2seq 框架。

刚才提到的谷歌的论文用的是基于注意力的框架,投入使用相对较少。CTC 模型用得相对较多。腾讯的产品上既有 CTC 模型,也有混合模型,性能没有太大区别。

CTC 的好处是可以采用更大的建模单元,坏处是存在一个随机延迟的问题,即结果出来的时间不是预先可知的。随机延迟的后果是断句困难,这会给用户造成一种「你怎么比别人慢」的感觉。

因此,做交互的系统,比如语音助手类,大部分仍然在使用混合系统。而对实时性没有要求的产品,比如 YouTube 的字幕生成器,因为可以离线,所以有延时也没有关系。

机器之心:鸡尾酒会问题的现状如何?

俞栋:大家都很重视鸡尾酒会问题,因为这是远场里必须解决的重要问题,因此也有蛮多进展。

一个当然就是我们之前提出的置换不变性训练(Permutation Invariant Training)的方法,我们在很多场景下都做了不同的尝试,也有其他的学校以及公司,在我们的工作上做了一些拓展。

此外还有其他重要的方法被提出来,比如 MERL 的深度聚类(deep clustering)方法和哥伦比亚大学的深度吸引子网络(deep attractor network)。另外 NTT 还提出了一种跟我们不同的设定,我们的设定是两人同时说话时,要将两人分开,同时识别两个人的语音。他们的设定是在两个人同时说话时,只跟踪其中一个人的声音。在这个设定下我们也有一些有趣的进展。

不过这些都还属于研究性工作,还没有放在产品中。

机器之心:持续预测与适应的模型情况如何?

俞栋:这类模型的研究已经在我们的实验室列项了,应该是一个很有「做头」的问题,但是目前还没有很多进展。值得一提的可能是预测双向 RNN 的反向状态使单向 RNN 的性能提升的工作。

机器之心:声学前后端从独立优化到联合优化的进展如何?

俞栋:相比于独立优化,现在业界的情况是前后端联合优化已经占了大多数。

前后端联合优化把前端和后端紧紧绑在了一起,好处是如果前后端系统都是自己开发的,那么效果会很好,坏处是一旦换一个前端/后端之后,会出现整体效果变差的情况。

因此,我们要针对场景进行不同的设计。在某些场景下,我们还是要分割开做优化。例如在声学前端,降低噪声和减小变形(distortion)就是一对要同时考虑的矛盾的目标,需要针对场景做特殊优化。