参考文章:

《Tree-Based State Tying for High Accuracy Acoustic Modelling Basics Triphone Tying Decision Trees 》, S.J. Young, J.J. Odell, P.C. Woodland 1994.

1.为什么要用三音素建模

单音素建模没有考虑协同发音效应,也就是上下文音素会对当前的中心音素发音有影响,会产生协同变化,这与该音素的单独发音会有所不同(数据统计也就有所不同),为了考虑这个影响,

所以需要使用三音素建模,使得模型描述更加精准。

 

2.为什么需要状态绑定

原因有两个:1)需要对三音素进行精细建模,则需要大量的数据,而实际上很难获得。

                      2)如果进行精细建模,则使得模型参数非常巨大。

举个例子:  假设音素表有50个音素,则需要的三音素总个数有:50×50×50=125,000

                    假设3个状态,每个状态对应1个GMM,1个GMM用8个高斯(44个参数=8+(8+1)×8/2),则1个三音素对应132个参数

                    总的模型参数有:16500000,显然模型参数非常大。

                   另外,每个三音素的模型建立,如果要全覆盖,则需要很大的训练数据,一般很难覆盖到。

所以,精细建模不太现实;需要状态绑定来减小参数。            

两种聚类方法:

两种方法:1)传统的三音素方法就是模型绑定,也就是归一化三音素,使用一个后验平滑的方法。尽管如此,基于模型的上下文绑定是受限的,因为上下文音素不能

                    单独的对待。

                    2)当前中心音素,如果上下文的发音类型相似,则对当前音素的影响是相似的,则可以将这些数据聚为1类;具体要如何制定这些

                     规则(决策树规则),靠语言发音学家的经验知识,提问。(音素判别,再到状态绑定) 对于节点分裂,需要寻找最佳的问题,按照looklikehood增加的原则。

                     kaldi可以自动产生问题集,根据音素本身数据上的相似性,自动聚为一类,这不需要语言学知识。

                             

3.这篇文章解决的问题

状态绑定已经可以通过数据驱动,贪婪性聚类完;这篇文章主要解决的是状态绑定是如何通过决策树完成的,它的最大优势是完成看不见

的三音素构建(所谓看不见,其实应该就是通过数据本身的分布相似特点,所构建的3音素)

这篇文章改进的主要是第三步:

第一步,单音素标准模型用3个状态,单个状态用1个高斯描述。

第二步,三音素用BW算法训练,拷贝单音素状态输出分布到还没有绑定,覆盖,量少的三音素初始化。

第三步,中心音素相同的三音素被聚类,一个典型的状态被选择出,同类的状态绑定该状态。

第四步,混合分量增加。

第五步,留下问题:为什么使用一个高斯

第六步,Bootstrap,Baum Welch

决策树建立过程:

1. 假如所有状态已被绑定,计算训练数据产生的log似然概率。

2. 寻找问题,将节点分裂成两个子节点,以满足log似然概率最大化为准则。

3. 如果低于阈值或者最大次数,终止这个过程。

,S表示HMM的状态

L(S)表示训练帧集合F的在状态S,HMM模型下似然概率

被观测的后验概率

如果概率密度函数是高斯函数,则L(S)进一步被表示为:

n,表示数据维度,因此整个数据集的Log似然度仅仅依赖于

重估计过程中,前者可以计算得到。

对于一个给定状态S的节点,通过寻找问题q,它被分裂成两个子节点

按照装则,使得下面似然度的增量最大化:

  当这个增量为小于阈值时,停止分裂。

      最后,对于不同父节点下的叶子节点进行归类,如果Log似然度减少在设定的阈值以内,则合并

   基于数据驱动,与决策树聚类对比

       

 

  基于状态与基于模型聚类对比

  

 

转载于:https://www.cnblogs.com/welen/p/7505385.html

从单音素到三音素模型相关推荐

  1. [语音识别] 单音素、三音素、决策树

    了解单音素.三音素.决策树主要从几个问题出发: (1)什么是音素? 以前的音标现在也可以叫音素,而且现在正广泛的把音标叫音素. 每一种语言中的音素都是不一样的,即使是同种语言中,方言的音素也是不一样的 ...

  2. 传统语音识别介绍【五】—— 单音素和三音素

    一.音素(单音素) 音素(phone),是根据语音的自然属性划分出来的最小语音单位,依据音节里的发音动作来分析,一个动作构成一个音素.音素分为元音与辅音两大类.如汉语音节 ā(啊)只有一个音素,ài( ...

  3. 语音识别common1(音素,三音素)

    语音是一个连续的音频流,它是由大部分的稳定态和部分动态改变的状态混合构成. 一个单词的发声(波形)实际上取决于很多因素,而不仅仅是音素,例如音素上下文.说话者.语音风格等: 协同发音(指的是一个音受前 ...

  4. 语音识别补充(一)(音素,三音素)

    语音是一个连续的音频流,它是由大部分的稳定态和部分动态改变的状态混合构成.一个单词的发声(波形)实际上取决于很多因素,而不仅仅是音素,例如音素上下文.说话者.语音风格等: 协同发音:(指的是一个音受前 ...

  5. 《kaldi语音识别实战》阅读笔记:三音素模型训练—train_deltas.sh解析

    一.使用说明 1.1 描述 训练三音素模型.与单音素模型训练相比,因为建模单元变为三音素,因此多了决策树状态绑定. steps/deltas.sh Usage: steps/train_deltas. ...

  6. 从0开始学习kaldi决策树绑定+三音素

    从0开始的Kaldi决策树绑定+三音素 这个博客主要介绍了三音素GMM的原理以及Kaldi对其的实现,由于没有分篇幅所以全篇较长 三音素GMM 在单音素GMM中,我们对每一个音素建立一个HMM模型,并 ...

  7. kaldi学习笔记-三音素训练2

    本文介绍三音素训练部分. 上篇文章已经提到了如何对三音素聚类,构建决策树,接下来进行对三音素中各个GMM进行训练.三音素训练部分和单音素大致相同,都是运用EM算法进行参数的更新,具体部分可以看单音素训 ...

  8. Kaldi三音素GMM学习笔记

    建议在csdn资源页中免费下载该学习笔记的PDF版进行阅读:)点击进入下载页面 Kaldi三音素GMM学习笔记 三音素GMM与单音素GMM的主要差别在于决策树状态绑定,与GMM参数更新相关的原理.程序 ...

  9. kaldi 学习笔记-三音素训练1(Decision Tree)

    开始介绍kaldi三音素训练大致流程.本文主要介绍决策树(Decision Tree)部分. 1. acc-tree-stats Usage: acc-tree-stats [options] < ...

最新文章

  1. JPTagView-多样化的标签View
  2. 怎么样做一个合格而又可爱的面试官
  3. 在测试时用到的一些mysql的小技巧(持续更新)
  4. 每日一皮:别放弃,再坚持一下就到成功的彼岸...
  5. SQL查询入门(中篇)
  6. object-c 1
  7. 【最强VSCode】之管理MySql数据库
  8. [Leedcode][JAVA][第4题][寻找两个正序数组中的中位数][二分查找][双指针]
  9. 如何写年终总结(转)
  10. h5离线缓存与浏览器缓存的区别
  11. 【路径规划】基于matlab GUI改进的遗传算法机器人栅格地图避障路径规划【含Matlab 703期】
  12. 521. 最长特殊序列 Ⅰ
  13. IE条件注释意义及用法
  14. win10安装mysql8.0,一台电脑上安装多个mysql
  15. C语言简单五子棋两人/五子棋人机
  16. winform做的单机登录界面和账号注册界面
  17. 【浅谈】我所理解的游戏场景设计:身临其境
  18. 关于计算机的优点英语作文,初三英语作文电视电脑的优缺点
  19. 浅析计算机网络技术相关论文,计算机网络技术浅析论文 - 经典论文
  20. 【git push指令提交项目报错】 fatal: unable to access ‘https://github.com/xxxxx/xxx.git/‘: OpenSSL SSL_read: Co

热门文章

  1. 运用SolidWorks三维图型转二维图时的三视图倾斜问题(三维图的基准面不正确)
  2. VSC++读取.cfg文件
  3. 实战1:爬取轻音乐网歌曲
  4. 蓝牙锁定计算机,Windows10创意者如何启用动态蓝牙锁功能?
  5. java有效 javac无效_javac无效标志
  6. java做一个mud_我应该如何处理Java MUD中的持久性? Optimis...
  7. 成功激活了Win10正式专业版系统。
  8. Setup Factory卸载前关闭正在运行的程序
  9. win7自带硬盘分区工具
  10. 如何下载淘宝主图视频和微信公众号文章中的视频