J'utilise pocketsphinx pour repérer un mot-clé en continu dans un service. Le problème est, il prend une énorme quantité de batterie, ce qui rend l'application complètement inutilisable pour un utilisateur moyen.Pocketsphinx prend trop de batterie sur Android
Eh bien, le code d'origine est en B4A, mais voici comment il regardera:
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);
Pour le mot-clé:
// Create keyword-activation search.
recognizer.addKeyphraseSearch(KWS_SEARCH, "extreme");
J'ai même exclu ce qui suit pour diminuer la CPU consommation. Après tout, mon objectif principal est juste de repérer le mot-clé.
// 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);
Existe-t-il un autre moyen par lequel le service pourrait utiliser moins de batterie?
Je ne pense pas que l'écoute continue d'un mot-clé puisse être compatible avec la batterie. Ou est-ce seulement quand votre application est ouverte? Les appareils comme Alexa ont probablement un composant matériel qui gère cela, et laisser l'appareil dormir avec presque aucune utilisation de la batterie. – Peterdk
Salut, @Peterdk J'ai donné une option pour commencer à écouter seulement quand l'écran est allumé (Il écoute le mot clé même si l'application est fermée, à partir d'un service). Cela économise relativement plus de batterie. Eh bien, la réalité virtuelle de Google est active, à l'écoute des commandes à chaque fois. Je n'utilise pas la batterie et les ressources autant que pocketphinx. –
Je suppose que le code pour écouter uniquement le mot-clé pour Google est hautement optimisé. L'utilisation d'une bibliothèque générique nécessite probablement beaucoup plus de temps de traitement. – Peterdk