問題タブ [pocketsphinx-android]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Androidでポケットフィンクスからマイクを解放する方法
Android でキーワード スポッティング用に pocketphynx ライブラリを使用していますが、その目的を十分に果たしています。ただし、アプリの別のコンポーネントで使用するためにマイクを解放しようとすると、それができません。logcat に次のエラーが表示されます。
getUserMedia
これは、 fromを使用しようとしたときに発生しますWebView
。そうする前に、私は電話しています
私のアクティビティからですが、それは役に立たないようです。
.stop()
、 APIも使用してみ.removeListener(...)
ましたが、問題はまだ残っています。アプリの他のコンポーネントが再びマイクを使用できるように、ポケットフィンクスが作成しているマイクの保留を解除する方法があるかどうかを提案してください。
どんな助けでも大歓迎です。
更新 1:ログを追加し、AudioPolicyManagerの Android コードを調べました。2 つのプロセス (31292
と) が呼び出しを953
実行して競合しようとしていて、1 つのプロセス ( ) が別のプロセス ( ) をシャットダウンしたようです。明らかに、ログを誤解している可能性があります。startInput
31292
953
更新 2: pocketphynxSpeechRecognizer.shutdown
メソッドを調べたところ、これが実際にオブジェクトを解放するメソッドであることがわかりました。AudioRecord
試行錯誤によりshutdown
、アプリをクラッシュさせずに呼び出す方法を理解することができました(すべてのリスナーが削除された後、onResultで発生する必要があります)。その後、私の別のコンポーネントが動作し始めました。の後にキーワード スポッティングを再開できるかどうかを確認する機会はまだありませんでしたshutdown
。その後、再初期化が必要な場合 (これには多くの時間がかかります)、これは受け入れられる回避策ではありません。
更新 3:shutdown
マイクのホールドを解除する必要がないことを確認しました。stop
APIを呼び出すだけで、なんとか他のコンポーネントを作成できました。重要なのは、ポケットフィンクスの停止には少し時間がかかることであり、他のコンポーネントはそれを待つ必要があります。私が使用したイベントは、私のために働いたonResult
. その時点で、別のコンポーネントがすでに新しい を取得できAudioRecord
ます。その後、まだポケットフィンクスを再起動していません。
android - 音声認識を使用してアプリを開く (PocketSphinx)
Androidで音声認識アプリを作成し、アプリ内でなくても使えるようにサービスで動かしたいです。そこでリファレンスを探したところ、GitHub でデモ アプリを見つけました。
これはサイトですhttps://github.com/ihrupin/SpeechRecognitionService
私はアプリをダウンロードし、ドキュメントも読みました。はい、それは私にとってはうまく動作しており、サービスでも実行されていますが、たとえば、(Facebook を開く) と言った場合、インストールされている Facebook アプリが開きます。
私は PocketSphinx を使用する初心者です。
これは MainActivity です
これは私のサービスです
これはBootReceiverです
このトピックについて調べたところ、文法と辞書を変更する必要があることがわかりましたが、その方法がわかりません。何か案は?