0

我正在使用 pocketsphinx 在服务中连续发现关键字。问题是,它会占用大量电池,使该应用程序对普通用户完全无法使用。

好吧,原始代码在 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);

是否有任何其他方式可以使服务使用更少的电池?

4

1 回答 1

0

由于您使用的是麦克风,因此更改程序代码不会显着解决电池消耗问题。您可以想办法在不需要时在某些时候停止使用麦克风进行识别。

于 2017-06-03T21:11:14.703 回答