Kaldi单音子建模

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模型迭代

声学模型训练需要对齐结果,而对齐过程又需要声学模型

用初始模型来对齐

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值