2013-08-06 2 views
16

Я попытался закодировать это с включенным Android-классом android.speech.SpeechRecognizer без успеха.Постоянное распознавание речи прослушивание только одного ключевого слова

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

Например, вы разговариваете с человеком. Обычный разговор. Телефон активно прослушивает и распознает каждое слово и слушает ключевое слово.

Скажем, ключевым словом является «сыр» в этом случае.

Всякий раз, когда вы говорите «сыр», приложение запускает намерение, которое запускает другую часть приложения.

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

Я пытаюсь выполнить это в течение 2 дней подряд, более 24 часов работы вместе. Если я слишком широко или нарушаю какие-либо правила SO, я искренне извиняюсь и прошу удалить мой вопрос.

Мой вопрос: как это возможно? Конечно, SpeechRecognition, который включен в сам Android, будет предпочтительнее, но это определенно будет проблемой, потому что он даже не предназначен для работы в течение длительного времени.

+0

Рассмотрите CMUSphinx, но на самом деле лучшее решение зависит от деталей, которые вы не предоставили. Например, должно ли оно быть произвольным словом или некоторым предопределенным словом. Вы хотите, чтобы пользователь записывал слово для определения, или вы хотите, чтобы определенные предопределенные ключевые фразы или произвольные ключевые фразы. Какие языки вам нужны для поддержки. –

+0

Это будет предопределенное слово. Запись слова и проверка ввода записанного файла на самом деле не так точная. Мне нужно, чтобы это было на месте. Только английский. –

ответ

8

Из моих исследований, нет никакого способа сделать это, используя стандартный сервер распознавания голоса Google. Как он работает, когда звук/слово распознается, распознаватель возвращает список того, что, по его мнению, он слышал, со связанным доверием.

делать то, что вы просите, вы бы:

  1. должны держать повторно активируя сервис распознавания каждый раз, когда он выстрелил событие распознавания, пока он не соответствует слово, которое вы хотите.

  2. Ваше приложение должно будет «следить» за службой распознавания. вы можете сделать это, создав службу, которая периодически пробуждает ваш телефон и возобновляет работу/деятельность.

Я бы не рекомендовал ни один из этих вариантов, учитывая, что срок службы батареи действительно уменьшается благодаря постоянно включенному сервису распознавания голоса.

+1

Но тогда какой другой вариант был бы возможен? Я исследовал другие возможные API распознавания речи безрезультатно. –

+0

большинство приложений, которые я видел (в том числе один из моих), полагаются на пользователя, чтобы инициировать распознаватель голоса, либо вручную, либо, в моем случае, в ответ на синтезатор речи. например, нажмите здесь, чтобы что-то сказать, или «вы хотите что-то сказать?». – droideckar

+1

Как Google Search делает это? Он постоянно прослушивает «OK Google» – regretoverflow

0

Google не предоставил поддержку API для «ОК GOOGLE» и оставил ее поставщикам для изменения или передачи поддержки потребителям. Я думаю, что лучший вариант в это время - создать исходный код самостоятельно, а затем вызвать API. В качестве примера ниже в библиотеке google содержатся сведения о том, как реализовать распознаватель. Я не знаю, почему Google не сделал это общедоступным. Я не вижу простой способ реализовать и протестировать его.

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.3_r2.1/android/speech/srec/Recognizer.java

1

К сожалению, я не думаю, что есть какие-то родные Android API, которые будут полностью удовлетворить ваши потребности. Я бы рекомендовал проверить pocketsphinx. Это довольно надежный независимый от речи интерфейс распознавания речи от CMU, который больше предназначен для таких задач. Вы также можете ознакомиться с учебным пособием для начала работы here.

+0

библиотека pocketsphinx не несет ответственности за андроид. Он не фиксирует четкие слова как «ОК Google». Есть ли другая библиотека? –

Смежные вопросы