CMUSphinx недавно внедрил непрерывное прослушивание на платформе Android. Вы можете найти демоверсию на вики-странице
Вы можете настроить одно или несколько ключевых слов для прослушивания, по умолчанию используется ключевое слово "о, могучий компьютер". Вы также можете настроить порог обнаружения. В настоящее время поддерживаются следующие языки: американский английский и некоторые другие (французский, испанский, русский и т. Д.). Вы можете обучить свою собственную модель для вашего языка.
Прослушивание просто, вы создаете распознаватель и просто добавляете поиск по ключевым словам:
recognizer = defaultSetup()
.setAcousticModel(new File(modelsDir, "hmm/en-us-semi"))
.setDictionary(new File(modelsDir, "lm/cmu07a.dic"))
.setKeywordThreshold(1e-5f)
.getRecognizer();
recognizer.addListener(this);
recognizer.addKeywordSearch(KWS_SEARCH_NAME, KEYPHRASE);
switchSearch(KWS_SEARCH_NAME);
и определите слушателя:
@Override
public void onPartialResult(Hypothesis hypothesis) {
String text = hypothesis.getHypstr();
if (text.equals(KEYPHRASE))
// do something
}
Вместо одной ключевой фразы вы можете указать путь к файлу команд в файловой системе:
recognizer.addKeywordSearch(KWS_SEARCH, new File(assetsDir,
"commands.lst").toString());
Какой файл команд commands.lst
, содержащий команды по одной в строке:
oh might computer
ok google
hello dude
Чтобы поместить этот файл в файловую систему, вы можете поместить его в ресурсы и запустить syncAssets при запуске приложения.