Kaldiに関する処理を日本語のドキュメントでまとめてみた(デコーディング編)6
前回
1:http://qiita.com/GushiSnow/items/cc1440e0a8ea199e78c5
2:http://qiita.com/GushiSnow/items/a24cad7231de341738ee
3:http://qiita.com/GushiSnow/items/e099baf9d1c2e72cb3d1
4:http://qiita.com/GushiSnow/items/d431a5c49dc4206def2d
5:http://qiita.com/GushiSnow/items/8e1c25b1d2eda8c1f2c3
デコーディング
音声認識の作業もデコーディングまで終われば評価を測ることが出来る。
ただし精度を上げるには他の作業も当然必要。
試しに動かすだけならここまでで問題ない。
デコーディングに必要なデータがあるか精査
if [ -z "$model" ]; then # if --model <mdl> was not specified on the command lin
e...
if [ -z $iter ]; then model=$srcdir/final.mdl;
else model=$srcdir/$iter.mdl; fi
fi
for f in $sdata/1/feats.scp $sdata/1/cmvn.scp $model $graphdir/HCLG.fst; do
[ ! -f $f ] && echo "decode.sh: no such file $f" && exit 1;
done
特徴量のタイプを指定
case $feat_type in
delta) feats="ark,s,cs:apply-cmvn $cmvn_opts --utt2spk=ark:$sdata/JOB/utt2spk scp:$sdata/JOB/cmvn.scp scp:$sdata/JOB/feats.scp ark:- | add-deltas $delta_opts ark:- ark:- |";;
lda) feats="ark,s,cs:apply-cmvn $cmvn_opts --utt2spk=ark:$sdata/JOB/utt2spk scp:$sdata/JOB/cmvn.scp scp:$sdata/JOB/feats.scp ark:- | splice-feats $splice_opts ark:- ark:- | transform-feats $srcdir/final.mat ark:- ark:- |";;
*) echo "Invalid feature type $feat_type" && exit 1;
esac
話者に応じた特徴量を抽出するfMLLRを適用
if [ ! -z "$transform_dir" ]; then # add transforms to features...
echo "Using fMLLR transforms from $transform_dir"
[ ! -f $transform_dir/trans.1 ] && echo "Expected $transform_dir/trans.1 to exist."
[ ! -s $transform_dir/num_jobs ] && \
echo "$0: expected $transform_dir/num_jobs to contain the number of jobs." && exit 1;
nj_orig=$(cat $transform_dir/num_jobs)
if [ $nj -ne $nj_orig ]; then
# Copy the transforms into an archive with an index.
echo "$0: num-jobs for transforms mismatches, so copying them."
for n in $(seq $nj_orig); do cat $transform_dir/trans.$n; done | \
copy-feats ark:- ark,scp:$dir/trans.ark,$dir/trans.scp || exit 1;
feats="$feats transform-feats --utt2spk=ark:$sdata/JOB/utt2spk scp:$dir/trans.scp ark:- ark:- |"
else
# number of jobs matches with alignment dir.
feats="$feats transform-feats --utt2spk=ark:$sdata/JOB/utt2spk ark:$transform_dir/trans.JOB ark:- ark:- |"
fi
GMMからラティスを作成
gmm-latgen-faster$thread_string --max-active=$max_active --beam=$beam --lattice-beam=$lattice_beam \
--acoustic-scale=$acwt --allow-partial=true --word-symbol-table=$graphdir/words.txt \
$model $graphdir/HCLG.fst "$feats" "ark:|gzip -c > $dir/lat.JOB.gz" || exit 1;
WER SERを計算
WER:単語誤り率
SER:文章誤り率
if ! $skip_scoring ; then
[ ! -x local/score.sh ] && \
echo "Not scoring because local/score.sh does not exist or not executable." && exit 1;
local/score.sh --cmd "$cmd" $scoring_opts $data $graphdir $dir
fi
出力されたWER SERは下記のフォルダにある。
kaldi-trunk/exp/mono/decode/
Author And Source
この問題について(Kaldiに関する処理を日本語のドキュメントでまとめてみた(デコーディング編)6), 我々は、より多くの情報をここで見つけました https://qiita.com/GushiSnow/items/01296c16f0d9d823ae55著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .