Exception 初始化SpeechRecognizerSetup时引发异常

Exception 初始化SpeechRecognizerSetup时引发异常,exception,speech-recognition,cmusphinx,Exception,Speech Recognition,Cmusphinx,我正在尝试将PocketSphinx与VuforiaSampleDemo应用程序结合起来。我已经在运行在Ubuntu上的Eclipse中分别安装了每个项目,它们可以独立工作 然而,当我试图通过复制适当的代码行和方法将PocketSphinx合并到另一个应用程序(Vuforia ImageTargets包)中时,我遇到了崩溃 当代码执行以下行时,似乎会发生崩溃: recognizer = defaultSetup().setAcousticModel(new File(modelsDir, "hm

我正在尝试将PocketSphinx与VuforiaSampleDemo应用程序结合起来。我已经在运行在Ubuntu上的Eclipse中分别安装了每个项目,它们可以独立工作

然而,当我试图通过复制适当的代码行和方法将PocketSphinx合并到另一个应用程序(Vuforia ImageTargets包)中时,我遇到了崩溃

当代码执行以下行时,似乎会发生崩溃:

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();
我已将PocketSphinx的资产复制到Vuforia应用程序。有人能解释一下吗?谢谢

这是我的LogCat输出:

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
09-10 11:12:52.447:W/ApplicationPackageManager(3027):getCSCPackageItemText()
09-10 11:12:52.457:I/PersonalManager(3027):GetPersonalService()名称persona_策略
09-10 11:12:52.487:D/ImageTargets(3027):onCreate
09-10 11:12:52.497:W/ContextImpl(3027):未能确保目录:/storage/extSdCard/Android/data/com.qualcomm.vuforia.samples.VuforiaSamples/files
09-10 11:12:52.497:I/资产(3027):跳过资产模型/hmm/en-us-semi/sendump:校验和相等
09-10 11:12:52.497:I/资产(3027):跳过资产模型/hmm/en-us-semi/mdef:校验和相等
09-10 11:12:52.497:I/Assets(3027):跳过资产模型/hmm/en us semi/README:校验和相等
09-10 11:12:52.507:I/资产(3027):跳过资产模型/hmm/en-us-semi/feat.params:校验和相等
09-10 11:12:52.507:I/资产(3027):跳过资产模型/hmm/en-us-semi/平均值:校验和相等
09-10 11:12:52.507:I/资产(3027):跳过资产模型/语法/命令。关键字:校验和相等
09-10 11:12:52.507:I/资产(3027):跳过资产模型/hmm/en-us-semi/noise指令:校验和相等
09-10 11:12:52.507:I/资产(3027):跳过资产模型/lm/weather.dmp:校验和相等
09-10 11:12:52.507:I/资产(3027):跳过资产模型/语法/命令。语法:校验和相等
09-10 11:12:52.507:I/资产(3027):跳过资产模型/hmm/en-us半/方差:校验和相等
09-10 11:12:52.507:I/Assets(3027):跳过资产模型/hmm/en-us半/转换矩阵:校验和相等
09-10 11:12:52.507:I/资产(3027):跳过资产模型/dict/cmu07a.dic:校验和相等
09-10 11:12:52.517:W/dalvikvm(3027):异常Ljava/lang/unsatifiedlinkerror;初始化Ledu/cmu/pocketsphinx/SpeechRecognitzerSetup时抛出;
09-10 11:12:52.517:D/AndroidRuntime(3027):关闭虚拟机
09-10 11:12:52.517:W/dalvikvm(3027):threadid=1:线程以未捕获异常退出(组=0x41730da0)
09-10 11:12:52.517:E/AndroidRuntime(3027):致命异常:main
09-10 11:12:52.517:E/AndroidRuntime(3027):进程:com.qualcomm.vuforia.samples.VuforiaSamples,PID:3027
09-10 11:12:52.517:E/AndroidRuntime(3027):java.lang.UnsatifiedLinkError:无法从加载程序dalvik.system.PathClassLoader[dexPath=/data/app/com.qualcomm.vuforia.samples.VuforiaSamples-142.apk,libraryPath=/data/app lib/com.qualcomm.vuforia.samples.VuforiaSamples-142]加载Pocketshinx\u jni:findLibrary返回null
09-10 11:12:52.517:E/AndroidRuntime(3027):在java.lang.Runtime.loadLibrary(Runtime.java:358)
09-10 11:12:52.517:E/AndroidRuntime(3027):位于java.lang.System.loadLibrary(System.java:526)
09-10 11:12:52.517:E/AndroidRuntime(3027):位于教育大学cmu.pocketsphinx.SpeechRecognitzerSetup。(未知来源)
09-10 11:12:52.517:E/AndroidRuntime(3027):位于com.qualcomm.vuforia.samples.VuforiaSamples.app.ImageTargets.ImageTargets.setupRecognitizer(ImageTargets.java:155)
09-10 11:12:52.517:E/AndroidRuntime(3027):位于com.qualcomm.vuforia.samples.VuforiaSamples.app.ImageTargets.ImageTargets.onCreate(ImageTargets.java:120)
09-10 11:12:52.517:E/AndroidRuntime(3027):在android.app.Activity.performCreate(Activity.java:5389)上
09-10 11:12:52.517:E/AndroidRuntime(3027):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)上
09-10 11:12:52.517:E/AndroidRuntime(3027):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2256)
09-10 11:12:52.517:E/AndroidRuntime(3027):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2350)
09-10 11:12:52.517:E/AndroidRuntime(3027):在android.app.ActivityThread.access$800(ActivityThread.java:163)
09-10 11:12:52.517:E/AndroidRuntime(3027):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1257)
09-10 11:12:52.517:E/AndroidRuntime(3027):在android.os.Handler.dispatchMessage(Handler.java:102)上
09-10 11:12:52.517:E/AndroidRuntime(3027):在android.os.Looper.loop(Looper.java:157)上
09-10 11:12:52.517:E/AndroidRuntime(3027):位于android.app.ActivityThread.main(ActivityThread.java:5335)
09-10 11:12:52.517:E/AndroidRuntime(3027):位于java.lang.reflect.Method.Invokenactive(本机方法)
09-10 11:12:52.517:E/AndroidRuntime(3027):在java.lang.reflect.Method.invoke(Method.java:515)
09-10 11:12:52.517:E/AndroidRuntime(3027):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
09-10 11:12:52.517:E/AndroidRuntime(3027):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
09-10 11:12:52.517:E/AndroidRuntime(3027):在dalvik.system.NativeStart.main(本机方法)
09-10 11:12:54.407:I/进程(3027):发送信号。PID:3027信号:9

它说找不到jni文件,你忘了把libs/armeabi中的libpocketsphinx_jni.so复制到你的项目中。你好@Nikolay谢谢,我刚刚从这个链接()中得出结论:“…你必须包括”libs/pocketsphinx-android-0.8-nolib.jar”和“libs/armeabi/libpocketsphinx_jni.so”进入你的项目。我会试一试,看看会发生什么。谢谢你的提示。@Nikolay奏效了:-)你的回答/评论对我很有用!但很长一段时间我都没有看到这个问题是通过评论来回答的@NikolayShmyrev请将您的解决方案添加到回答中,并让pbs接受正确答案。。。无论如何,谢谢你,尼古拉……)