CMU Sphinx适应几个词

时间:2013-10-01 08:28:20

标签: speech-recognition cmusphinx

我正在尝试将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文件。 btw转录:     &LT; S取代;停止&lt; / S取代; (arctic_0001)     &LT; S取代;左&lt; / S取代; (arctic_0002)     &LT; S取代;对&lt; / S取代; (arctic_0003)     &LT; S取代;去&lt; / S取代; (arctic_0004) 我添加了空格,所以在这里它不作为代码读取 字典和文件ID也没关系

由于

P.S。感谢dariusz,但它仍然无法正常工作

2 个答案:

答案 0 :(得分:1)

很难确定在这样一个复杂的过程中发生了什么。

您应该做的是设置可重复的测试用例并使用它来验证您的进度。它应该包含至少100个测试句子(在您的情况下,单词)。可以使用sphinx see this link

来完成

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

另一个问题是训练数据 - 我可能错了,但我认为这样短的单字音频文件不适合调整模型。我建议使用更长的文件,即使这意味着重复多次相同的单词。只要确保你说得恰到好处,并在单词之间留出清晰的空格。

答案 1 :(得分:1)

你根本不应该使用MAP。 MAP适应需要更大量的适应数据,因为它修改了模型中的所有参数。你将有更好的机会使用MLLR,可以在sphinx中使用,这里是教程:http://cmusphinx.sourceforge.net/wiki/tutorialadapt