使用口袋Sphinix进行语音识别的准确度很差
我已经从http://ucla.jamesyxu.com/?p=118运行pocketsphinix演示例子。但是,我发现文字识别的准确性非常差。我从pocketsphinix8.0复制声学模型... pocketsphinx model hmm和.. lm文件夹到手机的SD卡。它识别有限的几个单词而不是句子。 我的问题如下
1)我如何提高准确性?
2)是否需要改变声学模型和字典(在hmm和lm文件夹中)如果是,我怎样才能改变模型和字典。是否有任何其他程序需要遵循添加模型和字典。 我也从下面的链接改变字典(美国英语HUB4语言模型 - 只是复制lm文件夹中的字典文件不会在hmm文件夹中更改)
http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/
3)如何将音频文件作为输入而不是录制的语音?
另外,我试图将音频文件转换为输入。 我正在读取音频文件如下(这里,在sphinix4 lib中使用.wav文件转录演示文件“10001-90210-01803.wav”发音数字的准确性,但无法识别单个单词并将其转换为不正确的文本)。
int readAudioFile(){
this.done=true;
AssetManager mngr = context.getAssets();
InputStream io = null;
int current = 0;
try {
io= mngr.open("10001-90210-01803.wav");
//Create a DataInputStream to read the audio data from the saved file
DataInputStream dis = new DataInputStream(io);
int noOfByteToRead=io.available();
int noOfShortToRead=noOfByteToRead/2;
short[] music = new short[noOfShortToRead];
int i = 0; // Read the file into the "music" array
try {
while (dis.available() > 0)
{
music[i] = dis.readShort();
i++;
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.i("123",""+Arrays.toString(music));
this.q.add(music);
try {
dis.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e1) {
e1.printStackTrace();
}
return current;
}
1)。 穷人得到什么样的准确性? 首先你看到了多少百分比的单词错误,其次,你能给我们说一些你说的单词和给出的输出吗? 正如Praful所说,一个完善的文件转录将是非常有用的。
另外,你是否尝试过运行默认应用程序,并且看看它是否会产生类似的糟糕结果?
2)。 您可以按照以下步骤构建自己的字典:http://ucla.jamesyxu.com/?p=121
我也有使用该库的一些注意事项(我们使用它进行了几项研究,每个〜20个科目):
我收到通知是因为谷歌提醒我你的链接与我的域名相匹配
链接地址: http://www.djcxy.com/p/34363.html上一篇: Accuracy is poor in speech recognition using pocket Sphinix