Kaldi三音素GMM学习笔记

所需积分/C币:35 2017-04-13 20:34:52 1.35MB PDF
收藏 收藏 3
举报

在这个笔记中,我会首先介绍表示HMM的类HmmTopology和TransitionModel,然后介绍三音素GMM训练脚本train_deltas.sh用到的几个程序,这几个程序与单音素GMM的不同或者只在三音素GMM训练中出现。与GMM相关的其余部分请参考单音素GMM学习笔记。
/// transition-state Vector<BaseFloat> non self loop log_ probs /// This is actually one plus the highest-numbered pdf we ever got back from the /// tree(but the tree numbers pdfs contiguously from zero so this is the number ///of pdfs t32 num pdfs 构造函数的调用过程如下两图所示 Hmm/opdogy to vaate /ettor<tuple> to Transi tionMlodlel vector<int> stated Const ructe良高 坐成vedo<it>idsa vector<Flaat> /og-Probs- t32 hui Compute Deri In:tialize probs hw. stafe foriwcnd-pdr Compute tuples(tkp)一如 HD)每个率 4M一招图中每个Hm状 5P如x相同 om pute Tuples ls Hmm( /. num. p4-如85每个毒所(35) 2.p-n7→)t< vetospairkiwt,)b速行凑,3 每个是设时含所有(=,p,ck 中司54d 3. to. hmm-state list (pie, pdf class) nog hmm- stote list 个同?不就时于 (,+-h)y 0,)2) 4群个 (0.12) 对1两等个如,对m) 中 0,2 paF编3 k保售是 一米=ckc所对 编影 trans-stule/-basea ase 2 Compute Derived te2).和 3水2tan 2 tuples. trans. stale 进行引 B() 有少少ty 用却0中指棉数个+A年着,2个 书,其计和2 2的-p0 (51,5PN),短某 m化-pD 用( Compute Derived pr() 215×3+2×2=607个 数Cmb,p (b2a(回连stoe 第个te5-ad -b9p-9=-0 由-5toe行 trans-id 2state tuple - trans-state Tuple trans-inde Topology Entr 下面我们对 train deltas. sh中与三音素GMM相关的几个程序逐个进行说明。 gmm-init-model 示例:gmm-nit- model tree treeacc topo1md 作用:使用决策树tre和决策树统计量 treach初始化GMM。 流程: 1.读取tre, treece, topo 2.用tree和topo初始化 Transition model trans model, trans model中保存 着每个音素和其每个状态对应的 pdf-id的 Tuple(实际为Tple 3.调用 Initam gmm初始化am_gmm;若提供 old tree filename和 old_mode! filename,调用 InitAm gmm Fromo|d()初始化am_gmm。在 nitAmgmm()中,将 stats划分到决策树的每个叶子上(对应一个pdf),用 该pdf对应的 stats的 count、x、x2初始化该pd对应的 Diag gmm的参 数 weight、 means_ invvars_、 inv vars和 gconsts 4.若指定参数- write-OCCS=1.ocs,调用 Getoccs0得到每个pdf对应的 state occupancies(也就是该pdf对应的观测的数量,或者说该pf对应的帧数), 将 state occupancies写到1ocs 5.将 trans model和 am gmn写到1md,得到初始GMM模型 gmm-mIxup 示例: gmm-mIxup- mIx-up=40001md1occs2md gmm-mixup--merge=2000 1. md 1. occs 2. md 作用:用来增加GMM混合分量的个数,或合并GMM混合分量。 流程: 1.从1md里读取 trans_ model,am_gmm,从1oc5里读取ocs 2.若 mixdown=0,对am_gmm调用 Merge By count);若mxup!=0,对 am gmm 调川 Split By Count)。 3.将 trans model和改变后的 am gmm写到1mdl AmDiag Gmm: SplitBy Counto 根据ocs,调用 AmDiaggmm: Getsplit targets()得到 am gmm中每个 Diag gmm i 应该增加到的混个分量个数 targets[]。 GetsplitTargets()对观测数最多的pd优先 增加混合分量个数(使用优先队列实现)。对每个 Diag Gmm i,根据 targets[i],调 用 Diag gmm:Spit()增加该 Diag gmm i的混合分量。 Split(对混合分量中 weights 最大的分量优先进行分割,将其权值对半分,一半留给自己一半分给新的分量 被分割分量的均值、方差相关参数直接复制给新分量,复制完后对新分量的均值、 方差相关参数加一个随机的扰动 convert-ali 由单音素GMM我们得到训练数据的对齐文件,但是单音素GMM中的 Transition Model tm1和三音素GMM中的 Transition model tm2不同,两者的每个 数据成员都不·样,所以要把用tm1的td( transition-id表示的对齐转换成tm2 的td表小的对齐。这就是 convert -ali的作用。 白想看懂 convert-al,首先要对 TransitionModel解的比较清楚。建议先搞明 M再去看该程序的代码 我个人觉得这里的核心在于:根据td能知道当前是哪个音素的哪个HMM 状态(知道td和对应的TM,由 id2state知道 t-state,由 state2id和tid只能t- idx,由 t-state索引 tuple_知道 tuple, tuple保存音素、 HMM state-id,也就知道 了这两者),而无论该特征向量所对应的tid编号怎么变化,该特征向量对应的音 素和HMM状态都是不变的 从旧的tid转换成新的tid的流程大致如下: 旧 trans-id 新 trans-id id2state Pair To transitionldo state 2id I Etrans-state 新 trans-state 不变 旧 trans- index 旧 trans- index tuple TupleToTransition Stat( 1 tuple tuple 不 Ph one Phone 不变 I Hmm-state Hmm-state 旧 pdf-id 新 pdf-id 出旧对齐知道当前的三 素,又知道 hmm-state,根 IH pdf-id 彩 pdf-id 据tree可以知道新 pdf-id 明白了上述流程之后, convert-ali的代码旧容易看懂了,这里我不再讲述细 节,只把自己当吋学习的手写笔记草稿放在这里,希望能有一定启发。 inPut/ new-m new-tree nvert-alli cc od -alignmer output new alignments 对9中每,调C ld..hi 高eu- align me t ld t overtAlignment Subosainple- fa reon (hmi 15.c) one nment 1调用5t7oes(aauk,aabt es(对 2.m 不,ne 大(等 5一元大山) start++ rt=-1 stant< phone. lenth +N rt 二Lv at>-1进入) 9]e 个元a Dhone 用 Convert Alignment Orphan 4-c;7 794214140563312 chomp dfeature- sequence: 0,0 0 ld-aliltromrid) 77 5 161/ 40 a 认为bm的d不变,y影把明 被用到 tid要td ( (如m3,b)一新 m,新山 (语折 3是,次 Convert Alignment For Phone sae,根ct 对才个甲Bx齐,转为新对 道事车p) otx dep 求北 new-Phone, wind. 第解每m对P eMph0me.ah→778 J ids net ph2axe-n→0al √-p instate tuple ,关减,知了如,高时 司个如状,也知当而和两是了 d市年,新可知适谈d是m第个 通语设3的如,声m知通当的,A知 天时(,如),那提年中区 由 convert -al得待到基于新的 Transition mode的对齐后,后面的GMM参数更 新就和单音素GMM一样,GMM参数更新就是对每一个GMM(也就是每一个 pdf)更新相应的参数。由对齐序列(td序列),我们就能找到属于每一个podf的 特征向量,用这些特征向量更新该pdf的每个分量的均值、方差和权值即可。 作者:许开拓 日期:写于2017-04-13 联系方式:540262601@gg.com

...展开详情
试读 9P Kaldi三音素GMM学习笔记
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    一个资源只可评论一次,评论内容不能少于5个字
    zawecha1 这个东西对熟悉kaldi,确实有用处.
    2018-03-04
    回复
    img
    • 分享达人

      成功上传6个资源即可获取

    关注 私信 TA的资源

    上传资源赚积分,得勋章
    最新推荐
    Kaldi三音素GMM学习笔记 35积分/C币 立即下载
    1/9
    Kaldi三音素GMM学习笔记第1页
    Kaldi三音素GMM学习笔记第2页
    Kaldi三音素GMM学习笔记第3页

    试读已结束,剩余6页未读...

    35积分/C币 立即下载 >