2

我已经从http://ucla.jamesyxu.com/?p=118运行了 pocketsphinix 演示示例。但是,我发现单词识别的准确性很差。我从 pocketsphinix8.0 ...\pocketsphinx\ 复制了声学模型model\hmm 和 ..\lm 文件夹到手机的 sdcard。它识别有限的几个单词而不是句子。我的问题如下

1)如何提高准确性?

2)如果是,是否需要更改声学模型和字典(在 hmm 和 lm 文件夹中),而不是如何更改模型和字典。是否需要遵循任何其他程序来添加模型和字典。我还从以下链接更改字典(美国英语 HUB4 语言模型 - 只需复制 lm 文件夹中的字典文件不会在 hmm 文件夹中更改)

http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/

3)我怎样才能将音频文件作为输入而不是录制的语音?

另外,我尝试将音频文件转换为输入。我正在阅读如下音频文件(此处,sphinix4 lib 转录演示文件“10001-90210-01803.wav”中使用的 .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;
        }
4

1 回答 1

1

1)。你得到了什么样的准确度?首先,您看到的单词错误百分比是多少,其次,您能给我们一些您所说的示例单词和给出的输出吗?正如 Praful 所说,声音文件抄本将非常有用。

此外,您是否尝试过运行默认应用程序并查看与它交谈是否会产生类似的不良结果?

2)。您可以按照以下步骤构建自己的字典:http ://ucla.jamesyxu.com/?p=121

我也有一些使用图书馆的笔记(我们使用它进行了几项研究,每个研究约 20 名受试者):

  • 根据经验,默认字典和库在识别单词和句子方面做得很好。带着美国口音,我们通常观察到“我正在上楼”这样的简单句子应该不会产生错误,而更复杂的句子可能会产生一些单词错误。
  • 您通常不能期望名称或缩写是正确的
  • 如果您的应用程序只查找某些短语,那么我建议仅基于这些短语构建字典和模型。这是因为您拥有的分类器被迫在其中一个短语中做出决定的短语越少,从而为您的用例提供更高的准确性。
  • 对于涉及许多关键字的长句子,请考虑对您期望的句子进行距离计算并选择最接近的句子。
  • 口音很重要

我收到通知是因为 google 提醒我您的链接与我的域名匹配

于 2013-04-23T19:10:46.193 回答