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