Программные методы голосового ввода в 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, в противном случае программа может работать некорректно.

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

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

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

Закладка Постоянная ссылка.

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

  • Несколько случайная, но довольно любопытная информация:

    При проектировании пикирующего бомбардировщика ТУ-2 (фото кликабельно) советским конструкторам пришлось решать целый комплекс инженерных задач. С одной стороны, при пикировании на цель самолет развивал слишком большую скорость, и поэтому во избежание разрушения аппарата его приходилось выводить из пике слишком высоко, примерно на высоте 1.5—2 км, что ухудшало точность поражения целей. С другой стороны, при пикировании набегающий поток воздуха заставляет все быстрее и быстрее вращаться винты самолета, что приводит к увеличению числа оборотов коленвала двигателя и резкому увеличению нагрузок на сам мотор, вплоть до разрушения. К счастью, КБ под руководством А. Туполева нашло ответы на оба вопроса. Для снижения скорости пикирования на самолет установили воздушные тормоза — отклоняемые щитки на передней части крыла. А со слишком высокими оборотами коленвала управились путем применения винтов с изменяемым шагом. Ну а потом был изобретен бомбоприцел, и развитие бомбардировочной авиации пошло совсем другим путем…