您的位置:首页 > 其它

kaldi实例脚本运行

2017-09-08 14:42 1051 查看

Gettingstarted,andprerequisites.

rm/s5/run.sh

Datapreparation

如果有GridEngine,
train_cmd="queue.pl-qall.q@a*.clsp.jhu.edu"
decode_cmd="queue.pl-qall.q@[ah]*.clsp.jhu.edu"

如果需要在本地运行
train_cmd="run.pl"
decode_cmd="run.pl"

创建训练集和测试集

local/rm_data_prep.sh/export/corpora5/LDC/LDC93S3A/rm_comp
生成如下:
local:Containsthedictionaryforthecurrentdata.包含当前数据的发音词典train:Thedatasegmentedfromthecorporafortrainingpurposes.训练数据的seg标注信息test_*:Thedatasegmentedfromthecorporafortestingpurposes.测试数据的seg标注信息
cdlocal/dict
headlexicon.txt
headnonsilence_phones.txt
headsilence_phones.txt

/train和/test结构相同

headtext
headspk2gender.map
headspk2utt
headutt2spk
headwav.scp

wctrain/texttest_feb89/text比较训练集和测试集的词数,文件大小

下一步创建原始的语言文件
utils/prepare_lang.shdata/local/dict'!SIL'data/local/langdata/lang
这将会产生一个lang的文件夹,里面包含一个FST描述语言文件,输出文件夹(data/lang).

words.txtandphones.txt(data/lang/)被会用到,它们是openfst格式的符号表,代表从一个字符串到整数
的映射,

suffix.csl(indata/lang/phones)non-silence,andsilence,phones整数id键值对列表
phones.txt(indata/lang/)音素符号表,处理FST的歧义符号,这些符号会被替换成#1,#2

L.fst是编译后的lexiconFST格式。
用下面的命令可以查看L.fst的内容

fstprint--isymbols=data/lang/phones.txt--osymbols=data/lang/words.txtdata/lang/L.fst|head

如果没有找到fstpirnt命令,则需要将OPenFst添加到PATH环境,或者简单点执行../path.sh

下一步使用上一步创建的文件,创建一个FST描述语法

local/rm_prepare_grammar.sh,将会产生/data/lang/G.fst.


Featureextraction

Monophonetraining

输出文件夹:

exp/mono

nohupsteps/train_mono.sh--nj4--cmd"$train_cmd"data/train.1kdata/langexp/mono&

tailnohup.out
data/lang/topo立即创建,1个音素的内部状态转移topo
data/phones.txt音素音素id

查看生成的模型文件0.mdl

gmm-copy--binary=falseexp/mono/0.mdl-|less

mdlfile包含两个对象,1个对象TransitionModel,它包含HMM拓扑信息;1个对象包含模型类型

查看tree文件

copy-tree--binary=falseexp/mono/tree-|less
单音素的tree,它没有任何的splits。

exp/mono/ali.1.gz

copy-int-vector"ark:gunzip-cexp/mono/ali.1.gz|"ark,t:-|head-n2
这是训练数据的维特比对其,对于每个训练文件都有1行。对齐文件里面有许多数字,都是特别大,它里面并不包含pdf的id,而是transition-id,它以音素的
topo原型,编码音素和transition,这是非常有用的,如果想查看transitions信息,则如下命令:

show-transitionsdata/lang/phones.txtexp/mono/0.mdl
为了更清晰的查看对齐,可以用下面的命令

show-alignmentsdata/lang/phones.txtexp/mono/0.mdl"ark:gunzip-cexp/mono/ali.1.gz|"|less

查看训练过程;匹配log文件overall关键字行
grepOverallexp/mono/log/acc.{?,??}.{?,??}.log

当单音素训练完毕,可以进行解码测试,如下命令
utils/mkgraph.sh--monodata/langexp/monoexp/mono/graph

whichfstdeterminizestar
在图创建完后,开始解码

steps/decode.sh--configconf/decode.config--nj20--cmd"$decode_cmd"\
exp/mono/graphdata/testexp/mono/decode

lessexp/mono/decode/log/decode.2.log

从2.tra文件里查看真实的解码词序列,命令:
words.txt包含了词与int的关系

utils/int2sym.pl-f2-data/lang/words.txtexp/mono/decode/scoring/2.tra

查看真实的解码词序列,然后再转换回整型:

utils/int2sym.pl-f2-data/lang/words.txtexp/mono/decode/scoring/2.tra|\

utils/sym2int.pl-f2-data/lang/words.txt将符号转换成整数

tailexp/mono/decode/log/decode.2.log查看decode.2.log结尾一些总结性信息


gmm-decode-faster

DecodefeaturesusingGMM-basedmodel.


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: