GMM-HMM和GMM-NN
本质上并没有什么区别,基于神经网络的主流语音识别系统仍基于HMM,只不过是用神经网络来代替GMM建模HMM状态的观察概率
1
特征提取
特诊提取脚本会读取数据文件夹中的音频表单,并依次进行特征提取,将结果写入数据文件夹中的声学特征表单,要求输入音频的采样大小为16比特。特征提取的输出是声学特征表单和用于保存声学特征的二进制文档
1.1
用kaldi提取声学特征(13维和40维的mfcc特征)
1.2
特征在kaldi中的存储(将特征按照kaldi的特征表单形式保存,用kaldi自有的工具提取特征,自动输出为表单形式)特征形式:
句子ID
Frame1:特征(13维or40维)
FrameN: 特征(13维or40维)
倒谱均值方差归一化(CMVN),在kaldi训练脚本中,大部分训练步骤都默认使用谱归一化,以使得模型的输入特征趋近于正态分布
1.3
特征的使用
训练声学模型时,通常还需要对对特征做更多的扩展。如单因子模型训练时,在谱归一化(CMVN)的基础上做了差分系数(Delta)的扩展
MFCC-CMVN-Delta
加速训练,并行的训练
1.4
常用的特征类型
MFCC,FBank,PLP,中文还有基频
2
单因子的训练模型
使用GMM描述单因子发音状态的概率密度分布函数的HMM模型
2.1
声学模型的基本概念
一个声学模型就是一组HMM
HMM:初始概率,转移概率和观察概率
语音识别框架中的每个HMM,定义该HMM中有多少个状态,各个状态起始的马尔科夫链的初始概率Π,状态见的转移概率(HMM)及每个状态的概率密度分布函数(GMM)
语音识别,一般令初始概率为
转移概率对识别结果影响较小,一般把状态间的转移概率预设为固定值,不必在训练过程中更新转移概率
HMM状态的物理意义在语音识别中可以认为是音素的发音状态,习惯上分为初始态,稳定态,结束态,对应的用三个HMM状态建模一个音素的发音
根据声学模型,可以计算某一帧声学特征在某一个状态上的声学分(AM score),声学分指的声学特征(观察状态)对于该状态的对数观察概率
AmScore(t,i)=logP(ot|si)
观察概率的经典建模方法是高斯混合模型
GMM+HMM算法
(1)把帧识别成状态(难点)
(2)把状态组合成音素
(3)把音素组合成单词
若干帧对应一个音素
若干音素对应一个单词
计算机识别方式就是概率匹配
GMM要学习的概率
(1)GMM:features-state
(2)HMM:上个state-这个state
一个GMM-HMM声学模型存储的主要参数为各状态和高斯分量的
,
,
GMM-HMM声学模型:TranSitionModel+多个DiagGMM
TranSitionModel:每个音素有多少个状态构成,状态转移概率
DiagGMM:一个状态的高斯分量的概率分布函数pdf,
,
,
2.2
将声学模型用于语音识别
简单的说,识别的过程就是用语音的特征序列去匹配一个状态图,搜索最优路径。状态图中有无数条路径,每条路径代表一种可能的识别结果,且都有一个分数,该分数表征语音和该识别结果的匹配程度。判断两条路径的优略就是比较两条路径的分数,分数高的路径更优。
状态图由若干节点和若干跳转组成,有的跳转对应一个HMM状态,并对当前帧计算一个分数,分数由声学分和图固有分。
图固有分主要源于语言模型概率
声学分是根据声学模型和待识别语音的匹配关系动态计算的,声学模型最主要的就是计算声学分
路径分数是该路径上各条跳转的分数和
Kaldi的状态图是基于WFST构建的
2.3
模型初始化
初始化模型(gmm-init-mono),该模型并不需要输入任何数据,这个工具仅仅初始化了一个基础模型,后续需要使用训练数据来更新这个模型的参数。另外,这个模型的每一个状态只有一个高斯分量,在后续的训练过程中,会进行单高斯分量到混合多高斯分量的分裂
训练数据迭代更新模型参数:Baum-Welch算法(EM算法):该算法并不需要预先得知训练样本每一帧具体对应哪个状态,只需要给出训练样本的状态序列,用EM算法求解
Kaldi的实现:要求显式地输入每一帧对应地状态,使用带标注地数据更新GMM的参数,Viterbi训练方法
2.4
对齐
对齐:获取每一帧对应的状态
2.5
Transition模型
Transition模型存储在Kaldi声学模型的头部
包括三部分:,,
:众多三元组构成
音素索引,HMM状态索引,PDF索引
1 0 0
1 1 1
1 2 2
2 0 3
2 1 4
2 2 5
把这些三元组放在一起,从1开始编号,每个编号对应一个transition state
transition state有若干可能的跳转指向其他状态,对这些跳转从0开始编号,得到transition index
transition-id:(transition state,transition index)
:对数转移概率,按照teansition id索引
为什么需要transition id?
考虑到pdf-id不能唯一的映射成音素(不同的音素共享同一个pdf),而transition id可以
2.6
GMM模型迭代
声学模型训练需要对齐结果,而对齐过程又需要声学模型
用初始模型来对齐