Speech recognition (一) 之 基础篇

2016 年 1 月 7 日 DeepLearning中文论坛 deepnn


deep learning 到来之前,speech recognition 系统基本全都是用HMM来实现的;deep learning 的到来,最前期也只是把acoustic model 换成了CNN (MFCC+GMM --> CNN, Geoffrey Hinton,2012; Abdel-Hamid Mohamed, 2014), phoneme/word phoneme/word transition, 仍然用HMM model的。再到后期,speech recognition最终脱离了HMM,而换成end-to-endRNN 模型Alex Graves, 2014)。然而,RNN也是与HMM 有着相似之处的:把RNN flatten后,也是一条linear chain, 只不过这条linear chain deterministic的,而不是probabilistic的。HMMRNN都能很好的model temporal sequence


既然HMMspeech recognition的进程中曾长期遥遥领先于其它方法,那么我们何尝不从HMM着手来了解speech recognition的基础呢?


Speech recognition, 顾名思义,就是给定acoustic signals, 识别sentence如果从概率的角度来讲,就是推测下面的最大条件概率:p(sentence | acoustic signals)如果大家再进一步用bayes 把它重写,那么:p(sentence | acoustics signals) ~ p(acoustic signals |sentence) * p(sentence)。上面的公式,我们省去了分母:p(acoustic signals), 因为它不影响sentenceinference,因此被省略掉了。好了,我们具体看看约等式的右边two terms: p(acoustic signals | sentence) p(sentence)p(acoustic signals | sentence) acoustic model, p(sentence) language model。首先来看language model, 为什么它会出现在speech recognition中?显而易见:当我们听一个有从南方来的有口语的同学讲话,如果他讲一个字,发音不准的话,我们很难听懂,当时如果他讲长句子,即使有几个字发音不准,我们也能从context中推测出他讲的那些字。language model 简言之,是用来model languagesyntactic & semantic structure的,speech recognition中,language model 排除了那些语法、语义不合理的句子,使得speech recognition更加的精确。大家有兴趣可以看看我们之前的文章:NLP 语言模型。早期的speech recognition 系统,acoustic model使用HMM而当时最常用的language model bi-gram/tri-gram模型。


在讲speech recognition之前,我们来认识speech recognition里面的一个基本的terminology: (1) phoneme – minimal unit ofsound that has semantic content (包括vowels & consonants); (2) syllable - aunit of organization for a sequence of speech sounds; (3) word; (4) sentence. 这四个概念是按照从小到大排列的,属于composition的关系。说到这里,我顺便来说一说speech recognitionvision object recognition的差异:众所周知,目前主流的CNNobject recognition的最好算法,CNN 也是一种compositional model: 底层学到image中的lower-level feature, edge, 随着层数变深,逐渐学到更抽象的parts, objects .... 所以我们看到,CNN其实也是慢慢学到更抽象、更大的concepts. 但是,vision中学到的这些conceptsspeechphoneme, syllable, words等等这些concepts有什么不同呢?最大的差异是:speech中的concepts are well defined, and they arephysically meaningful, 然后visionconcepts do have physical meaning, andtherefore they are usually uninterpretable

好了,我们来看HMM是怎么model acoustic signal的:分为三层:sentencewords组成,words 又由subwords组成,如果用HMMmodel subwords, 把它plug inword中,便可以得到wordHMM模型(因为words 由多个subwords组成),再把单个wordHMM模型plug insentence中,便可以得到sentence 的一个大的HMM 模型。对于一个training好的HMM我们就可以根据input acoustic signals, 推断整个句子了,这就是一个理论上很简单的MAP inference, 可以通过Viterbi algorithm 来完成(也就是HMMinference常要的dynamic programming 算法)。可是实际问题是:由于hidden states 太多,viterbi算法变得impractical, 于是我们一般用beam search A* 算法来找到most promising word sequences. 补充一下:常用的subword 模型有:phoneme, syllable, demi-syllable, triphone, 在实际的系统中,最常用的是triphone


好了,我们再来看看HMM中的training: 大家也许有个疑问:我们HMMbuilding units phoneme, 可是我们只有整个句子的acoustic signal, 而没有每个phonemeacoustic signal (也就是我们并没有每个word/phonemeground truth boundary)既然整个sentenceHMM是由每个phonemeHMM concatenated起来的,而我们需要学习每个phonemeHMMtransition/emission parameters, 也就是我们得有Phonemeacoustic signal才行。然而通过句子的acoustic signal来人工label phonemeboundary几乎是不可能的(工作量太大,而且也会因人而异)。如果要training, 我们总得需要单个phoneme acoustic signal,那该怎么办呢?如果把phonemeboundary position看成acoustic signal 中的hidden variable的话,那么我们就是要求解这些hidden variable, 大家也许马上想到:EM expectation maximization) 算法不是很常用来解决有hidden variable的问题吗?对了,如何从continuous acoustic signal中得到phonemehidden boundary正是通过EM-styple 算法来解决的:首先根据每个training sentence phoneme transcription, acoustic signal均分到每个phoneme, 这样每个phoneme就可以单独估计自己HMM里面的参数了;把每个phonemeHMMconcatenate 成整个sentenceHMM, 现在我们知道了HMM里面所有的参数,我们通过viterbi algorithm 来寻找最可能的path (MAP inference), 这样就能得到每个phonemeboundary; 然后我们再次train 单个phonemeHMMconcatenate 成整个句子的HMM,来继续找boundary, …., 这样迭代几次,直到boundary 不变,我们同时也training得到了每个phonemeHMM的参数。


好了,相信大家对HMM用于speech recognition有了了解,接下来我们会讲到更advanced speech recognition: RNN.



登录查看更多
1

相关内容

隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数。然后利用这些参数来作进一步的分析,例如模式识别。 其是在被建模的系统被认为是一个马尔可夫过程与未观测到的(隐藏的)的状态的统计马尔可夫模型。
一份循环神经网络RNNs简明教程,37页ppt
专知会员服务
172+阅读 · 2020年5月6日
Interspeech 2019 | 从顶会看语音技术的发展趋势
AI科技评论
16+阅读 · 2019年9月19日
简评 | Video Action Recognition 的近期进展
极市平台
20+阅读 · 2019年4月21日
行为识别(action recognition)目前的难点在哪?
极市平台
36+阅读 · 2019年2月14日
从Seq2seq到Attention模型到Self Attention(一)
量化投资与机器学习
76+阅读 · 2018年10月8日
深度学习基础之LSTM
全球人工智能
28+阅读 · 2017年12月18日
自然语言处理(二)机器翻译 篇 (NLP: machine translation)
DeepLearning中文论坛
10+阅读 · 2015年7月1日
VIP会员
相关VIP内容
一份循环神经网络RNNs简明教程,37页ppt
专知会员服务
172+阅读 · 2020年5月6日
相关资讯
Interspeech 2019 | 从顶会看语音技术的发展趋势
AI科技评论
16+阅读 · 2019年9月19日
简评 | Video Action Recognition 的近期进展
极市平台
20+阅读 · 2019年4月21日
行为识别(action recognition)目前的难点在哪?
极市平台
36+阅读 · 2019年2月14日
从Seq2seq到Attention模型到Self Attention(一)
量化投资与机器学习
76+阅读 · 2018年10月8日
深度学习基础之LSTM
全球人工智能
28+阅读 · 2017年12月18日
自然语言处理(二)机器翻译 篇 (NLP: machine translation)
DeepLearning中文论坛
10+阅读 · 2015年7月1日
Top
微信扫码咨询专知VIP会员