Подтвердить что ты не робот

Непрерывное распознавание речи Android

Я смотрю на распознавание речи в андроиде. Программа должна иметь непрерывное распознавание речи. В библиотеке должно быть всего 10 слов. Я рассмотрел использование Googles api, но я не думаю, что это сработает. (Я не могу ничего покрыть экран). Я искал другие способы, но ничего не похоже, что это сработает. Можно ли использовать библиотеку распознавания речи java, или есть ли другой способ этого?

В резюме
1. Необходимость непрерывного ввода речи
2. 10 слов при макс. 3. может при необходимости при необходимости тренироваться
4. Обзор программы - экран дисплея, ожидание ввода голоса или сенсорного ввода, повторение экрана обновления

5. не может покрывать то, что отображается на экране

Любая помощь будет оценена. Спасибо заранее

4b9b3361

Ответ 2

Я думаю, вам нужно будет записывать звук прямо из телефонного микрофона и передавать его в свою собственную службу распознавания. API-интерфейсы распознавания Google построены как Intent, который запускает собственный диалог распознавания и возвращает результаты. Если вы хотите непрерывного распознавания без пользовательского интерфейса, вам придется самостоятельно создавать эту функциональность.

Ответ 3

Недавно 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 при запуске приложения.

Ответ 4

Вот еще один способ (если вы планируете использовать Phonegap/Cordova).

fooobar.com/questions/318398/...

1) Он постоянно прослушивается.

2) Не отображает (занимает) на экране.

Ответ 5

Используйте Библиотека CMUSphinx:

  • Он будет работать в автономном режиме
  • Вы можете назвать его
  • Он начнет прослушиваться, когда вы назовете его имя

Ответ 6

У меня были те же требования несколько месяцев назад и я решил написать свою собственную .

Я считаю, что он также должен соответствовать вашим требованиям;)

Ответ 7

В 2019 году вы можете запустить библиотеку распознавания речи Kaldi на Android для проверки настроек Kaldi demo.

Kaldi - намного более продвинутая библиотека, чем CMUSphinx, и обеспечивает гораздо лучшую точность декодирования.