pocketsphinx를 사용하여 서비스에서 지속적으로 키워드를 발견합니다. 문제는, 엄청난 양의 배터리를 필요로하므로 일반 사용자가 앱을 완전히 사용할 수 없게된다는 것입니다.Pocketphinx가 안드로이드에 너무 많은 배터리를 사용합니다
음, 원래의 코드는 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은 매번 명령을 듣고 활동적입니다. 그것은 pocketphinx만큼 배터리와 리소스를 사용하지 않습니다. –
Google 용 키워드를 듣는 코드는 고도로 최적화되어 있다고 가정합니다. 일반적인 라이브러리를 사용하는 것은 아마 더 많은 처리 시간을 사용합니다. – Peterdk