当前位置: 华文问答 > 数码

基于CTC等端到端语音识别方法的出现是否标志着统治数年的HMM方法终结?

2017-05-08数码

我觉得首先要明确的是HMM是一个数学过程,很多东西都可以等效于HMM。其次,就是所谓「端到端」的意义,不同的定义下包括了:

1. 声学模型自动学习时间对准:这是一个很狭义的端到端定义且显然不是一个恰当的定义,因为传统上所有语音识别系统都是这么做的。

2. 声学模型自动学习时间对准 + grapheme建模:这主要是说声学模型的建模单元可以是拼写用的字母,而不是字典中的音标相关的单元。这样识别器就可以直接输出词串而无需额外的字典了。grapheme的研究在语音识别中已经存在了很多年,2014年Alex Graves将它与CTC结合发表了基于CTC的端到端系统(当然还包括一个借鉴了类似MMI和MBR思路的改进的CTC准则)。

3. 基于机器翻译中流行的encoder-decoder模型的思路:使用单一的「序列到序列」模型联合学习了声学模型、语言模型、字典等等语音识别中的所有模块。对字典的学习仍然主要是基于grapheme的思路。

4. raw waveform的声学模型:2014年Google和RWTH Aachen分别独立的研究了直接使用原始的waveform而不是经过FFT以及分帧加窗等预处理过的语音特征做声学模型建模的问题,并且逐渐得到了和传统方法相近的结果。这也可以看作一种特征提取和声学模型层次的端到端(如果定义1都能算作端到端的话...)。

明确了这一些,下面来主要讨论下时下研究最多的基于CTC的「端到端」方法,以及它和HMM方法的联系。

首先CTC是使用了一阶马尔可夫假设的。而且一个简单的方法是可以用一个每个建模单元都是单状态的HMM来实现CTC。我觉得这种和HMM方法的相似性也是为什么CTC在端到端方法中更流行:因为只需要非常简单的修改(再引入相临帧如果输出相同就坍缩成一个输出等等)就可以很容易的复用大量的经典HMM框架下的算法和代码,包括解码、lattice rescore等等。

其实CTC的主要问题恰恰是它的一些优点,比如要自己从零学习所有时间对准。研究表明这需要海量的训练数据(比如Google提到需要大于40000小时)才能够媲美传统方法的效果。另外可能是因为blank模型存在的缘故,CTC的posterior distribution非常的sharpe,这样的性质会带来一些有趣的工作,比如上海交大的phone synchronised decoding,但同时也会给第一响应但时间、后处理中的置信度等带来问题。

所以说CTC是如何革命性的方法,无论在数学意义上、在历史沿革意义上(因为语音研究中有不少类似的方法)、在实用性意义上都是不完全恰当的。CTC的所谓的「流行」很多的体现在广告效应上,产品中使用CTC的似乎并不多。这也容易理解,毕竟无论是学术圈、还是工业界,都是不断需要推广新的概念来推动发展的,而CTC当时在各方面都处在一个恰当的位置上,并且其中包含一些有趣的思路。

当然也可以期待随着更多的人开始探索CTC方法,它也会不断的被完善,比如Google在其中引入的数据采样的思路就很有意思。但同时类似的情况也会发生在基于HMM的方法中。比如在Interspeech 2016中,Dan Povey博士的Lattice-free MMI的工作,在HMM框架下引入了一些在CTC中常用的idea(以及很多高超的工程技巧),得到的效果几乎是稳定的远好于CTC的。还有Tara Sainath博士的low frame rate系统,更是只加入了数据采样的思路就在传统hybrid HMM系统中引入了一些CTC的特性,又规避了相应的问题。总之,CTC的主要思路和一系列小的设计都很有趣,但每个工程设计都有自己的优缺点,并且从道理上都很容易想清楚,所以个人认为CTC已经并且还将作为一种重要的模版方法留在时序问题的模式识别研究中,但是在比如语音识别这样的专业领域的顶尖研究中,各种方法都会不断融合改变,CTC会变得不是CTC了。但相对的,HMM却还是HMM,因为它本质上是个价值很广泛的数学过程……

另外更有意思的还是encoder decoder方法的端到端模型,这在神经网络机器翻译中已经体现出了它的价值。但在语音识别中使用还面临许许多多重要问题,比如对额外的语言知识的整合、在含噪声等复杂数据中的学习等等。这些问题也导致了目前encoder decoder方法即使在最简单的语音识别问题中也只能以高得多的运算代价得到比传统方法差不少的效果。但长远来说,我们也仍然可以期待它取得长足进展。