Kaldi 入门详解

train_mono.sh 是音素训练脚本,下面详细介绍各个功能:

这部分是训练用参数,调用mono.sh时可以通过 –name value的方式改变这些参数.

nj=4   并行个数
cmd=run.pl   处理程序
scale_opts="--transition-scale=1.0 --acoustic-scale=0.1 --self-loop-scale=0.1"
num_iters=40     **  Number of iterations of training  训练循环次数
max_iter_inc=30  **  Last iter to increase  ** Gauss on.  每个循环里增加的高斯数
totgauss=1000  **  Target  ** Gaussians.   总高斯数(可能难理解,但可以这么解释:比如有3状态HMM,每个状态用4组均值方差描述(GMM混合数是4个意思),那总共用了12个高斯,kaldi里不用具体指定GMM个数,而指定整个系统中总共需要多少个单高斯)
careful=false
boost_silence=1.0  **  Factor by which to boost silence likelihoods in alignment
realign_iters="1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 23 26 29 32 35 38";  循环到这个数时做对其
config=  **  name of config file. 
stage=-4  
power=0.25  **  exponent to determine number of gaussians from occurrence counts
norm_vars=false  **  deprecated, prefer --cmvn-opts "--norm-vars=false"
cmvn_opts=   **  can be used to add extra options to cmvn.
 **  End configuration section.

echo "$0 $@"   **  Print the command line for logging

- - name value 参数处理

if [ -f path.sh ]; then . ./path.sh; fi
. parse_options.sh || exit 1;

* - -name 以外的参数必须有3个,否则报错*

if [ $ **  != 3 ]; then
  echo "Usage: steps/train_mono.sh [options] <data-dir> <lang-dir> <exp-dir>"
  echo " e.g.: steps/train_mono.sh data/train.1k data/lang exp/mono"
  echo "main options (for others, see top of script file)"
  echo "  --config <config-file>                            **  config containing options"
  echo "  --nj <nj>                                         **  number of parallel jobs"
  echo "  --cmd (utils/run.pl|utils/queue.pl <queue opts>)  **  how to run jobs."
  exit 1;
fi

data=$1  ** 第一个参数是训练数据所在的目录 ** 
lang=$2 ** 第二个参数是语言模型所在的目录 ** 
dir=$3   ** 第一个参数是日志和最终目标文件输出目录 ** 

oov_sym=`cat $lang/oov.int` || exit 1;

* 训练数据根据–nj 参数分割,用于并行处理 *

mkdir -p $dir/log
echo $nj > $dir/num_jobs
sdata=$data/split$nj;
[[ -d $sdata && $data/feats.scp -ot $sdata ]] || split_data.sh $data $nj || exit 1;


$norm_vars && cmvn_opts="--norm-vars=true $cmvn_opts"
echo $cmvn_opts  > $dir/cmvn_opts  **  keep track of options to CMVN.

**这里可能第一个难理解的地方,但仔细分析也不难
首先这个是一个feats变量定义,这个变量作为后续其他命令的参数,这个主要处理特征数据的。
这里用到了两个kaldi函数,apply-cmvn 和 add-deltas
apply-cmvn 的输入3个文件:
–utt2spk=ark: sd

  • 9
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值