语音识别基本原理学习

语音识别基本架构

语音识别基本原理学习_第1张图片

  • W表示文字序列,Y表示语音的输入
  • 那么根据公式1,表示语音识别的目标是 在给定语音输入的情况下,找到可能性最大的文字序列
  • 根据贝叶斯公式,可以得到公式2,分母P(Y)表示出现这条语音的概率,对于我们的求解目标来说是一个常数,所以求解时忽略,得到公式3
  • 公式3的P(Y|W)表示给定一个文字序列而出现这条音频的概率,成为声学模型。P(W)表示出现这个文字序列的概率,成为语言模型
  • 无论是传统的方法,或者深度学习网络的方法也是,目前的语音识别在架构上都没有脱离上面的公式。也就是说都是包括 声学模型语言模型

声学模型 AM (Acoustic Model)

  • 声学模型是对声音发声的建模,能够把语音输入转换成声学表示的输出,更准确的说是给出语音属于某个声学符号的概率。在英文中这个声学符号可以是音节或者是更小的颗粒度音素(phone),在中文中这个声学符号可以是声韵母或者是颗粒度筒英文一样小的音素。

CD-DNN-HMM模型

公式3的声学模型表示为下面的形式
语音识别基本原理学习_第2张图片

  • 上面的Q表示发音单位的序列。公式中,声学模型最终转换成了一个语音到发音序列,和一个发音序列到文字输出序列的字典。
  • 发音序列通常是音素。
  • 公式4中的字典部分表示为公式5,如下:
  • 语音识别基本原理学习_第3张图片
  • 语音识别基本原理学习_第4张图片
  • 根据上面的推导和公式表示,声学模型是一个描述语音和状态之间转换的模型
  • 我们引入HMM假设:状态是隐变量,语音是观测值,状态之间的跳转符合马尔科夫假设。
  • 那么声学模型表示为如下的公式:
  • 语音识别基本原理学习_第5张图片
  • a是转移概率,b是发射概率。如图:
    语音识别基本原理学习_第6张图片
    观测概率通常用GMM或者DNN来描述,这就是CD-GMM-HMM架构或者CD-DNN-HMM架构的AM。

CD-DNN-HMM架构图:
语音识别基本原理学习_第7张图片

CTC模型

  • 在基于CD-DNN-HMM架构的语音识别声学模型中,训练DNN通常需要帧对齐标签。在GMM中,这个对齐操作是通过EM算法不断迭代完成的。
  • E-step:估计(重估)GMM参数
  • M-step:使用BW(Baum-Welch算法)对齐

另外HMM假设一直受到诟病,知道RNN出现之后,使用RNN来对时序关系进行描述来取代HMM成为热潮。

随着神经网络优化技术的发展和GPU计算能力的不断提升,最终使用RNN和CTC来建模实现end2end的声学模型。

CTC Connectionist Temporal Classification,连接时序分类。达到的目标是直接将语音和相应的文字对应起来,实现时序问题的分类。

End-to-End 模型

End2End强大的建模能力,不需要像传统架构一样的进行细分,对于中文,不需要再输出细分为状态、音素、声韵母,而是直接输入汉字。对于英文,输出字母。

从这一点来说,神经网络将声学符号到字符串的映射关系也一并建模并且学习了出来,这部分是在传统的框架中词典所承担的任务。传统框架中有一个专门的建模单元叫做G2P (grapheme-to-phoneme)来处理集外词(out of vacabulary,oov)的情况。而在神经网络的结构中,不需要G2P,不需要词典,没有OOV,这样全部都建模到一个神经网络里。

另外,在传统的框架结构中,语音需要进行一系列的处理:
- 1.分帧
- 2.加窗
- 3.提取特征(MFCC,Fbank,PLP)等等
而在基于神经网络的AM中,通常使用更裸的Fbank特征。在End2End的识别中,使用更简单的特征比如FFT也常见。

除此之外,End2End的AM已经带有了LM的信息,它通过RNN在输出序列上学习得到的,但是这个LM仍然较弱,如果外加一个更大的数据量的LM,解码的效果会更好。因此End2End指AM部分,等到不需要用到LM的时候,才是真正的End2End。

语言模型LM

语言模型的作用之一是消除多音字的问题,在AM给出发音序列之后,从候选的文字序列中找到概率最大的字符串序列。

LM还可以对AM的解码做约束和重打分,让最终的识别结果符合语法规则。目前最常见的还是基于N-gram的语言模型和基于RNN的语言模型。

参考

点这里

你可能感兴趣的:(asr)