Проблемы с попыткой создания PocketSphinxAndroidDemo с использованием NDK

Я пытаюсь скомпилировать PocketSphinxAndroidDemo, который обеспечивает пример реализации распознавателя речи pocketsphinx CMU на Android. Сначала я получил ошибку, аналогичную обсуждению здесь . После выполнения ndk-build я получил эту ошибку:

Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver Gdbsetup : libs/armeabi/gdb.setup Compile thumb : pocketsphinx_jni <= pocketsphinx_wrap.c /home/nick/workspace/android/PocketSphinxDemo/jni/pocketsphinx_wrap.c:761:28: error: sphinxbase/err.h: No such file or directory /home/nick/workspace/android/PocketSphinxDemo/jni/pocketsphinx_wrap.c: In function 'Java_edu_cmu_pocketsphinx_pocketsphinxJNI_Decoder_1processRaw_1_1SWIG_10': /home/nick/workspace/android/PocketSphinxDemo/jni/pocketsphinx_wrap.c:1441: warning: assignment discards qualifiers from pointer target type make: *** [/home/nick/workspace/android/PocketSphinxDemo/obj/local/armeabi/objs-debug/pocketsphinx_jni/pocketsphinx_wrap.o] Error 1 

Я попробовал рекомендацию по восстановлению библиотек sphinxbase и pocketsphinx и перестройке с помощью ndk-build -B , но это не сработало. Затем я изменил файл swi jni / pocketsphinx.i, чтобы изменить include для err.h:

 #include <pocketsphinx.h> //#include <sphinxbase/err.h> #include <err.h> 

Кто-нибудь, кто пытался скомпилировать PocketSphinxAndroidDemo, когда-либо сталкивался с этой проблемой? Мое редактирование, по-видимому, позволило мне продолжить работу в моей компиляции, но теперь я получаю ошибки, связанные с сборкой:

 Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver Gdbsetup : libs/armeabi/gdb.setup Compile thumb : pocketsphinx_jni <= pocketsphinx_wrap.c /home/nick/workspace/android/PocketSphinxDemo/jni/pocketsphinx_wrap.c: In function 'Java_edu_cmu_pocketsphinx_pocketsphinxJNI_Decoder_1processRaw_1_1SWIG_10': /home/nick/workspace/android/PocketSphinxDemo/jni/pocketsphinx_wrap.c:1442: warning: assignment discards qualifiers from pointer target type Compile thumb : sphinxfeat <= cmn.c /tmp/cceyE035.s: Assembler messages: /tmp/cceyE035.s:655: Error: selected processor does not support `smull r1,r2,r0,r4' /tmp/cceyE035.s:657: Error: unshifted register required -- `orr r1,r1,r2,lsl#20' /tmp/cceyE035.s:932: Error: selected processor does not support `smull r1,r2,r0,r4' /tmp/cceyE035.s:934: Error: unshifted register required -- `orr r1,r1,r2,lsl#20' make: *** [/home/nick/workspace/android/PocketSphinxDemo/obj/local/armeabi/objs-debug/sphinxfeat/cmn.o] Error 1 

Опять же, кто-нибудь знает, как решить эту проблему? Я не видел, чтобы другие разработчики жаловались на эту проблему, поэтому я не решаюсь идти дальше. Спасибо за вашу помощь.

    По-видимому, некоторые из источников по-прежнему необходимо отметить для компиляции ARM. Я изменил следующий раздел Android.mk, чтобы установить cmn.c и lda.c для компиляции с помощью ARM.

     include $(CLEAR_VARS) LOCAL_C_INCLUDES := $(SPHINX_PATH)/sphinxbase/include/android $(SPHINX_PATH)/sphinxbase/include LOCAL_CFLAGS += -DHAVE_CONFIG_H LOCAL_CFLAGS += -DANDROID_NDK LOCAL_PATH := $(SPHINX_PATH)/sphinxbase/src/libsphinxbase/feat LOCAL_MODULE := sphinxfeat LOCAL_SRC_FILES := \ agc.c \ cmn.c.arm \ cmn_prior.c.arm \ feat.c \ lda.c.arm 

    Мне все еще интересно, нужно ли кому-либо еще сделать это, чтобы код успешно скомпилировался.

    Редактировать файл jni / Android.mk

    Изменить строку 162:

     LOCAL_STATIC_LIBRARIES := sphinxutil sphinxfe sphinxfeat sphinxlm pocketsphinx 

    К:

     LOCAL_STATIC_LIBRARIES := pocketsphinx sphinxlm sphinxfeat sphinxfe sphinxutil