我正在尝试使 wsj 模型适应 undersrand 我只有 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文件。顺便说一句,转录: 停止 (arctic_0001) 左 (arctic_0002) right (arctic_0003) go (arctic_0004)我添加了空格,以便在这里它不会读作代码字典和文件ID也可以
谢谢
附言感谢大流士,但它仍然不起作用
确定在如此复杂的过程中会发生什么。
您应该做的是设置一个可重复的测试用例并使用它来验证您的进度。它应该包含至少 100 个测试句子(在您的情况下是单词)。可以用狮身人面像来完成,请参阅此链接
只有在准备好测试后,才能继续更改声学模型或语法。将您所做的每项更改与原始(未修改的模型)精度进行比较。然后你就会知道哪些步骤是好的,哪些是坏的。
另一件事是训练数据 - 我可能是错的,但我认为这么短的单字音频文件并不是适应模型的最佳选择。我建议使用更长的文件,即使这意味着多次重复相同的单词。只要确保你说的量恰到好处,并在单词之间留出清晰的空格。
你根本不应该使用 MAP。MAP适应需要大量的适应数据,因为它会修改模型中的所有参数。 您将有更好的机会使用MLLR,它在狮身人面像中可用,这是教程:http://cmusphinx.sourceforge.net/wiki/tutorialadapt