3

私は wsj モデルを適応させて、私から 4 単語だけを取得しようとしています。bash ファイルを作成し、20 回近く試行しましたが、実行して「停止」と言うと、最大 90% 失敗します。これが私のbashファイルです。教えてください。何か間違ったことをしていますか、それとも100回など、さらに多くのトレーニングが必要ですか?

#!/bin/bash

for i in {1..4}
do 
       fn=`printf arctic_%04d $i`; 
       read sent; echo $sent; 
       rec -r 16000 -e signed-integer -b 16 -c 1 $fn.wav 2>/dev/null; 
done < arctic20.txt

sphinx_fe -argfile Model/feat.params \
   -samprate 16000 -c arctic20.fileids -di . -do . \
   -ei wav -eo mfc -mswav yes



bw/bw \
   -hmmdir Model \
   -moddeffn Model/mdef \
   -ts2cbfn .cont. \
   -feat 1s_c_d_dd \
   -cmn current \
   -agc none \
   -dictfn arctic20.dic \
   -ctlfn arctic20.fileids \
   -lsnfn arctic20.transcription \
   -accumdir .



cp -a Model/* Model.adapted

map_adapt/map_adapt \
    -meanfn Model/means \
    -varfn Model/variances \
    -mixwfn Model/mixture_weights \
    -tmatfn Model/transition_matrices \
    -accumdir . \
    -mapmeanfn Model.adapted/means \
    -mapvarfn Model.adapted/variances \
    -mapmixwfn Model.adapted/mixture_weights \
    -maptmatfn Model.adapted/transition_matrices

cp -r Model.adapted/* ~/NetBeansProjects/sphinx4-1.0beta6/models/acoustic/wsj


cp -r Model.adapted/* Model

そして、私はそれを何度も実行しています。プロジェクトをクリーンアップしてビルドし、helloworld デモを実行するよりも、そこで .gram ファイルを変更しました。ところで転写: < s> 停止 < /s> (arctic_0001) < s> 左 < /s> (arctic_0002) < s> 右 < /s> (arctic_0003) < s> 行く < /s> (arctic_0004) スペースを追加しましたここではコードとして読み込まれないように、辞書とファイル ID も問題ありません

ありがとう

PS dariusz に感謝しますが、それでも機能しません

4

2 に答える 2

1

このような複雑なプロセスで何が起こるかを判断することは非常に困難です。

あなたがすべきことは、反復可能なテスト ケースを設定し、それを使用して進捗状況を確認することです。少なくとも 100 個のテスト センテンス (この場合は単語) を含める必要があります。スフィンクスで実行できます。このリンクを参照してください

テストの準備が整ったら、音響モデルまたは文法の変更に進みます。行った各変更を元の (変更されていないモデル) 精度と比較します。そうすれば、どのステップが良いのか、どのステップが悪いのかがわかります。

もう 1 つはトレーニング データです。間違っているかもしれませんが、このような短い 1 語の音声ファイルは、モデルを適応させるのに最適ではないと思います。同じ単語を数回繰り返すことを意味する場合でも、より長いファイルを使用することをお勧めします。正確に適切な量を話し、単語間にスペースを空けるようにしてください。

于 2013-10-01T11:16:17.857 に答える