pocketsphinxを使用して、サービス内でキーワードを連続して見つけることができます。問題は、膨大な量のバッテリーを使い、平均的なユーザーがアプリケーションを完全に使用できなくすることです。PocketphinxがAndroidでバッテリーを使いすぎる
まあ、元のコードはB4Aであるが、これは、それがどのように見えるかです:
// Create keyword-activation search.
recognizer.addKeyphraseSearch(KWS_SEARCH, "extreme");
私もが除外CPUを小さくするには、次のキーワードについては
recognizer = defaultSetup()
.setAcousticModel(new File(assetsDir, "en-us-ptm"))
.setDictionary(new File(assetsDir, "cmudict-en-us.dict"))
.setRawLogDir(assetsDir).setKeywordThreshold(1e-20f)
.getRecognizer();
recognizer.addListener(this);
消費。結局のところ、私の主な目標は、キーワードを見つけることです。
// Create grammar-based searches.
File menuGrammar = new File(assetsDir, "menu.gram");
recognizer.addGrammarSearch(MENU_SEARCH, menuGrammar);
// Next search for digits
File digitsGrammar = new File(assetsDir, "digits.gram");
recognizer.addGrammarSearch(DIGITS_SEARCH, digitsGrammar);
// Create language model search.
File languageModel = new File(assetsDir, "weather.dmp");
recognizer.addNgramSearch(FORECAST_SEARCH, languageModel);
他の方法でサービスのバッテリーを減らすことはできますか?
私は、キーワードを連続的に聞くことは、どのような方法でも電池に優しいとは考えていません。それともあなたのアプリが開いているときだけですか? Alexaのようなデバイスはおそらく、これを処理するハードウェアコンポーネントを持っていて、バッテリーをほとんど使わずにデバイスをスリープさせます。 – Peterdk
こんにちは、@Peterdk私は、画面がオンのときだけリッスンを開始するオプションを与えました(サービスからアプリケーションが閉じられていてもホットワードを聞きます)。これにより、バッテリの消費量が相対的に少なくなります。さて、GoogleのVRは毎回コマンドを聞きながらアクティブになっています。ポケットフィックスのようにバッテリーやリソースを使用していません。 –
Googleのキーワードだけを聞くコードは高度に最適化されているとします。ジェネリックライブラリを使用すると、処理時間が大幅に短縮される可能性があります。 – Peterdk