语音识别之GMM-HMM模型(三):GMM-HMM模型应用于语音识别任务原理详解

  • Post author:
  • Post category:其他



写在前面

都知道语音识别有GMM-HMM模型,也分别了解了什么是:

GMM(混合高斯模型)

https://blog.csdn.net/qq_37385726/article/details/89198387

MMC(马尔可夫链)

通俗理解马尔科夫链_啧啧啧biubiu的博客-CSDN博客_通俗理解马尔科夫链

HMM(隐马尔可夫模型)

通俗理解隐马尔科夫模型_啧啧啧biubiu的博客-CSDN博客

但是却发现不清楚GMM与HMM与语音识别有什么关系,更不知道GMM-HMM模型究竟是什么

好像没有看到有系统讲解很清楚的博客

于是我根据这些零散的学习,整理出了一套比较方便适于理解的系列博客。

由于文章的主要内容均为借鉴,故标为转载。



原始整理为:qq_37385726




转载请注明出处



系列博客


  1. 语音识别之GMM-HMM模型(一):语音识别简介与混合高斯模型-GMM

  2. 语音识别之GMM-HMM模型(二):隐马尔科夫模型-HMM

  3. 语音识别之GMM-HMM模型(三):GMM-HMM模型应用于语音识别任务原理详解


目录



GMM-HMM模型应用于语音识别任务步骤及原理




一、训练GMM-HMM模型




1. 对原始语音信号预处理




2. 对原始语音提取声学特征(Acoustic Feature)




3. GMM利用EM算法建模声学特征




4. 利用声学特征训练HMM




二、应用GMM-HMM模型识别语音




GMM-HMM模型应用于语音识别任务步骤及原理

一、训练GMM-HMM模型

1. 对原始语音信号预处理


  • 信号预处理

通过消除噪声和信道失真对语音进行增强。


  • 分帧

分帧就涉及到帧长,对于帧长要满足的条件有两点:

  1. 正常语速下,音素的持续时间大约是 50~200 毫秒,所以帧长一般取为小于 50 毫秒。
  2. 语音的基频,男声在 100 赫兹左右,女声在 200 赫兹左右,换算成周期就是 10 毫秒和 5 毫秒。既然一帧要包含多个周期,所以一般取至少 20 毫秒。

综上

帧长一般取为 20 ~ 50 毫秒,20、25、30、40、50 都是比较常用的数值

,以上摘自

知乎

逻辑上很合理的解释,

我通常听见的是(10-30ms)


一帧的数据长度 N=帧时间长度/T=帧时间长度(单位秒)*fs(单位Hz)



可以理解为若干帧对应一个音素,若干音素对应一个单词,如果我们想要识别对应的单词状态,我们只要知道对应的帧状态就行

2. 对原始语音提取声学特征(Acoustic Feature)

在过去,最流行的语音识别系统采用MFCC或RASTA-PLP作为特征向量。

3. GMM利用EM算法建模声学特征



GMM被整合进HMM中,用来拟合基于状态的输出分布。


原始的语音数据经过短时傅立叶变换或取倒谱后会成为特征序列,在忽略时序信息的条件下,GMM就非常适合拟合这样的语音特征。


用GMM建模声学特征(Acoustic Feature)O1,O2,…,On,可以理解成:


每一个特征是由一个音素确定的,即不同特征可以按音素来聚类。由于在HMM中音素被表示为隐变量(状态),故等价于:

每一个特征是由某几个状态确定的,即不同特征可以按状态来聚类。


则设P(O|Si)符合正态分布,则根据GMM的知识,O1,O2,…,On实际上就是一个混合高斯模型下的采样值。



因此,GMM被整合进HMM中,用来拟合基于状态的输出分布。

4. 利用声学特征训练HMM

确定状态转移矩阵,是执行解码问题的基础。



而状态转移矩阵的确定即等价于HMM的训练问题(即状态转移矩阵u=max(P(u|O)))

,从语音特征序列中利用EM算法学习得到状态转移矩阵。

二、应用GMM-HMM模型识别语音

è¿éåå¾çæè¿°


  • 对待识别语音做信号预处理

  • 对待识别语音提取声学特征

  • 对声学特征利用Viterbi算法解码


对声学特征解码后得到的是状态序列,即音素序列。

如果把声学模型的结果表示为句子,往往效果不尽如意,所以还需要用语言模型把识别出的各个音素纠正为正确的句子。

HMM一开始是在信息论中应用的,后来才被应用到自然语言处理还有其他图像识别等各个方面。

下面举两个例子说明他的应用,一个是输入法的整句解码,一个是语音识别。

有图为证:


将上图中的拼音换成语音,就成了语音识别问题,转移概率仍然是二元语言模型,其输出概率则是语音模型,即语音和汉字的对应模型。


  • 利用语言模型优化


对声学特征解码后得到的是状态序列,即音素序列。

如果把声学模型的结果表示为句子,往往效果不尽如意,所以还需要用语言模型把识别出的各个音素纠正为正确的句子。



版权声明:本文为qq_37385726原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。