1

PocketSphinxを Unity3d プロジェクト に統合しようとしています。
これを行うために、Android デモ プロジェクトを Unity3d プロジェクトの Android Studio エクスポートに統合しました。

アプリにアクセスしようとすると、次の関数が -1 を返したという例外が発生します。

public static final native void Decoder_setSearch(long var0, Decoder var2, String var3);

音声コマンドのリッスンを開始すると、このメソッドが呼び出されます。

recognizer.startListening("hello app", 10000);

なぜこれが起こるのですか?どうすれば解決できますか?PocketSphinx サンプル プロジェクトでは完全に機能します。

Recognizer のセットアップ方法:

Assets assets = new Assets(MyActivity.this);
File assetDir = assets.syncAssets();

recognizer = defaultSetup()
                .setAcousticModel(new File(assetDir, "en-us-ptm"))
                .setDictionary(new File(assetDir, "cmudict-en-us.dict"))
                .setRawLogDir(assetDir)
                .setKeywordThreshold(1e-45f)
                .setBoolean("-allphone_ci", true)
                .getRecognizer();

recognizer.addListener(MyActivity.this);
recognizer.addKeyphraseSearch(KWS_SEARCH, KEYPHRASE);

...およびlogcatからの詳細情報(完全なファイル):

01-29 18:01:12.989 4237-4237/com.myName.pocketSphinxTest I/SpeechRecognizer: Start recognition "hello app"
01-29 18:01:12.989 4237-4237/com.myName.pocketSphinxTest D/AndroidRuntime: Shutting down VM
01-29 18:01:12.989 4237-4237/com.myName.pocketSphinxTest W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x4157fd58)
01-29 18:01:12.989 4237-4237/com.myName.pocketSphinxTest E/AndroidRuntime: FATAL EXCEPTION: main
                                                                             Process: com.myName.pocketSphinxTest, PID: 4237
                                                                             java.lang.Error: FATAL EXCEPTION [main]
                                                                             Unity version     : 5.2.2f1
                                                                             Device model      : Osterhout_Design_Group R7-W
                                                                             Device fingerprint: R7/apq8084/apq8084:4.4.4/KTU84P/ODG_R7_V3.1.12:user/release-keys
01-29 18:01:13.019 4237-4237/com.myName.pocketSphinxTest I/Process: Sending signal. PID: 4237 SIG: 9
4

1 に答える 1

1

setSearchstartListening検索の名前で呼び出されます。検索の名前は"hello app"あなたの場合です。-1 を返す前に検索"hello app"が追加されず、例外がスローされる場合。ソースは、pokesphinx-android ソースで入手できます。

エラーは通常、以前に名前の検索を追加しなかったことを意味します。コードから、 の同じ値を持つ"hello app"と言いますが、タイプミスがあると思います。検索名に同じ文字列を使用していることを再確認する必要があります。「hello app」の文字列をin call に置き換えることをお勧めします。KWS_SEARCH"hello app"KWS_SEARCHstartListening

于 2016-04-25T08:03:33.220 に答える