0

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

서비스가 배터리를 덜 소모 할 수있는 다른 방법이 있습니까?

+0

나는 지속적으로 키워드를 듣는 것이 어떤 식 으로든 배터리 친화적이라고 생각하지 않습니다. 아니면 앱이 열린 상태일까요? Alexa와 같은 장치는이를 처리하는 하드웨어 구성 요소를 가지고있을 것이고 거의 배터리를 사용하지 않고 장치를 잠자기 상태로 만들 것입니다. – Peterdk

+0

안녕하세요, @Peterdk 나는 화면이 켜져있을 때에 만 듣기 시작할 수있는 옵션을 제공합니다 (서비스에서 앱을 닫더라도 핫 워드를 듣습니다). 상대적으로 더 많은 배터리를 절약 할 수 있습니다. 음, Google의 VR은 매번 명령을 듣고 활동적입니다. 그것은 pocketphinx만큼 배터리와 리소스를 사용하지 않습니다. –

+0

Google 용 키워드를 듣는 코드는 고도로 최적화되어 있다고 가정합니다. 일반적인 라이브러리를 사용하는 것은 아마 더 많은 처리 시간을 사용합니다. – Peterdk

답변

0

마이크를 사용하고 있으므로 프로그램 코드를 변경해도 배터리 소모 문제가 크게 해결되지는 않습니다. 불필요한 특정 시간에 인식을 위해 마이크 사용을 중단 할 수있는 방법을 찾아 낼 수 있습니다.

+0

안녕하세요. 글쎄, 그건 도움이된다. 화면이 켜져있을 때만 pocketsphinx를 실행하기 위해 이미 앱에 옵션을 추가했습니다. 여전히 너무 많은 리소스와 배터리를 사용합니다. Google의 핫 워드 인식 서비스는 거의 항상 활성화되어 있으며 어떤 방식 으로든 배터리에 영향을주지 않습니다! –