В последнее время наблюдается возрастающий интерес производителей смартфонов к новым применениям различных датчиков. Например, многочисленные сенсоры MotoX или отдельный сопроцессор M7 в iPhone 5S.

Действительно, сфера использования сенсоров телефона, который всегда под рукой, огромна. Впервые я увидел одну из таких функций еще в iPhone 4S под названием RaiseToSpeak. Она позволяет активировать персонального голосового ассистента Siri без прикосновений к экрану, просто поднося телефон к уху.

Тогда появилось желание реализовать нечто подобное немного в другой области на платформе Android. А именно, создать приложение-ассистент, позволяющее совершать звонки с помощью голоса, сенсоров и без подключения к интернету (что требуется в Siri).

Так появилось приложение Zvonimba, распознающее имена контактов в оффлайне на русском языке и использующее датчики смартфона для активации, что позволяет не отвлекаться на экран и не прикасаться к нему. На видео показана небольшая демонстрация с активацией встряхиванием и свайпом. Но основной способ активации, который невозможно показать на видео, — это приближение к уху в том положении, в котором мы обычно говорим по телефону без разблокировки экрана. Для этого нужно зажечь экран и поднести телефон к уху — Zvonimba активируется сама и предложит произнести имя контакта.

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

Система распознавания речи создается на основе разработки инженеров Университета Карнеги-Мелон PocketSphinx, портированной под ARM-процессоры, которая позволяет распознавать речь даже на очень слабых устройствах и без подключения к интернету. Сейчас мы активно работаем над качеством распознавания и ищем людей, готовых помочь в этом вопросе. Для лучших результатов необходимо, чтобы смартфон имел функции подавления шумов и эха.

3

 

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

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

Для озвучивания имен контактов программа может использовать любой TTS-движок, например, встроенный от Google, SVOX и т.п.

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

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