3

I'm trying to combine PocketSphinx with the VuforiaSampleDemo app. I have each installed as separate projects in Eclipse running on Ubuntu, which work fine independently.

However, when I try to incorporate PocketSphinx into the other app (Vuforia ImageTargets package) by copying the appropriate code lines and methods across, I get a crash.

It seems the crash occurs when the code executes the line:

recognizer = defaultSetup().setAcousticModel(new File(modelsDir, "hmm/en-us-semi"))
                           .setDictionary(new File(modelsDir, "dict/cmu07a.dic"))
                           .setRawLogDir(assetsDir)
                           .setKeywordThreshold((float) 0.01)
                           .setSampleRate(16000)
                           .getRecognizer();

I have copied the assets across from PocketSphinx to the Vuforia app. Can anyone shed any light on this? Thanks.

This is my LogCat output:

09-10 11:12:52.447: W/ApplicationPackageManager(3027): getCSCPackageItemText()
09-10 11:12:52.457: I/PersonaManager(3027): getPersonaService() name persona_policy
09-10 11:12:52.487: D/ImageTargets(3027): onCreate
09-10 11:12:52.497: W/ContextImpl(3027): Failed to ensure directory: /storage/extSdCard/Android/data/com.qualcomm.vuforia.samples.VuforiaSamples/files
09-10 11:12:52.497: I/Assets(3027): Skipping asset models/hmm/en-us-semi/sendump: checksums are equal
09-10 11:12:52.497: I/Assets(3027): Skipping asset models/hmm/en-us-semi/mdef: checksums are equal
09-10 11:12:52.497: I/Assets(3027): Skipping asset models/hmm/en-us-semi/README: checksums are equal
09-10 11:12:52.507: I/Assets(3027): Skipping asset models/hmm/en-us-semi/feat.params: checksums are equal
09-10 11:12:52.507: I/Assets(3027): Skipping asset models/hmm/en-us-semi/means: checksums are equal
09-10 11:12:52.507: I/Assets(3027): Skipping asset models/grammar/commands.keywords: checksums are equal
09-10 11:12:52.507: I/Assets(3027): Skipping asset models/hmm/en-us-semi/noisedict: checksums are equal
09-10 11:12:52.507: I/Assets(3027): Skipping asset models/lm/weather.dmp: checksums are equal
09-10 11:12:52.507: I/Assets(3027): Skipping asset models/grammar/commands.gram: checksums are equal
09-10 11:12:52.507: I/Assets(3027): Skipping asset models/hmm/en-us-semi/variances: checksums are equal
09-10 11:12:52.507: I/Assets(3027): Skipping asset models/hmm/en-us-semi/transition_matrices: checksums are equal
09-10 11:12:52.507: I/Assets(3027): Skipping asset models/dict/cmu07a.dic: checksums are equal
09-10 11:12:52.517: W/dalvikvm(3027): Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Ledu/cmu/pocketsphinx/SpeechRecognizerSetup;
09-10 11:12:52.517: D/AndroidRuntime(3027): Shutting down VM
09-10 11:12:52.517: W/dalvikvm(3027): threadid=1: thread exiting with uncaught exception (group=0x41730da0)
09-10 11:12:52.517: E/AndroidRuntime(3027): FATAL EXCEPTION: main
09-10 11:12:52.517: E/AndroidRuntime(3027): Process: com.qualcomm.vuforia.samples.VuforiaSamples, PID: 3027
09-10 11:12:52.517: E/AndroidRuntime(3027): java.lang.UnsatisfiedLinkError: Couldn't load pocketsphinx_jni from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.qualcomm.vuforia.samples.VuforiaSamples-142.apk,libraryPath=/data/app-lib/com.qualcomm.vuforia.samples.VuforiaSamples-142]: findLibrary returned null
09-10 11:12:52.517: E/AndroidRuntime(3027):     at java.lang.Runtime.loadLibrary(Runtime.java:358)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at java.lang.System.loadLibrary(System.java:526)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at edu.cmu.pocketsphinx.SpeechRecognizerSetup.<clinit>(Unknown Source)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at com.qualcomm.vuforia.samples.VuforiaSamples.app.ImageTargets.ImageTargets.setupRecognizer(ImageTargets.java:155)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at com.qualcomm.vuforia.samples.VuforiaSamples.app.ImageTargets.ImageTargets.onCreate(ImageTargets.java:120)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at android.app.Activity.performCreate(Activity.java:5389)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2256)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2350)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at android.app.ActivityThread.access$800(ActivityThread.java:163)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1257)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at android.os.Handler.dispatchMessage(Handler.java:102)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at android.os.Looper.loop(Looper.java:157)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at android.app.ActivityThread.main(ActivityThread.java:5335)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at java.lang.reflect.Method.invokeNative(Native Method)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at java.lang.reflect.Method.invoke(Method.java:515)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
09-10 11:12:52.517: E/AndroidRuntime(3027):     at dalvik.system.NativeStart.main(Native Method)
09-10 11:12:54.407: I/Process(3027): Sending signal. PID: 3027 SIG: 9
  • 1
    It says it fails to find jni file, you forgot to copy libpocketsphinx_jni.so from libs/armeabi to your project. – Nikolay Shmyrev Sep 10 '14 at 11:08
  • Hi @ Nikolay thanks, I literally just this minute worked that out from this link (http://cmusphinx.sourceforge.net/wiki/tutorialandroid) which says "...you will have to include “libs/pocketsphinx-android-0.8-nolib.jar” and “libs/armeabi/libpocketsphinx_jni.so” into your project...". I will give it a go and see what happens. Thanks for the tip. –  Sep 10 '14 at 11:28
  • Your answer/comment worked well for me! But for long time I didn't even see that this question is answered through comments!!! @NikolayShmyrev Please add your solution to answer and let pbs accept that as correct... Anyway thank you, Nikolay.. :) – Vinod Kumar May 20 '15 at 09:41

0 Answers0