Автономное распознавание речи в Android (JellyBean)

Похоже, Google сделал автономное распознавание речи доступным от Google Now для сторонних приложений. Он используется приложением с именем Utter .

Кто-нибудь видел какие-либо реализации того, как делать простые голосовые команды с помощью этой автономной речи? Вы просто используете обычный SpeechRecognizer API, и он работает автоматически?

Solutions Collecting From Web of "Автономное распознавание речи в Android (JellyBean)"

Google тихо включил автономное распознавание в этом обновлении поиска, но в классе SpeechRecognizer еще нет (API) или дополнительных параметров. {См. Раздел «Редактирование» в нижней части этой публикации) . Функциональность доступна без дополнительного кодирования, однако устройство пользователя должно быть настроено правильно, чтобы оно начало работать, и вот в чем проблема, и я представляю, почему многие разработчики Предположите, что они «что-то не хватает».

Кроме того, Google ограничил некоторые устройства Jelly Bean от использования автономного распознавания из-за аппаратных ограничений. Какие устройства, к которым это относится, не документированы, на самом деле ничего не документировано, поэтому настройка возможностей для пользователя оказалась вопросом проб и ошибок (для них). Это работает на некоторое время – для тех, кого это не так, это «путеводитель», который я им снабжаю.

  1. Убедитесь, что по умолчанию для распознавания голоса Android установлен Google, а не Samsung / Vlingo
  2. Удалите все автономные файлы распознавания, которые вы уже установили из настроек Google Voice Search
  3. Перейдите в Настройки Android-приложения и проверьте, можно ли удалить обновления для приложений Google Search и Google Voice Search.
  4. Если вы не можете сделать это, перейдите в Play Маркет, посмотрите, есть ли у вас опция.
  5. Перезагрузка (если вы достигли 2, 3 или 4)
  6. Обновите Google Search и Google Voice Search в Play Маркете (если вы достигли 3 или 4 или если обновление доступно в любом случае).
  7. Перезагрузка (если вы достигли 6)
  8. Установка английских файлов автономного языка в Великобритании
  9. перезагружать
  10. Используйте все ! С соединением
  11. Переключитесь в режим самолета и попробуйте
  12. Как только он будет работать, автономное распознавание других языков, таких как английские США, также должно начать работать.

РЕДАКТИРОВАТЬ: Временное изменение языкового стандарта устройства на английском языке также похоже на то, чтобы работать над некоторыми из них.

Некоторые пользователи сообщили, что им еще приходилось перезагружаться несколько раз, прежде чем они начнут работать, но все они попадают туда в конечном итоге, часто необъяснимо, в какой был триггер, ключ к которому находится в APK Google Search , поэтому не в общественном достоянии Или часть AOSP .

Из того, что я могу установить, Google тестирует доступность соединения до принятия решения о необходимости использования автономного или онлайн-распознавания. Если соединение доступно изначально, но оно потеряно до ответа, Google предоставит ошибку подключения, он не будет возвращаться в автономный режим. В качестве побочного примечания, если запрос на синтезированный голос в сети был сделан, нет ошибки, если он был неудачным – вы получаете молчание.

Обновление Google Search не включало дополнительных функций в Google Now, и на самом деле, если вы попытаетесь использовать его без подключения к Интернету, это приведет к ошибке. Я упоминаю об этом, поскольку я задавался вопросом, будет ли способность отойти так тихо, как она появилась, и поэтому не следует полагаться на производство.

Если вы намереваетесь начать использовать класс SpeechRecognizer, будьте предупреждены, есть довольно большая ошибка, связанная с ней, для которой требуется ваша собственная реализация.

Не имея возможности запросить offline = true , делает невозможным управление этой функцией без использования подключения к данным. Мусор. Вы получите сотни писем пользователей, спрашивающих вас, почему вы не включили что-то настолько простое!

EDIT: с 23-го уровня API добавлен новый параметр EXTRA_PREFER_OFFLINE, который, по-видимому, придерживается службы распознавания Google.

Надеюсь, что это помогает.

Я хотел бы улучшить руководство, что ответ https://stackoverflow.com/a/17674655/2987828 отправляет своим пользователям с изображениями. Это предложение «Для тех, кого это не так, это« руководство », которое я им снабжаю». Что я хочу улучшить.

Пользователь должен нажать на четыре кнопки, выделенные синим цветом на этих изображениях:

Перейдите в Настройки Android-приложения, выберите Языки и введите,Изменение настроек набора номера Google Voice,Выберите «Загрузка автономного распознавания речи»,Выберите языки на вкладке ALL.

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

Он работал для меня (android 4.1.2), тогда распознавание языка работало из коробки, без перезагрузки. Теперь я могу диктовать инструкции оболочке терминального эмулятора! И он в два раза быстрее офлайн, чем онлайн, на пэде 2 от ASUS.

Эти изображения лицензируются под cc by-sa 3.0 с атрибуцией, требуемой для stackoverflow.com/a/21329845/2987828; Вы можете добавить эти изображения в любом месте вместе с этой атрибуцией.

(Это стандартная политика всех изображений и текстов на stackoverflow.com)

Простое и гибкое автономное распознавание на Android реализовано CMUSphinx – инструментарием распознавания речи с открытым исходным кодом. Он работает исключительно в автономном режиме, быстро и настраивается. Например, он может непрерывно слушать ключевое слово.

Здесь вы можете найти последний код и учебник .

Короче говоря, у меня нет реализации, а объяснения.

Google не обеспечивал автономное распознавание речи для сторонних приложений. Автономное распознавание доступно только с клавиатуры. Бен Рэндалл (разработчик полной!) Объясняет свое обходное решение в статье в Полиции Android:

Я реализовал свою собственную клавиатуру и переключался между Google Voice Typing и клавиатурой пользователя по умолчанию с невидимым текстовым полем редактирования и прозрачным действием для получения ввода. Грязная ручка!

Это был единственный способ сделать это, так как автономный Voice Typing мог запускаться только IME или системным приложением (это был мой корневой хак). Другой тип API распознавания … не вызывал его и просто не удался с ошибкой сервера. … Много работы впустую для меня на обходной путь! Но, по крайней мере, я был готов к реализации …

Из Уттера! Претензии стать первым не-IME-приложением для использования автономного распознавания голоса в Jelly Bean

Я успешно реализовал свою Speech-Service с автономными возможностями, используя onPartialResults, когда офлайн и onResults в Интернете.

Я имел дело с этим, и я заметил, что вам нужно установить автономный пакет для вашего языка. Моя настройка языка была «Español (Estados Unidos)», но на этом языке нет автономного пакета, поэтому, когда я отключил все сетевые подключения, я получал предупреждение от RecognizerIntent, говорящее, что не может связаться с Google, а затем меняю язык на «Английский (США)» (потому что у меня уже есть автономный пакет) и запустил RecognizerIntent, который он только что разработал.

Клавиши: настройка языка == Офсет для голосового распознавания речи

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