Ответ 1
Здесь объяснение Oracle Java Часто задаваемые вопросы по API речи.
Я смотрю на распознавание речи в андроиде. Программа должна иметь непрерывное распознавание речи. В библиотеке должно быть всего 10 слов. Я рассмотрел использование Googles api, но я не думаю, что это сработает. (Я не могу ничего покрыть экран). Я искал другие способы, но ничего не похоже, что это сработает. Можно ли использовать библиотеку распознавания речи java, или есть ли другой способ этого?
В резюме
1. Необходимость непрерывного ввода речи
2. 10 слов при макс.
3. может при необходимости при необходимости тренироваться
4. Обзор программы - экран дисплея, ожидание ввода голоса или сенсорного ввода, повторение экрана обновления
5. не может покрывать то, что отображается на экране
Любая помощь будет оценена. Спасибо заранее
Здесь объяснение Oracle Java Часто задаваемые вопросы по API речи.
Я думаю, вам нужно будет записывать звук прямо из телефонного микрофона и передавать его в свою собственную службу распознавания. API-интерфейсы распознавания Google построены как Intent, который запускает собственный диалог распознавания и возвращает результаты. Если вы хотите непрерывного распознавания без пользовательского интерфейса, вам придется самостоятельно создавать эту функциональность.
Недавно CMUSphinx реализовал непрерывное прослушивание на платформе Android. Вы можете найти демонстрацию на странице wiki
Вы можете настроить одно или несколько ключевых слов для прослушивания, ключевым словом по умолчанию является "oh mighty computer". Вы также можете настроить порог обнаружения. В настоящее время поддерживаются языки США и некоторые другие (французский, испанский, русский и т.д.). Вы можете подготовить свою собственную модель для своего языка.
Прослушивание просто, вы создаете распознаватель и просто добавляете поиск по ключевым словам:
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 при запуске приложения.
Вот еще один способ (если вы планируете использовать Phonegap/Cordova).
fooobar.com/questions/318398/...
1) Он постоянно прослушивается.
2) Не отображает (занимает) на экране.
Используйте Библиотека CMUSphinx:
У меня были те же требования несколько месяцев назад и я решил написать свою собственную .
Я считаю, что он также должен соответствовать вашим требованиям;)
В 2019 году вы можете запустить библиотеку распознавания речи Kaldi на Android для проверки настроек Kaldi demo.
Kaldi - намного более продвинутая библиотека, чем CMUSphinx, и обеспечивает гораздо лучшую точность декодирования.