Проблемы с запуском демо-проекта Pocketsphinx, ошибка сегментации?

Я новичок здесь, и я надеюсь, что смогу получить помощь с Android-приложением, используя Pocketsphinx (с NDK).

Я выполняю эту работу для школьного проекта, где мы делаем GPS, и мы хотели добавить немного автономного распознавания голоса, Pocketsphinx кажется подходящим способом, поэтому я скачал libraris sphinxbase и pocketsphinx, а также демо-проект, который у них есть.

После долгих исправлений и попыток (сначала установка и привыкание к Ubuntu, исправление ошибок, которые я получил при попытке скомпилировать библиотеки, ошибки при попытке собрать библиотеки с помощью NDK для получения файла .so, проблемы с проектом не имея правильных библиотек для Android и преобразовав его в проект 2.1 для тестирования на моем телефоне) я смог запустить программу (хотя по какой-то причине мне нужно запускать ее 2 раза 3 раза, прежде чем она появится на моем телефоне) .

Моя проблема возникает, когда я пытаюсь использовать демонстрационный проект, для тех, кто не знает, как он выглядит, это просто простая текстовая область и кнопка, вы нажимаете кнопку, чтобы она начала запись, а затем вы говорите, и должна появиться введенная речь как текст в области, как только я нажимаю эту кнопку, она закрывается. Он не падает, процесс умирает, но я не получаю трассировку стека. Из того, что я вижу из отладочной информации, он запускает процесс записи, но затем падает после этого, я предполагаю, что он падает, как только он собирается начать работу с собственным кодом.

Что я могу понять из неясной отладочной информации, которую я получаю, так это то, что среда Native закрывается, я получаю сообщение от отладки с тегом Zygote и сообщение «Процесс X завершен сигналом (11)». Из моих поисков я узнал, что это, скорее всего, означает ошибку сегментации (SIGSEGV).

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

Я работаю над Ubuntu 11.10 с Eclipse и подключаемыми модулями Android, мой телефон — Sony Ericsson Xperia, если это уместно, под управлением некоторой версии Sony Ericsson Android 2.1, библиотеки sphinx — последняя версия с веб-сайта проектов Sphinx.

Надеюсь, кто-нибудь здесь может дать мне какой-то способ продолжить работу над этим, я в основном разработчик Java, но я проделал некоторую работу на C ++, поэтому, если мне нужно, я также покопаюсь в код C, но я надеюсь, что это не так. зайти так далеко.

Вот выдержка из журнала:

03-20 11:37:22.676: D/edu.cmu.pocketsphinx.demo.RecognizerTask(385): signalling START
03-20 11:37:22.676: D/edu.cmu.pocketsphinx.demo.RecognizerTask(385): signalled START
03-20 11:37:22.676: D/edu.cmu.pocketsphinx.demo.RecognizerTask(385): gotSTART
03-20 11:37:22.676: D/edu.cmu.pocketsphinx.demo.RecognizerTask(385): START
03-20 11:37:22.806: D/edu.cmu.pocketsphinx.demo.PocketSphinxDemo(385): Showing Dialog
03-20 11:37:22.826: I/AudioHardwareQSD(1066): AudioHardware PCM record is going to standby.
03-20 11:37:22.836: I/AudioHardwareQSD(1066): AudioHardware PCM record is going to standby.
03-20 11:37:22.836: D/dalvikvm(385): +++ not scanning '/system/lib/libwebcore.so' for 'Decoder_startUtt__SWIG_0' (wrong CL)
03-20 11:37:22.836: D/dalvikvm(385): +++ not scanning '/system/lib/libexif.so' for 'Decoder_startUtt__SWIG_0' (wrong CL)
03-20 11:37:22.846: I/DEBUG(1063): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
03-20 11:37:22.846: I/DEBUG(1063): Build fingerprint: 'SEMC/X10i_1234-9753/X10i/es209ra:2.1-update1/2.1.A.0.435/TP7d:user/release-keys'
03-20 11:37:22.846: I/DEBUG(1063): pid: 385, tid: 395  >>> edu.cmu.pocketsphinx.demo <<<
03-20 11:37:22.846: I/DEBUG(1063): signal 11 (SIGSEGV), fault addr 0000001c
03-20 11:37:22.846: I/DEBUG(1063):  r0 00000000  r1 00000000  r2 00000154  r3 8c6d703c
03-20 11:37:22.846: I/DEBUG(1063):  r4 00000000  r5 81356e14  r6 475c8d6c  r7 00000000
03-20 11:37:22.846: I/DEBUG(1063):  r8 475c8d6c  r9 00000154  10 43117f40  fp 00123e08
03-20 11:37:22.846: I/DEBUG(1063):  ip 8130c191  sp 475c8d18  lr 8130c1a1  pc 8130d568  cpsr 40000030
03-20 11:37:22.866: I/DEBUG(1063):          #00  pc 0000d568  /data/data/edu.cmu.pocketsphinx.demo/lib/libpocketsphinx_jni.so
03-20 11:37:22.866: I/DEBUG(1063):          #01  pc 0000c19c  /data/data/edu.cmu.pocketsphinx.demo/lib/libpocketsphinx_jni.so
03-20 11:37:22.876: I/DEBUG(1063):          #02  pc 0000edb4  /system/lib/libdvm.so
03-20 11:37:22.876: I/DEBUG(1063): code around pc:
03-20 11:37:22.876: I/DEBUG(1063): 8130d558 447db089 1c0458ab 681b1c0f 93074691 
03-20 11:37:22.876: I/DEBUG(1063): 8130d568 2b0069c3 e0d3d100 36301c06 f0331c30 
03-20 11:37:22.876: I/DEBUG(1063): code around lr:
03-20 11:37:22.876: I/DEBUG(1063): 8130c190 b083b500 21001c10 93019200 f9d6f001 
03-20 11:37:22.876: I/DEBUG(1063): 8130c1a0 bd00b003 b084b510 93019200 23001c10 
03-20 11:37:22.876: I/DEBUG(1063): 8130c1b0 93022400 f0009403 f030fe3b 9903fc47 
03-20 11:37:22.876: I/DEBUG(1063): stack:
03-20 11:37:22.876: I/DEBUG(1063):     475c8cd8  7fffffff  
03-20 11:37:22.876: I/DEBUG(1063):     475c8cdc  ab227f0f  /system/lib/libmedia.so
03-20 11:37:22.876: I/DEBUG(1063):     475c8ce0  afe3db7c  
03-20 11:37:22.876: I/DEBUG(1063):     475c8ce4  afe0f130  /system/lib/libc.so
03-20 11:37:22.876: I/DEBUG(1063):     475c8ce8  afe3db7c  
03-20 11:37:22.876: I/DEBUG(1063):     475c8cec  afe0f130  /system/lib/libc.so
03-20 11:37:22.876: I/DEBUG(1063):     475c8cf0  00000000  
03-20 11:37:22.876: I/DEBUG(1063):     475c8cf4  afe0f048  /system/lib/libc.so
03-20 11:37:22.876: I/DEBUG(1063):     475c8cf8  afe3d9c4  
03-20 11:37:22.876: I/DEBUG(1063):     475c8cfc  00002004  
03-20 11:37:22.876: I/DEBUG(1063):     475c8d00  00000001  
03-20 11:37:22.876: I/DEBUG(1063):     475c8d04  078bcd20  
03-20 11:37:22.876: I/DEBUG(1063):     475c8d08  00000209  
03-20 11:37:22.886: I/DEBUG(1063):     475c8d0c  b0000463  /system/bin/linker
03-20 11:37:22.886: I/DEBUG(1063):     475c8d10  df002777  
03-20 11:37:22.886: I/DEBUG(1063):     475c8d14  e3a070ad  
03-20 11:37:22.886: I/DEBUG(1063): #00 475c8d18  00000000  
03-20 11:37:22.886: I/DEBUG(1063):     475c8d1c  afe0f048  /system/lib/libc.so
03-20 11:37:22.886: I/DEBUG(1063):     475c8d20  afe3d9c4  
03-20 11:37:22.886: I/DEBUG(1063):     475c8d24  0014bac0  [heap]
03-20 11:37:22.886: I/DEBUG(1063):     475c8d28  003952b8  [heap]
03-20 11:37:22.886: I/DEBUG(1063):     475c8d2c  0000a000  [heap]
03-20 11:37:22.886: I/DEBUG(1063):     475c8d30  ad00ef40  /system/lib/libdvm.so
03-20 11:37:22.886: I/DEBUG(1063):     475c8d34  8c6d703c  
03-20 11:37:22.886: I/DEBUG(1063):     475c8d38  0014ba78  [heap]
03-20 11:37:22.886: I/DEBUG(1063):     475c8d3c  475c8d6c  
03-20 11:37:22.886: I/DEBUG(1063):     475c8d40  43117f54  
03-20 11:37:22.886: I/DEBUG(1063):     475c8d44  475c8d90  
03-20 11:37:22.886: I/DEBUG(1063):     475c8d48  00000004  
03-20 11:37:22.886: I/DEBUG(1063):     475c8d4c  458ad8c8  /mspace/dalvik-heap/2 (deleted)
03-20 11:37:22.886: I/DEBUG(1063):     475c8d50  43117f60  
03-20 11:37:22.886: I/DEBUG(1063):     475c8d54  8130c1a1  /data/data/edu.cmu.pocketsphinx.demo/lib/libpocketsphinx_jni.so
03-20 11:37:22.886: I/DEBUG(1063): #01 475c8d58  00000000  
03-20 11:37:22.886: I/DEBUG(1063):     475c8d5c  00000000  
03-20 11:37:22.886: I/DEBUG(1063):     475c8d60  430fdfae  /data/dalvik-cache/data@[email protected]@classes.dex
03-20 11:37:22.886: I/DEBUG(1063):     475c8d64  ad00edb8  /system/lib/libdvm.so
03-20 11:37:23.026: D/Zygote(1065): Process 385 terminated by signal (11)
03-20 11:37:23.056: I/ActivityManager(1140): Process edu.cmu.pocketsphinx.demo (pid 385) has died.
03-20 11:37:23.056: I/UsageStats(1140): Unexpected resume of com.android.launcher while already resumed in edu.cmu.pocketsphinx.demo
03-20 11:37:23.056: I/WindowManager(1140): WIN DEATH: Window{45f50c48 edu.cmu.pocketsphinx.demo/edu.cmu.pocketsphinx.demo.PocketSphinxDemo paused=false}
03-20 11:37:23.086: I/AudioHardwareQSD(1066): AudioHardware PCM record is going to standby.
03-20 11:37:23.116: W/InputManagerService(1140): Got RemoteException sending setActive(false) notification to pid 385 uid 10106

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


person Community    schedule 20.03.2012    source источник


Ответы (1)


Насколько я понял, у меня нет реального понимания того, что означает ошибка сегментации или как решить эту проблему.

Если вы хотите быть разработчиком программного обеспечения, вам лучше изучить его в деталях. Вы можете найти отправную точку из Википедии

http://en.wikipedia.org/wiki/Segmentation_fault

Обычно ошибка сегментации означает, что в вашем приложении или конфигурации есть ошибка.

и большинство потоков, которые я нашел, просили заглянуть в файл журнала из приложения, и обычно это был конец потока, мой проект не дает мне файл журнала (даже если там есть код для создания)

Это вполне верный совет и для вас. Вам нужно выяснить, почему не создается файл pocketsphinx.log. Его путь настраивается в источниках. Скорее всего он создается на sd карте, но можно настроить и другое место. Содержимое этого журнала расскажет вам, в чем проблема с вашим приложением.

person Nikolay Shmyrev    schedule 21.03.2012
comment
Я прочитаю об ошибке сегментации и выясню, почему файл журнала не создается, надеюсь, я смогу выяснить, где происходит сегментация, достаточно ли отладочной информации, которую я получаю для этого? - person ; 21.03.2012
comment
текущей информации недостаточно. Вам необходимо получить доступ к этому файлу журнала. - person Nikolay Shmyrev; 21.03.2012
comment
Кажется, это вообще не было ошибкой сегмента, но я получил файлы журнала (они не создавались из-за того, что структура папок не была создана), и они сказали мне, что что-то не так с файлами модели языка, некоторые из файлы были пусты, перекопировав эти файлы, все заработало, спасибо за помощь. - person ; 22.03.2012