基于HMM模型进行语音识别的基本思路
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第五章
基于HMM模型进行语音识别的基本思路
摘要:本文对隐马尔科夫模型(HMM)进行了详细的阐述,并对基于HMM 模型进行语音识别这一方法的基本思路进行了简单的介绍。
关键字:隐马尔可夫(HMM),模型,语音识别
1 知识背景
隐马尔可夫模型作为语音信号的一种统计模型,在语音处理各个领域中广泛的应用,它的理论基础是在1970年前后由Buam等人建立起来的,随后由CMU的Baker和BIM的eJhnek等人将其应用到语音识别之中。由于贝尔实验室Rbainer等人在20世纪80年代中期对HMM的深入浅出的介绍,才逐渐使HMM 为世界各国从事语音处理研究人员所了解和熟悉,进而成为公认的有效的语音识别方法【1】。
一般来说,语音识别的方法有四种:
(1)统计模型方法
(2)基于声道模型和语音知识的方法
(3)模式匹配的方法
(4)人工神经网络的方法
基于声道模型和语音知识的方法起步较早,没有达到实用的阶段。目前常用的方法是后三种方法,目前它们都已达到了实用阶段。
隐马尔可夫模型(HMM) 是常见的统计型模型方法,本文主要介绍经典的隐马尔可夫模型及其在语音识别中的应用。
2 隐马尔可夫模型
马尔可夫过程(或马尔可夫链)直观解释是:
在已知系统目前的状态(现在)的条件下,“将来”与“过去”无关。这种过程也称为无记忆的单随机过程。如果这种单随机过程的取值(状态)是离散的,我们又可以将它称作无记忆的离散随机过程。
假设有一个系统,它在任何时间可以认为处在有限多个状态的某个状态下。在均匀划分的时间间隔上,系统的状态按一组概率发生改变(包括停留在原状态),这组概率值和状态有关,而且这个状态对应于一个可观测的物理事件,因此称之为可观测马尔可夫过程。
不可测(随机)的双随机过程只能通过另一组随机过程才能观测到,另一组随机过程产生出观测序列(行为),而这组行为是可见不可测的。因此,这种双随机过程称为隐马尔可夫模型(或隐马尔可夫过程)。通常,HMM对应的状态被假设为离散的,且其演变是无记忆的,因而,HMM也被称为无记忆的离散双随机过程。
一个隐马尔可夫模型由下列参数来决定:
(1) N—模型的状态数目。
状态的集合表示为12N S={S S S },,, (2) N —观测符号数。
即每个状态可能输出的观测符号的数目。 观测符号集合表示为12M O={O O O },,, (3) A —状态转移概率分布。 状态转移概率构成的矩阵为
1{},[|],1,ij ij ij t j t i A a a P q S q S i j N +====≤≤
(4) B —状态的观测符号概率分布。
{()},()[|]
1,1j k j k k t j B b O b O P t O q S j N k M
===≤≤≤≤在时刻输出观测符号为
(5) π—初始状态分布。
1{},[],1i i i P q S j N πππ===≤≤
为了完整地描述一个隐马尔可夫模型,应当指定状态数N ,观测符号数M ,以及三个概率密度A 、B 和π 。这些参数之间有一定的联系,因此为了方便,HMM 常用 ={[M,N],A,B,}πΛ来简记。
给定HMM 的形式后,为了将其应用于实际,必须解决以下三个基本关键问题:
(1) 已知观测序列12M O={O O O },,,和模型={A,B,}πΛ,如何有效的计算在给定模型条件下产生观测序列O 的概率 (|}P O Λ。
(2) 已知观测序列12M O={O O O },,,和模型 ={A,B,}πΛ,如何选择在某种意义上最佳的状态序列。
(3) 给定观测序列,如何调整参数{A,B,}π使条件概率(|}P O Λ最大。 2.1 第一个问题的求解
这是一个评估问题,即已知模型和一个观测序列,怎样来评估这个模型(它与给定序列匹配得如何),或怎样给模型打分,这个问题通常被称为“前向-后向”的算法解决。
(一)前向算法
首先要定义一个前向变量()t i α:
12(t)=P{O O O q =S |}t t t i αΛ,,,;
即在给定模型条件下,产生t 以前的部分观测符号序列,且t 时刻又处于状态i S 的概率。
以下是前向变量进行迭代计算的步骤:
(1) 初始化
(2) 迭代计算
(3) 最后计算
其中
为状态转移矩阵中的元素, 为观测符号矩阵中的元素。 (二)后向算法
同理,可以类似地定义后向变量()t i β:
即在给定模型Λ及时刻处于状态i S 的条件下,产生t 以后的部分观测符号序列t+1t+2T {O O O },,,的概率。
后向变量也可以用迭代法进行计算,步骤如下: (1) 初始化
(2) 迭代计算
(3) 最后计算
前向和后向算法对于求解问题2和问题3也是有帮助的。
由于()t i α表示t 时刻处于状态i S 且部分观测序列为12t {O O O },,,,而
()t i β表示t 时刻处于状态i S 且剩下部分的观测序列为t+1t+2{O O O }T ,,,,因而 ()t i α、()t i β表示产生整个观测序列O 且t 时刻处于状态i S 的概率,即
那么,问题1也可以通过同时使用前向后向概率来求解,即
N i O b i i i ≤≤=1 )()(11παN j T t O b a i j t j N
i ij t t ≤≤-≤≤=+=+∑111)(])([)(111;,αα1
(|)()
N
T i P O i α=Λ=∑ij a ()j t b O 12()(,,...,;|)t t t T t i i P O O O q S βλ++==N
i i T ≤≤=1,1)(βN
i T T t j O b a i t N
i t j ij t ≤≤--==+=+∑1,1,...,2,1),()()(11
1ββ11
(|)()
N
i P O i λβ==∑()()(,|)
t t t i i i P O q S αβλ==1
(|)()()1,2,,1,2,...N
t t i P O i i t T i N αβ=Λ===∑,;