多通道信号处理,比如麦克风阵列,对分离含噪语音和多人混合语音也至关重要。另外,深度学习方法比如我刚才提到的 Permutation Invariant 训练方法也可以解决一部分语音分离问题,是整体解决方案中的重要一环。分离后的结果可以送到后端做识别。后端的识别结果反馈回来也能帮助提升分离和说话人跟踪的效果。所以最终的系统应该是前端的分离跟后端的识别融合互助的系统。 机器之心:从您和邓力老师的那本书《Automatic Speech Recognition: A Deep Learning Approach》出版到现在,您认为期间深度学习有了什么新的研究成果? 哪些研究成果您认为是很重大的? 俞栋:我们写这本书的时候,LSTM 这样的模型才刚刚开始成功应用于语音识别。当时大家对其中的很多 技巧 还没有很好的了解。所以训练出来的模型效果还不是那么好。最近,我的同事 Jasha Droppo 博士花了很多时间在 LSTM 模型上面,提出了一种很有意思的基于 smoothing 的 regularization 方法使得 LSTM 模型的性能有了很大的提升。他的 smoothing 方法的基本思想在我们的 human parity 文章中有介绍。 另外一个比较大的进展是 Deep CNN。最近两年里,很多研究组都发现或证实使用小 Kernel 的 Deep CNN 比我们之前在书里面提到的使用大 kernel 的 CNN 方法效果更好。Deep CNN 跟 LSTM 比有一个好处。用 LSTM 的话,一般你需要用双向的 LSTM 效果才比较好。但是双向 LSTM 会引入很长的时延,因为必须要在整个句子说完之后,识别才能开始。而 Deep CNN 的时延相对短很多,所以在实时系统里面我们会更倾向于用 Deep CNN 而不是双向 LSTM。 还有就是端到端的训练方式也是在我们的书完成后才取得进展的。这方面现在大家的研究工作主要集中在两类模型上。一类就是 CTC 模型,包括 Johns Hopkins 大学的 Dan Povey 博士从 CTC 发展出来的 lattice-free MMI;还有一类是 attention-based sequence to sequence model。这些模型在我们的书里面都没有描述,因为当时还没有做成功。即便今天它们的表现也还是比 hybrid model 逊色,训练的稳定性也更差,但是这些模型有比较大的 potential。如果继续研究有可能取得突破。 另外一个进展是单通道语音分离,尤其是多人混合语音的分离。这方面有两项有趣的工作。一个是 MERL 的 John Hershey 博士提出的 Deep Clustering 方法,另外一个是我们提出的 Permutation Invariant Training。实现上,Permutation Invariant Training 更简单。John Hershey 认为有迹象表明 deep clustering 是 permutation invariant training 的一个特例。 这些都是在我们完书之后最近两年里比较有意义的进展。 机器之心:也是在这个月,Google 发了神经网络翻译系统(GNMT),您对这个系统有什么看法?微软在这方面有没有这样的研究? 俞栋:微软很早以前就在做类似的工作了。你可能知道微软有个基于文本的翻译系统,在 Skype 上也有一个 speech to speech translation system。在这些系统里我们已经用到了 neural machine translation 的一些东西。不过翻译主要是由另外的团队在做,我在这里面涉及比较少。 机器之心:语音特征参数提取与鲁棒性语音识别与合成的关键因素,特征参数在不利的噪声环境下,鲁棒性都会急剧下降。目前有什么新的研究可以在特征提取中保持语音信号的最重要参数吗? 俞栋:目前,一个方法是用信号处理技术对输入信号进行分离和增强。另一个方法是用 deep learning 取代人工从 waveform 直接提取特征。只要训练数据的 coverage 足够大,各种各样场景的训练数据都有,模型的结构设计合理,那么模型的泛化能力和鲁棒性就能得到提升。两种方式结合可以得到更好结果。不过,泛化是机器学习的一个未解决的基本问题,更好的解决方案有待于机器学习理论的进展。 机器之心:微软在语音识别上如何解决方言带来的口音问题,比如说「le」和「ne」?针对方言,微软的语料库是从何而来的? 俞栋:一个简单的方法是增加带口音的训练语料。如何有效利用这些语料有些讲究。大概 3、4 年前,我们发过一篇文章,研究怎么样在 deep learning model 上做自适应。带口音的识别问题可以看作一个自适应的问题。假设你已经有标准语音的模型,带口音的语音可以看成标准语音的某种偏离。所以我们的解决方法是做自适应。做自适应的时候,我们可以把有类似口音的语料聚合在一起以增加训练数据。我们发现这样做效果挺不错。如果已经有系统上线,收集带口音的语料并不困难。如果你用过 Windows Phone,你就知道 Windows Phone 的 Cortana 里面有个选项——你想用标准的识别模型还是想用含口音的模型?用户可以选择。 (责任编辑:本港台直播) |