Speech recognition CMU Sphinx对几个词的改编

Speech recognition CMU Sphinx对几个词的改编,speech-recognition,cmusphinx,Speech Recognition,Cmusphinx,我正在尝试改编《华尔街日报》的模式,使其只对我写的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-i

我正在尝试改编《华尔街日报》的模式,使其只对我写的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
#/bin/bash
对于{1..4}中的i
做
fn=`printf北极_U04d$i`;
读发送;回音$已发送;
rec-r 16000-e有符号整数-b 16-c 1$fn.wav 2>/dev/null;
完成
我一遍又一遍地运行它 然后我清理并构建项目,并运行helloworld演示,我在那个里修改了.gram文件。 btw转录: 停止(北极地区0001) 左(北极地区) 右(北极_0003) 围棋(北极) 我添加了空格,这样它就不会在这里读代码了 字典和文件ID也可以

谢谢


另外,多亏了dariusz,但它仍然不起作用

很难确定在如此复杂的过程中会发生什么

您应该做的是设置一个可重复的测试用例,并使用它来验证您的进度。它应该包含至少100个测试句子(单词,在你的例子中)。这可以用斯芬克斯完成

只有在测试准备就绪后,才能继续对声学模型或语法进行更改。将您所做的每个更改与原始(未修改的模型)精度进行比较。然后你就会知道哪些步骤是好的,哪些步骤是坏的


另一件事是训练数据——我可能错了,但我认为这样短的一个单词的音频文件不是适应模型的最佳方式。我建议使用更长的文件,即使这意味着重复同一个单词数次。只需确保你说的话准确无误,字里行间留有空格。

你根本不应该使用MAP。地图自适应需要大量的自适应数据,因为它会修改模型中的所有参数。您将有更好的机会使用MLLR,它在sphinx中提供,以下是教程:

rec-r 16000
正确吗?难道你不应该使用
8000
?我更正了它,仍然不起作用,请看:)很遗憾,你对短音频文件的看法是错误的。问题不在于大小,如果最终应用程序能够识别短单词,也可以适应短单词。@NikolayShymyrev我不是说适应短单词不好-我是说SphinxTrain可能在处理非常短的音频文件的培训时遇到问题。我没有证据,但这是我在改编(后来创建)自己的声学模型时的印象。长时间的训练序列(例如一整句话)会产生更好的效果。这只是你的印象。如果您适应识别短命令,则需要在适应数据中使用短命令。