Программные методы голосового ввода в Android

Это перевод статьи Add Voice Typing To Your IME.

Добавьте в свою программу голосовой ввод

Разработчики добавили в Android 4.0 новую «фишку» — голосовой ввод:  пока пользователь говорит, результаты распознавания голоса будут непрерывно преобразовываться в текст и подставляться в текстовое поле ввода. Если вы разрабатываете интерфейс пользовательского ввода, интеграция новой возможности голосового ввода будет совсем несложной.

Для упрощения интеграции скачайте вот эту библиотеку и модифицируйте интерфейс в соответствии с инструкциями, данными ниже; все должно пройти гладко на Android начиная с версии 2.2 и выше. При работе на Android версии 4.0 и выше пользователю будет доступен голосовой ввод, на более ранних версиях ОС пользователь будет использовать стандартную библиотеку распознавания голоса; разница между ними описана ниже.

Чтобы понять принципы работы голосового ввода, вы можете изучить тестовый проект. Интерфейс пользовательского ввода в проекте очень простой и содержит всего одну кнопку «Микрофон». Нажав на эту кнопку, пользователь запускает процедуру распознавания голоса.

Вот что вы должны сделать для интеграции голосового распознавания в интерфейс пользователя:

1. Скачайте библиотеку

Скачайте библиотеку и добавьте ее в свой проект.

2. Создайте экземпляр класса VoiceRecognitionTrigger

Библиотека содержит вспомогательный класс VoiceRecognitionTrigger. Создайте экземпляр этого класса внутри метода onCreate:

3. Добавьте в вашу программу иконку микрофона

Вам нужно модифицировать интерфейс ввода вашей программы, добавив иконку микрофона и создав OnClickListener для запуска процедуры распознавания голоса. Вы можете найти все необходимые ресурсы в ранее упомянутом тестовом проекте. Иконка микрофона должна быть видна пользователю только в том случае, если библиотека распознавания голоса инсталлирована в систему, используйте метод isInstalled класса VoiceRecognitionTrigger.

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

4. Запустите процедуру распознавания

Когда пользователь стартует процедуру распознавания речи, создайте соответствующее уведомление, тогда результаты распознавания в виде текста будут передаваться используемому для вывода TextView.

5. Дополните файл манифеста

Для того, чтобы можно было использовать библиотеку распознавания речи через механизм интентов, необходимо использовать ее и как сервис (service) и как активность (activity), которые вам нужно добавить в свой манифест.

6. Добавьте динамически изменяемую иконку микрофона

Этот шаг является необязательным, но может значительно облегчить пользователю общение с вашей программой. Распознавание голоса требует доступа к интернету, и в случае отсутствия подключения к сети ваша программа должна информировать пользователя о недоступности функции распознавания. Для этого вы должны зарегистрировать VoiceRecognitionTrigger.Listener и соответственно включать/выключать доступ к микрофону.

Нужно регистрировать VoiceRecognitionTrigger.Listener в onCreate и выключать его в onDestroy, в противном случае программа может работать некорректно.

И добавьте еще одно разрешение к своему манифесту:

Собственно, это все

При помощи распознавания голоса можно легко добавить в программу мощный и удобный функционал, сильно облегчающий жизнь пользователю, так что было бы здорово, если бы вы добавили такую функцию в свою программу.

Добавить комментарий