0

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?

+0

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

+0

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. –

+0

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

Répondre

0

Étant donné que vous utilisez un microphone, les modifications de votre code de programme ne résolvent pas de manière significative le problème de vidange de la batterie. Vous pouvez trouver un moyen d'arrêter d'utiliser le microphone pour la reconnaissance à certains moments lorsque cela n'est pas nécessaire.

+0

Bonjour. Eh bien, ça aide. J'ai déjà ajouté une option dans mon application pour l'exécution de pocketsphinx seulement lorsque l'écran est allumé. Pourtant, il prend trop de ressources et de la batterie. Le service de reconnaissance de mots clés de Google est actif presque tout le temps, et n'affecte en rien la batterie! –