HMM

DNN-HMM语音识别的声学模型

一笑奈何 提交于 2019-11-26 20:14:38
基于DNN-HMM的语音识别声学模型结构如下图所示,与传统的基于GMM-HMM的声学模型相比,唯一不同点在于用DNN替换了GMM来对输入语音信号的观察概率进行建模。DNN与GMM相比具有如下优点: DNN不需要对声学特征所服从的分布进行假设; DNN的输入可以采用连续的拼接帧,因而可以更好地利用上下文的信息; DNN的训练过程可以采用随机优化算法来实现,而不是采用传统的批优化算法,因此当训练数据规模较大时也能进行非常高效的训练,显然,训练数据规模越大,所得到的声学模型就越精确,也就越有利于提高语音识别的性能; 在发音模式分类上,DNN这种区分式模型也要比GMM这种产生式模型更加合适。 DNN的输入是传统的语音波形经过加窗、分帧,然后提取出来的频谱特征,如MFCC、PLP或更底层的滤波器组(filter bank,FBK)声学特征等。FBK特征多利用Mel滤波器组在功率谱上进行滤波并计算对数能量,然后采用其规整值来表示。目前,FBK特征获得了广泛的成功,证明了原始语音频率对于基于DNN的语音识别技术的重要性。与传统的GMM采用单帧特征作为输入不同,DNN将相邻的若干帧进行拼接来得到一个包含更多信息的输入向量。研究表明,采用拼接帧作为输入是DNN相比GMM能获得明显性能提升的关键因素之一。 DNN输出向量的维度对应HMM中状态的个数,通常每一维输出对应一个绑定的triphone状态

HMM基本算法

爱⌒轻易说出口 提交于 2019-11-26 20:13:46
隐马尔科夫模型(Hidden Markov Model,以下简称HMM)作为语音信号的一种统计模型,在语音处理的各个领域中获得了广泛的应用。当然,随着目前深度学习的崛起,尤其是RNN,LSTM等神经网络序列模型的火热,HMM的地位有所下降。但是作为一个经典的模型,学习HMM的模型和对应算法,对我们解决问题建模的能力提高以及算法思路的拓展还是很好的。本篇将介绍HMM应用到语音处理中经常会面临的3大基本问题的解决方案,也就是给出三种基本算法:前向-后向算法、Baum_Welch算法以及Viterbi解码算法。 前向-后向算法 ​ 该算法用来计算给定一个观察值序列 \(O=o_1,o_2,\ldots,o_T\) 以及一个模型 \(\lambda=(\pi,A,B)\) 时,由模型 \(\lambda\) 计算出O的概率 $ P(O| \lambda ) $ 。 HMM组成如下图所示: \(P(O|\lambda)\) 最直接的求取方式如下: 对一个固定的状态序列 \(Q=q_1,q_2,\ldots,q_T\) ,有 \[ P(O|Q,\lambda)=\mathop{\Pi}_{t=1}^TP(o_t|q_t,\lambda) = b_{q_1}(o_1)b_{q_2}(o_2) \ldots b_{q_T}(o_T)\tag{1-1} \] 其中, \[ b_{q_t}(o_t)=

隐马尔科夫模型(HMM)

馋奶兔 提交于 2019-11-26 14:38:12
HMM简介 HMM用于研究非确定性生成模式,HMM是一个与时间无关的模型(有待改进),并且n阶HMM模型是指下一个状态只与前n个有关,通常只研究一阶HMM模型(有待改进)。从可观察的参数中确定该过程的隐含参数,然后利用这些参数来作进一步的分析,例如模式识别。 下面可以使用一个案例来解释HMM模型。 假设有三种色子,分别是标有123456的立方体、标有1234的三菱锥、标有12345678的八面体。它们分别记为D6、D4、D8,假设我们从三个色子中任意挑一个色子的概率为1/3,然后我们可以随意掷色子,假设某一次掷色子结果为136527481。这个结果称为可见状态链,其中所掷色子的序列为隐含状态链,HMM一般指的是隐含状态链。隐含状态链之间存在着转移概率,在这个例子中,隐含状态链有可能是D4D6D6D8D4D8D6D8D4,也有可能是其他隐含状态链,可以枚举很多种。可见状态之间没有转移概率,但是隐含层与可见层之间有转移概率,例如D4中掷1/2/3/4的概率均为1/4。当然也可以对两个转移概率进行自定义。 应用HMM模型的时候,往往是缺失了一部分信息的,知道骰子有几种,每种骰子是什么,但是不知道掷出来的骰子序列;有时候只是看到了很多次掷骰子的结果,剩下的什么都不知道。和HMM模型相关的算法主要分为三类,分别解决三种问题: 知道骰子有几种(隐含状态数量),每种骰子是什么(转换概率)

隐马尔科夫模型(HMM)学习笔记整理与思考

有些话、适合烂在心里 提交于 2019-11-26 05:27:19
隐含马尔可夫模型是一个基于概率统计的模型。 到目前为之,它一直被认为是实现快速精确的语音识别系统的最成功的方法。复杂的语音识别问题通过隐含马尔可夫模型能非常简单地被表述、解决。 在学习和理解隐马尔科夫模型之前,我觉得需要理解一些基础性的内容以便理解;我把笔记整理成三个相关内容。 1.动态规划 2.马尔科夫链 3.隐马尔科夫模型 *****1.动态规划***** 动态规划的思想很早就被应用到了语音识别的数学模型中,比如动态时间规整(Dynamic Time Warping,简称DTW )。 动态规划是在语音识别模型研究初期就提出来的比较基础的思想方法,HMM模型很多地方都是对这些思想的进一步思考。 同时动态规划也是一种很好的寻优方法和迭代计算的思想方法。 动态规划的思想非常简单:动态规划算法通常基于一个递推公式及一个或多个初始状态。当前子问题的解将由上一次子问题的解推出。 这种简单的思想却在有些情况下极其有效,举个例子: 问题: 平面上有4*4个格子,每个格子中放着一定数量的苹果。你从右上角的格子开始, 每一步只能向下走或是向左走,每次走到一个格子上就把格子里的苹果收集起来, 这样下去,你最多能收集到多少个苹果? 如果是遇到这样的问题大家会怎么解决呢? 最简单的办法就是找到从右上角到左下角的所有走法然后计算每一种走法可以拿到的苹果数,然后排列找到最大的那种走法