从单音素到三音素模型
参考文章:
《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)什么是音素? 以前的音标现在也可以叫音素,而且现在正广泛的把音标叫音素. 每一种语言中的音素都是不一样的,即使是同种语言中,方言的音素也是不一样的 ...
- 传统语音识别介绍【五】—— 单音素和三音素
一.音素(单音素) 音素(phone),是根据语音的自然属性划分出来的最小语音单位,依据音节里的发音动作来分析,一个动作构成一个音素.音素分为元音与辅音两大类.如汉语音节 ā(啊)只有一个音素,ài( ...
- 语音识别common1(音素,三音素)
语音是一个连续的音频流,它是由大部分的稳定态和部分动态改变的状态混合构成. 一个单词的发声(波形)实际上取决于很多因素,而不仅仅是音素,例如音素上下文.说话者.语音风格等: 协同发音(指的是一个音受前 ...
- 语音识别补充(一)(音素,三音素)
语音是一个连续的音频流,它是由大部分的稳定态和部分动态改变的状态混合构成.一个单词的发声(波形)实际上取决于很多因素,而不仅仅是音素,例如音素上下文.说话者.语音风格等: 协同发音:(指的是一个音受前 ...
- 《kaldi语音识别实战》阅读笔记:三音素模型训练—train_deltas.sh解析
一.使用说明 1.1 描述 训练三音素模型.与单音素模型训练相比,因为建模单元变为三音素,因此多了决策树状态绑定. steps/deltas.sh Usage: steps/train_deltas. ...
- 从0开始学习kaldi决策树绑定+三音素
从0开始的Kaldi决策树绑定+三音素 这个博客主要介绍了三音素GMM的原理以及Kaldi对其的实现,由于没有分篇幅所以全篇较长 三音素GMM 在单音素GMM中,我们对每一个音素建立一个HMM模型,并 ...
- kaldi学习笔记-三音素训练2
本文介绍三音素训练部分. 上篇文章已经提到了如何对三音素聚类,构建决策树,接下来进行对三音素中各个GMM进行训练.三音素训练部分和单音素大致相同,都是运用EM算法进行参数的更新,具体部分可以看单音素训 ...
- Kaldi三音素GMM学习笔记
建议在csdn资源页中免费下载该学习笔记的PDF版进行阅读:)点击进入下载页面 Kaldi三音素GMM学习笔记 三音素GMM与单音素GMM的主要差别在于决策树状态绑定,与GMM参数更新相关的原理.程序 ...
- kaldi 学习笔记-三音素训练1(Decision Tree)
开始介绍kaldi三音素训练大致流程.本文主要介绍决策树(Decision Tree)部分. 1. acc-tree-stats Usage: acc-tree-stats [options] < ...
最新文章
- JPTagView-多样化的标签View
- 怎么样做一个合格而又可爱的面试官
- 在测试时用到的一些mysql的小技巧(持续更新)
- 每日一皮:别放弃,再坚持一下就到成功的彼岸...
- SQL查询入门(中篇)
- object-c 1
- 【最强VSCode】之管理MySql数据库
- [Leedcode][JAVA][第4题][寻找两个正序数组中的中位数][二分查找][双指针]
- 如何写年终总结(转)
- h5离线缓存与浏览器缓存的区别
- 【路径规划】基于matlab GUI改进的遗传算法机器人栅格地图避障路径规划【含Matlab 703期】
- 521. 最长特殊序列 Ⅰ
- IE条件注释意义及用法
- win10安装mysql8.0,一台电脑上安装多个mysql
- C语言简单五子棋两人/五子棋人机
- winform做的单机登录界面和账号注册界面
- 【浅谈】我所理解的游戏场景设计:身临其境
- 关于计算机的优点英语作文,初三英语作文电视电脑的优缺点
- 浅析计算机网络技术相关论文,计算机网络技术浅析论文 - 经典论文
- 【git push指令提交项目报错】 fatal: unable to access ‘https://github.com/xxxxx/xxx.git/‘: OpenSSL SSL_read: Co
热门文章
- 运用SolidWorks三维图型转二维图时的三视图倾斜问题(三维图的基准面不正确)
- VSC++读取.cfg文件
- 实战1:爬取轻音乐网歌曲
- 蓝牙锁定计算机,Windows10创意者如何启用动态蓝牙锁功能?
- java有效 javac无效_javac无效标志
- java做一个mud_我应该如何处理Java MUD中的持久性? Optimis...
- 成功激活了Win10正式专业版系统。
- Setup Factory卸载前关闭正在运行的程序
- win7自带硬盘分区工具
- 如何下载淘宝主图视频和微信公众号文章中的视频