Я использую Pocketsphinx для обнаружения слова пробуждения в моем приложении для Android.После инициализации карманного сфинкса и после начала прослушивания через
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());
}
}
качество распознавания очень хорошее.
Но со временем качество распознавания ухудшается.Это означает, что мое обнаружение слова пробуждения настолько плохо, что я должен сказать слово пробуждения примерно 5 раз, пока распознаватель речи не обнаружит его.Если я снова инициализирую распознаватель речи, качество обнаружения пробуждающих слов снова становится очень хорошим, но со временем ухудшается, как и раньше.
Что я могу сделать, чтобы сохранить хорошее качество с течением времени без повторной инициализации пермананета в речевом распознавателе карманного сфинкса?