0

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); 

他の方法でサービスのバッテリーを減らすことはできますか?

+0

私は、キーワードを連続的に聞くことは、どのような方法でも電池に優しいとは考えていません。それともあなたのアプリが開いているときだけですか? Alexaのようなデバイスはおそらく、これを処理するハードウェアコンポーネントを持っていて、バッテリーをほとんど使わずにデバイスをスリープさせます。 – Peterdk

+0

こんにちは、@Peterdk私は、画面がオンのときだけリッスンを開始するオプションを与えました(サービスからアプリケーションが閉じられていてもホットワードを聞きます)。これにより、バッテリの消費量が相対的に少なくなります。さて、GoogleのVRは毎回コマンドを聞きながらアクティブになっています。ポケットフィックスのようにバッテリーやリソースを使用していません。 –

+0

Googleのキーワードだけを聞くコードは高度に最適化されているとします。ジェネリックライブラリを使用すると、処理時間が大幅に短縮される可能性があります。 – Peterdk

答えて

0

マイクを使用しているため、プログラムコードを変更してもバッテリの放電の問題は劇的に解決されません。あなたは、必要でないときに特定の時間に認識のためにマイクを使用するのをやめる方法を見つけ出すことができます。

+0

こんにちは。それは助けになります。私はすでに画面上にpocketsphinxを実行するためのオプションをアプリケーションに追加しました。それでも、それはあまりにも多くのリソースとバッテリーを消費します。 Googleのホットワード認識サービスはほとんど常にアクティブで、何らかの形でバッテリーに影響を与えません! –

関連する問題