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

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

用初始模型来对齐

Kaldi单音子建模相关推荐

  1. kaldi单音素模型训练 - train_mono.sh脚本解读

    提示:本文适合kaldi的初学者,但最好有过运行kaldi的经验,并且大概了解EM算法.本文比较细致地对train_mono.sh脚本进行了解读,包括其源码,输入输出,以及对输出文件的内容都有详细的解 ...

  2. 运动目标检测_单高斯背景建模

    1.运动目标背景建模 背景建模也称为背景估计,其主要目的是根据当前的背景估计,把对序列图像的运动目标检测问题转化为一个二分类问题,将所有像素划分为背景和运动前景两类,进而对分类结果进行后处理,得到最终 ...

  3. 运动目标检测单高斯背景建模

    1.运动目标背景建模 背景建模也称为背景估计,其主要目的是根据当前的背景估计,把对序列图像的运动目标检测问题转化为一个二分类问题,将所有像素划分为背景和运动前景两类,进而对分类结果进行后处理,得到最终 ...

  4. HTML5新增-页面结构状态-列表-表单-音视频-全局兼容

    页面结构状态-列表-表单-音视频-全局兼容 1 HTML5 新增语义化标签 1.1 新增页面结构标签 标签名 语义和功能 属性 单标签还是双标签 header 表示页面或section中的页眉 双 f ...

  5. html按住语音如何看前面内容,单音语音内容.html

     单音语音内容 $axure.utils.getTransparentGifPath = function() { return 'resources/images/transparent.gif' ...

  6. 告别单音游戏背景音乐的时代未来发展将如何

    游戏的迅速发展让背景音乐告别从前的单音时代,为游戏搭配了绚丽多姿的音乐,让玩家在背景音乐的衬托下犹如身临虚拟的游戏世界,游戏背景音乐的发展日益强大,那么是否能更上一层楼呢? 游戏背景音乐的重要程度目前 ...

  7. 3DAI安卓SDK发布--单照片极速建模

    P3Dface是由深圳市三维人工智能科技有限公司研发的三维人脸重建库,主要功能是根据一张正面的人脸照片生成对应的人脸三维模型,生成的模型可以导出成OBJ,或直接导入Unity等三维引擎里使用. 近年来 ...

  8. 头歌:实验6(2)语音信号单音干扰滤波实训

    第1关:低通滤波器设计 1.已知语音信号频率范围是:300Hz~3.4kHz,现有一噪声为7kHz,理想低通滤波器的截止频率应该选择多少__B__kHz A.3 B.5 C.8 D.10 第2关:语音 ...

  9. matlab 信号生成,如何利用Matlab产生单音信号

    单音信号,既单一频率的信号,在测试IFFT/FFT正确性时,我们常常用到单音信号,一般需要的单音信号时是复数形式: fm = 2e6 ;  %信号频率 fs = 122.88e6; %采样速率 w = ...

最新文章

  1. 会计期间13-16怎么用
  2. mysql scws_php利用scws实现mysql全文搜索功能的方法,_PHP教程
  3. 你为什么需要在64位系统下用32位程序
  4. 分布式系统保障—混沌工程—初识
  5. intellij选择困难症Spring Batch/Data JPA/Integration/MVC/Security/Web Flow/Web Services到底选哪个?
  6. 管理多个Java安装
  7. 怎么让wegame适应屏幕大小_iOS的五大设计原则:统一化和适应化原则
  8. 国货彩妆品牌2021年Q1社媒营销投放分析报告
  9. 解决方案:秒杀整体设计
  10. linux在线扩展文件系统空间ext2online
  11. vSphere 7 With K8s系列06:创建命名空间
  12. 解决Maven的jar包冲突问题
  13. 明小子mysql_安全狗最新版SQL注入防护多种方式bypass(简简单单/各种数据库通用)...
  14. oracle cogs 科目,CFA一级财报科目:现金流量表详情介绍!
  15. 抖音超级恶心的滑稽HTML源码
  16. 数据库三范式简单理解
  17. 搭建mqtt服务器mosquitto以及添加CA证书
  18. 创新型中小企业如何认定?
  19. loadrunner的吞吐量和吞吐率
  20. 浅谈项目经理的工作职责

热门文章

  1. Elementary OS安装及开发环境配置(一)
  2. 深度学习-Pytorch环境搭建(Windows)
  3. ai作文批改_作文批改功能,AI,你可以在批改记录中看到自己每次的进步
  4. 414 Request-URI Too Long 15ms
  5. 实现断网收银_2019连锁超市收银系统前5名
  6. HTML-12:超链接锚点定位
  7. Oracle 修改字符集(AL32UTF8 转换成UTF8字符集)
  8. AI比赛经验分享 - 总目录
  9. 创建react项目 Linux,idea2018 快速搭建react项目指南
  10. 我为什么会性格内向,能不能内向性格?