2016-03-21 1 views
3

J'utilise cmusphinx dans android. Tout d'abord j'ai exécuté le projet de démo téléchargé de Github. Quand je construit mon propre dictionnaire créé propre Keyphrase lui donne la Execption suivantecmusphinx dans android-java.lang.RuntimeException: Decoder_setKeyphrase retourné -1

FATAL EXCEPTION: AsyncTask #1 
Process: edu.cmu.sphinx.pocketsphinx, PID: 5006 
java.lang.RuntimeException: An error occured while executing doInBackground() 
at android.os.AsyncTask$3.done(AsyncTask.java:300) 
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) 
at java.util.concurrent.FutureTask.setException(FutureTask.java:222) 
at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
at java.lang.Thread.run(Thread.java:841) 
Caused by: java.lang.RuntimeException: Decoder_setKeyphrase returned -1 
at edu.cmu.pocketsphinx.PocketSphinxJNI.Decoder_setKeyphrase(Native Method) 
at edu.cmu.pocketsphinx.Decoder.setKeyphrase(Decoder.java:155) 
at edu.cmu.pocketsphinx.SpeechRecognizer.addKeyphraseSearch(SpeechRecognizer.java:259) 
at edu.cmu.pocketsphinx.demo.PocketSphinxActivity.setupRecognizer(PocketSphinxActivity.java:203) 
at edu.cmu.pocketsphinx.demo.PocketSphinxActivity.access$000(PocketSphinxActivity.java:51) 
at edu.cmu.pocketsphinx.demo.PocketSphinxActivity$1.doInBackground(PocketSphinxActivity.java:91) 
at edu.cmu.pocketsphinx.demo.PocketSphinxActivity$1.doInBackground(PocketSphinxActivity.java:85) 
at android.os.AsyncTask$2.call(AsyncTask.java:288) 
at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)  
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)  
at java.lang.Thread.run(Thread.java:841)  

Voici mon contenu de cmudict-en-us.dict

HELLO HH AH L OW 
HELLO(2) HH EH L OW 
HIMANSHU HH AH M AE N SH UW 

et je tournerai ma phrase clé comme

private static final String KEYPHRASE = "hello himanshu"; 

Répondre

2

Les mots sont sensibles à la casse. Votre phrase clé doit être en majuscule comme dans le dictionnaire. Ou les mots du dictionnaire doivent être en minuscules. Les phonèmes doivent être en majuscules.

Pour déboguer des erreurs comme celle-ci, vous pouvez lire la sortie logcat, elle fournit des messages détaillés sur le problème.

+0

thanx nikolay, après avoir changé le cas, cela a fonctionné pour moi. –