1

Я пытаюсь проверить базовое распознавание ключевых слов в фрагменте, используя эту карманную библиотеку Android-андроида. У меня есть проект банка установить и правильно добавлены как зависимость, я добавил файлы .so в папку jniLibs, как указано в данном руководстве http://cmusphinx.sourceforge.net/wiki/tutorialandroidandroid pocketshpinx «word% s missing in dictionary» error

Все, кажется, работает хорошо, насколько другие поиска (цифры и т. д.). Но по какой-то причине я не могу заставить поиск по ключевым словам работать. Я получаю сбой с очень ясным и явным сообщением об ошибке. В основном это говорит о том, что в словаре нет кучи слов.

04-19 14:35:59.930 6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'EH' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'SH' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'Z' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'SH' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'ZH' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'ZH' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'ZH' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'ZH' is missing in the dictionary 
04-19 14:35:59.930 6086-6107/? E/cmusphinx﹕ ERROR: "kws_search.c", line 165: The word 'SH' is missing in the dictionary 

Я использую словарь, который поставляется в комплекте с библиотекой, в «CMU-ан-us.dict», которая на самом деле не кажется, эти слова прописными включены на всех.

Итак, я искал вокруг и нашел этот один http://svn.code.sf.net/p/cmusphinx/code/trunk/cmudict/cmudict-0.7b

Когда я добавил, что к проекту, и пытался ссылаться на этот словарь вместо. Я получил те же ошибки, что и раньше, но теперь говорю, что слова в предыдущих словах, которые я использовал (cmu-en-us.dict), отсутствовали.

Я не уверен, что я делаю неправильно. Но я просто следовал создать учебник, а также используется код из деятельности демо-проекта здесь https://github.com/cmusphinx/pocketsphinx-android-demo/blob/master/app/src/main/java/edu/cmu/pocketsphinx/demo/PocketSphinxActivity.java

О, и вот как я устанавливаю мой SpeechRecognizer

private void setupRecognizer(File assetsDir) throws IOException { 
    // The recognizer can be configured to perform multiple searches 
    // of different kind and switch between them 
    Log.d("RecipeSearchFragment", "setupRecognizer"); 
    mRecognizer = defaultSetup() 
      .setAcousticModel(new File(assetsDir, "en-us-ptm")) 
      .setDictionary(new File(assetsDir, "cmudict-en-us.dict")) 


        // To disable logging of raw audio comment out this call (takes a lot of space on the device) 
      .setRawLogDir(assetsDir) 

        // Threshold to tune for keyphrase to balance between false alarms and misses 
      .setKeywordThreshold(1e-45f) 

        // Use context-independent phonetic search, context-dependent is too slow for mobile 
      .setBoolean("-allphone_ci", true) 

      .getRecognizer(); 
    mRecognizer.addListener(this); 

    /** In your application you might not need to add all those searches. 
    * They are added here for demonstration. You can leave just one. 
    */ 


    mRecognizer.addKeywordSearch(KWS_SEARCH, new File(assetsDir, "cmudict-en-us.dict")); 

    mRecognizer.startListening(KWS_SEARCH); 

} 

Кто-нибудь еще когда-либо работать в этом ? Что я здесь делаю неправильно?

ответ

0

Поиск по ключевому слову задан с помощью файла списка ключевых фраз. Ключевая фраза списков Список файлов фразам один в каждой строке:

Recognizing multiple keywords using PocketSphinx

Вы неправильно использовали словарь в качестве ключевого слова списка файлов в следующей строке:

mRecognizer.addKeywordSearch(KWS_SEARCH, new File(assetsDir, "cmudict-en-us.dict")); 

Это не очень хорошая идея.

+0

Спасибо за комментарий! Я решил, что делаю что-то неправильно. Итак, в основном мне нужно было бы настроить собственный файл списка ключевых фраз с набором предопределенных слов для поиска? Я думал, что библиотека может быть использована для распознавания динамических слов типа «яйца» или «птица». По крайней мере, для моего варианта использования, я не смог бы узнать, какое слово пользователь будет говорить раньше времени. Могу ли я выполнить это с карманным сфинксом? –

+0

http://stackoverflow.com/questions/25949295/cmusphinx-pocketsphinx-recognize-all-or-large-amount-of-english-words?rq=1 –