我正在使用pocketsphinx在服務中持續查找關鍵字。問題是,它佔用大量電池,使得應用程序完全無法用於普通用戶。Pocketsphinx在Android上使用太多電池
好了,原來的代碼是在B4A,但是這是怎麼會看:
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 keyword-activation search.
recognizer.addKeyphraseSearch(KWS_SEARCH, "extreme");
我甚至排除以下,以降低CPU消費。畢竟,我的主要目標是發現關鍵字。
// 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我已經給出了一個選項,只有當屏幕開啓時才能開始收聽(即使應用程序已關閉,即可從服務中收聽熱門詞彙)。相對節省更多的電池。那麼,谷歌的VR是積極的,每次都聽命令。它不像pocketphinx那樣使用電池和資源.. –
我認爲只有Google收聽關鍵字的代碼纔會被高度優化。使用通用庫可能需要更多的處理時間。 – Peterdk