Kaldi脚本分析(3)——单音素建模

本文详细介绍了Kaldi中单音素建模的步骤,包括特征倒谱归一化、模型初始化、预编译训练图模型、第一次对齐和求累积统计量以及模型的更新过程。通过对脚本steps/train_mono.sh的逐项分析,揭示了Kaldi如何构建和训练单音素模型,涉及到关键的命令行工具如gmm-init-mono、compile-train-graphs、align-equal-compiled等。
摘要由CSDN通过智能技术生成

1.1单音素模型脚本流程

单音素建模脚本(steps/train_mono.sh):

#monophone

steps/train_mono.sh--boost-silence 1.25 --nj$n --cmd "$train_cmd" data/mfcc/train data/lang exp/mono \

 || exit 1;

输出在exp/mono中,下面按脚本train_mono.sh运行流程逐项说明。

 

1.1.1       特征倒谱归一化(Cepstralnormalization)

exp/mono/cmvn.logexp/mono/cmvn.ark:对每个说话人,计算归一化倒谱均值和方差的统计值

#cepstralnormalization

#feature: add"delta" and "accelaration", dim = 39

feats="ark,s,cs:apply-cmvn$cmvn_opts --utt2spk=ark:$sdata/JOB/utt2spkscp:$sdata/JOB/cmvn.scp scp:$sdata/JOB/feats.scp ark:- | add-deltas ark:- ark:- |"

example_feats="`echo$feats| sed s/JOB/1/g`";

 

1.1.2       模型初始化(Modelinitialization)

#modelinitialization

#options used toget plausible means and variances

#tree isphonetic-context decision tree-- doesn’t have any splits in monophone case.

$cmd JOB=1$dir/log/init.log \

    gmm-init-mono $shared_phones_opt"--train-feats=$feats subset-feats --n=10 ark:- ark:-|"$lang/topo$feat_dim  $dir/0.mdl $dir/tree || exit 1;

  • 运行log:exp/mono/log/init.log
  • 调用gmm-init-mono命令行工具,即gmm-init-mono.cc中的函数。

gmm-init-mono<topology-in> <dim> <model-out> <tree-out>

  • 双引号中为一些命令行选项,确保求得的均值方差是可行的。
  • 输入:HMM拓扑文件data/lang/topo和GMM特征维度39。
  • 输出:模型文件exp/mono/0.mdl和决策树exp/mono/tree。

 

注1:单音素决策树


--可以通过copy-tree命令行工具查看音素上下文决策树文件。

--决策树文件中存储的是多态类型对象EventMap。

--TE指的是TableEventMap,表示树的各种节点的查询Table。

--CE指的是ConstantEventMap,表示树的叶子节点。

--SE指的是SplitEventMap,表示树的分支,而在单音素模型中不需要做split处理。

--“TE 0 219”表示从第0个音素开始分裂,这里0指向NULL,因为phone-id中0是为epsilon保留的。随后是219个non-NULL event map。

--“TE -1 3 ( CE5 CE 6 CE 7 ) ”这个字符串表示一个音素的分裂从key-1开始,这个key表示拓扑结构中的pdfclass,在这里也就是HMM状态,其中,-1是初始状态,0、1、2是 HMM 中间的转移状态,3 是结束状态。中间的3个转移状态可以有对应的CE,每一个表示决策树的一个叶子节点。

 

注2:HMM拓扑文件

--可以通过cat data/lang/topo查看。

--给定了所有非静音音素的3状态left-to-right型HMM结构,并给出了开始训练前默认的状态转移概率。

--静音音素单独给出了5状态的HMM结构,具有更多的状态转移。

 

注3:模型文件0.mdl

--通过gmm-copy命令行工具查看模型文件gmm-copy --binary=false exp/mono/0.mdl - | less

--模型文件中包含两部分,一部分是TransitionModel(转移模型),其中包含HMM拓扑结构、triples以及转移概率;另一部分是AmGmm(声学模型)。模型文件中的对象都不是Table,所以直接通过Read/W

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值