Why is the Pocketsphinx wakeup word detection getting worse over time?

281 Views Asked by At

I use Pocketsphinx for wakeup word detection in my Android app. After initializing pocketsphinx and after start listening via

private void setup() {
    try {
        final Assets assets = new Assets(ListeningActivity.this);
        final File assetDir = assets.syncAssets();
        mRecognizer = SpeechRecognizerSetup.defaultSetup()
                .setAcousticModel(new File(assetDir, "models/en-us-ptm"))
                .setDictionary(new File(assetDir, "models/lm/words.dic"))
                .setKeywordThreshold(Float.valueOf("1.e-" + 2 * sensibility))
                .getRecognizer();
        mRecognizer.addKeyphraseSearch(WAKEWORD_SEARCH, getString(R.string.wake_word));
        mRecognizer.addListener(this);
        mRecognizer.startListening(WAKEWORD_SEARCH);
        Log.d(LOG_TAG, "... listening");
    } catch (IOException e) {
        Log.e(LOG_TAG, e.toString());
    }
}

the recognition quality is very good.

But over time the recognition quality is getting worse. This means my wakeup word detection is so bad then, that I have to say ma wakeup word about 5 times until the speechrecognizer detect it. If I reinitialize the speechrecognizer again the wakeup word detection quality is very good again but is getting worse over time like before.

What can I do to keep the good quality over time without permananet reinitializing the pocketsphinx SpeechRecognizier again?

0

There are 0 best solutions below