上下文相关音素-状态绑定
2017-03-08 15:53
288 查看
在发音过程中,因为协同发音的影响,同一个音素在不同的位置,其发音变化很大,如下图所示:
同样的元音[eh]在不同的单词中的发音在频域上区分非常明显。
因为单音素monophone 是上下文独立的(context-independent)
为了能够表示这种区别,因此提出了triphone的概念,triphone是根据左右音素来确定的,因此是上下文相关的(context-dependent)
上图中:W对应的是词组;Q对应的是monophone;L对应的就是triphone;P对应聚类或者状态绑定之后的triphone
接下来本文就要讨论triphone聚类/状态绑定的过程。
聚类过程有2中,一种是居于数据驱动的聚类过程,第二种是基于决策树的聚类过程,首先讨论基于数据的过程
当单音素集合中有50个音素的时候,如果展开成[x-phone+y]形式的triphone的个数则有50*50*50=125,000个,假设8变量的高斯分布有44个参数(d+(d+1)*d/2)的话,一个triphone由3状态的hmm表示,那么总triphone集合中共参数个数为:125,000*3*44=16,500,000个参数,参数迅速爆炸了,因此,需要对triphone状态进行绑定,然后进行聚类
状态绑定的含义就是状态用共同的高斯参数,这样来减少参数爆炸的问题。
HMM状态绑定过程如下:
步骤为:
1)用flat-start方式创建 monophone集合,每个状态的输出概率密度函数为单高斯概率密度,均值,方差为训练数据的全局均值和方差(上图1);
2)用EM算法迭代3-4次,对高斯参数重新进行估计(上图1);
3)每个单高斯monophone q被克隆一次,用来初始化那些在训练数据出现的,未被绑定的triphone: x-q+y(上图步骤2);
4)对这些triphone,用EM算法再次迭代,来高斯参数重新进行,同时状态j的占用数γ被计算出来(上图步骤2);
5)对每个triphone中的每一个状态,如果来自同一个monophone,则相应的状态被聚类,在每个聚好的类中,选择一个状态作为典型,同类中的状态绑定到这个状态(上图步骤3);
6)绑定完成之后,对步骤5中的所有triphone的高斯参数再次进行EM迭代同时增加高斯混合模型中的组件(components),直到组件个数达到设定的预期或者性能达到测试预期。(上图步骤4)
上面过程简单总结就是:
monophone训练->monophone克隆->同样的状态进行绑定->增加混合高斯模型个数到设定值
状态绑定之后需要对triphone进行聚类,
聚类方法有两种,一种是基于data-driven的方法,第二种是基于决策树的方法。
基于data-driven的方法是根据状态的均值和方差进行聚类,这种方法的缺点是训练数据中未出现过的的triphone没有办法处理
接下来就要讨论第二种方法,triphone决策树聚类。
同样的元音[eh]在不同的单词中的发音在频域上区分非常明显。
因为单音素monophone 是上下文独立的(context-independent)
为了能够表示这种区别,因此提出了triphone的概念,triphone是根据左右音素来确定的,因此是上下文相关的(context-dependent)
上图中:W对应的是词组;Q对应的是monophone;L对应的就是triphone;P对应聚类或者状态绑定之后的triphone
接下来本文就要讨论triphone聚类/状态绑定的过程。
聚类过程有2中,一种是居于数据驱动的聚类过程,第二种是基于决策树的聚类过程,首先讨论基于数据的过程
当单音素集合中有50个音素的时候,如果展开成[x-phone+y]形式的triphone的个数则有50*50*50=125,000个,假设8变量的高斯分布有44个参数(d+(d+1)*d/2)的话,一个triphone由3状态的hmm表示,那么总triphone集合中共参数个数为:125,000*3*44=16,500,000个参数,参数迅速爆炸了,因此,需要对triphone状态进行绑定,然后进行聚类
状态绑定的含义就是状态用共同的高斯参数,这样来减少参数爆炸的问题。
HMM状态绑定过程如下:
步骤为:
1)用flat-start方式创建 monophone集合,每个状态的输出概率密度函数为单高斯概率密度,均值,方差为训练数据的全局均值和方差(上图1);
2)用EM算法迭代3-4次,对高斯参数重新进行估计(上图1);
3)每个单高斯monophone q被克隆一次,用来初始化那些在训练数据出现的,未被绑定的triphone: x-q+y(上图步骤2);
4)对这些triphone,用EM算法再次迭代,来高斯参数重新进行,同时状态j的占用数γ被计算出来(上图步骤2);
5)对每个triphone中的每一个状态,如果来自同一个monophone,则相应的状态被聚类,在每个聚好的类中,选择一个状态作为典型,同类中的状态绑定到这个状态(上图步骤3);
6)绑定完成之后,对步骤5中的所有triphone的高斯参数再次进行EM迭代同时增加高斯混合模型中的组件(components),直到组件个数达到设定的预期或者性能达到测试预期。(上图步骤4)
上面过程简单总结就是:
monophone训练->monophone克隆->同样的状态进行绑定->增加混合高斯模型个数到设定值
状态绑定之后需要对triphone进行聚类,
聚类方法有两种,一种是基于data-driven的方法,第二种是基于决策树的方法。
基于data-driven的方法是根据状态的均值和方差进行聚类,这种方法的缺点是训练数据中未出现过的的triphone没有办法处理
接下来就要讨论第二种方法,triphone决策树聚类。
相关文章推荐
- 如何在GridView中根据状态绑定相关图片(如1为对号,2为叉)
- GridView相关总结(主键绑定 行高亮 状态替换 多余字符...替代 详情查看 )
- 。。。。如果由于未处于活动状态导致服务中止了该通道,则安全上下文令牌无效。若要防止服务永久中止闲置会话,请增加服务终结点绑定上的接收超时。
- 应用HTK搭建语音拨号系统3:创建绑定状态的三音素HMM模型
- 上下文相关音素-决策树聚类
- Ubuntu默认防火墙安装、启用、配置、端口、查看状态相关信息
- 事务控制---6.8.3: 上下文相关的Session
- .NET 开发中数据库字段状态绑定到DataGrid的方法(2005-6-15)
- MySQL锁定状态查看相关命令
- Spring框架中提供了它自己的标签库,可以和相关的组建相结合,可以提供页面表单组件、错误信息的数据绑定等功能。
- xamarin.forms使用stacklayout自定义列表及相关加载状态处理。
- GridView1里面的 当本行在编辑状态下 就变成下拉框 并且绑定了 数据
- DataSet数据绑定到控件时的数据状态变化过程
- Hibernate之Session对象的相关方法以及持久化对象的状态
- JPA持久化上下文与对象状态
- DevExpress XtraGird 数据绑定与新加行相关
- 绘制上下文,一次设置,永远生效,保存,回复绘图状态
- 进程上下文和处理器状态切换
- init.rc 状态服务器相关语法分析
- Android开发实现沉浸式状态栏相关blog