一、先明确:HMM 的 “状态” = 语音发音的 “幕后剧本步骤”
语音的产生过程,本质是声带、舌头、嘴唇等发音器官的连续动作变化(比如发 “爸” 这个音,要经历 “闭嘴→送气→张嘴” 三个动作阶段)。
但这些动作我们无法直接观测,只能听到最终的声音信号(声波)。
HMM 就是为了描述这个 “看不见的动作变化” 而设计的模型,它的核心设定是:
- 隐藏状态 s:对应发音器官的一个稳定动作阶段(比如 “闭嘴阶段” 就是一个状态,“送气阶段” 是另一个状态)。
- 这些状态是抽象的,没有对应的物理信号,所以叫 “隐” 马尔可夫模型。
- 对于语音识别,最常用的状态定义就是 “音素的子状态”(比如一个音素 /a/,会拆成 3 个状态:/a/- 开始、/a/- 中间、/a/- 结束)。
- 观测特征 o:对应每个状态下,能被我们采集到的声音信号特征(比如 MFCC 特征)。
- 这是看得见、摸得着的物理信号,是麦克风录下来的声波经过处理后的结果。
二、“HMM 处于某个状态”:就是 “发音器官正处于某个动作阶段”
我们用发 “啊” 这个音的过程,具体看状态的 “存在形式”:
| 时间帧 | HMM 的隐藏状态(抽象) | 发音器官动作(实际) | 观测特征 o(物理信号) |
|---|---|---|---|
| 第 1 帧 | a/- 开始状态 | 声带开始振动,嘴巴刚张开 | 低频能量弱的 MFCC 特征 |
| 第 2 帧 | /a/- 中间状态 | 声带振动最强,嘴巴张到最大 | 低频能量强的 MFCC 特征 |
| 第 3 帧 | /a/- 结束状态 | 声带振动减弱,嘴巴慢慢闭上 | 低频能量减弱的 MFCC 特征 |
- “HMM 处于 /a/- 中间状态” → 本质就是 “此时发音器官正处于‘张到最大、振动最强’的动作阶段”。
- 这个状态不直接对应某个声音信号,但它决定了会生成什么样的声音信号—— 就像剧本的 “第 2 幕”,决定了演员会做出什么动作、说出什么台词。
三、HMM 如何 “切换状态”?—— 对应发音动作的连续变化
HMM 的状态不是静止的,会按照状态转移概率连续切换,这刚好对应发音动作的自然过渡:
- 从 “/a/- 开始”→“/a/- 中间”:对应嘴巴从 “刚张开” 到 “张到最大” 的过程,转移概率很高(因为发音是连续的,不会跳步)。
- 从 “/a/- 中间”→“/b/- 开始”:对应发完 “啊” 接着发 “波” 的过程,转移概率由语言的发音规律决定(比如 “啊波” 在中文里常见,转移概率就高)。
四、回到语音识别:我们怎么 “知道” HMM 处于哪个状态?
—— 我们不知道,只能通过观测特征反向推测!
这就是 HMM 解码的核心任务:
- 输入:一串连续的观测特征 o1,o2,o3...o_1,o_2,o_3...o1,o2,o3...(从声音信号中提取的)。
- 输出:一串最可能的隐藏状态序列 s1,s2,s3...s_1,s_2,s_3...s1,s2,s3...(对应最可能的发音动作序列)。
- 而状态似然概率 P(o∣s)P(o|s)P(o∣s),就是用来判断 “某个状态 s 能不能生成这个观测 o” 的依据 —— 概率越高,说明这个状态和观测越匹配。
“HMM 处于某个状态 s” ≠ 有一个叫 “状态信号” 的东西
= 发音器官正处于某个稳定动作阶段
= 这个阶段会生成一个对应的观测声音特征 o
= 我们只能通过 o 反向推测,这个状态到底是不是真的存在。
HMM 的隐藏状态本身无法被直接观测,我们只能通过 “状态s生成观测o的似然概率P(o∣s)P(o|s)P(o∣s)”,判断哪个状态最有可能产生当前的声音特征—— 最终解码出的是一整条最优状态序列,而非单个状态的 “是否存在”。
1480

被折叠的 条评论
为什么被折叠?



