Если вы следили за последними событиями из мира Убунту, то знаете о том, что Canonical выпустила "Ubuntu для планшетов". Начала появляться более подробная информация об самой "Убунту на планшете" и выложен её код на Launchpad. Разработчик Ted Gould оказался одним из разработчиков HUD 2.0, который используется в планшете под управлением Ubuntu, и он поведал о технических деталях.
HUD (Head-Up Display) - это нововведение с релиза Убунту 12.04 призвано альтернативно помочь с доступом к большим меню программ.
HUD на планшете не мог не получить изменений, так как призван помочь на мобильном устройстве, который обладает особенностями, минусами и плюсами, по сравнению с обычными компьютерами.
Одна из проблем, с которой сталкиваются разработчики приложений таких устройств как планшеты, это добавление функциональности без превращения интерфейса программы в кашу из элементов управления.
Мощность мобильных устройств растёт и проблема не собирается никуда исчезать, так как всё более сложные и ресурсоёмкие программы можно запускать на планшете.
Хотелось бы сказать авторам - "оставьте сложность для десктопных UI". Но тогда возникает ситуация, что одна программа не будет предназначена для разных устройств, с разным форм фактором. Автору программы нужно будет плодить кучу UI для одной и то же программы. Этого хотелось бы избежать.
Canonical позиционирует свою разработку HUD, как выход из этой ситуации. Можно безболезненно наполнять программу функционалом, оставляя её чистой и сконцентрированной на контенте, а не органах управления.
HUD всё-таки "поиск". Умный, чтобы запоминать ваши предпочтения и быстрый, чтобы выдавать наиболее вероятное.
При проектировании HUD 2.0, разработчики осознали, что больше нельзя пассивно собирать информацию из приложения.
Нужно выйти из этого порочного круга и сделать из HUD более самостоятельное решение.
Все возможности HUD напрямую стали доступны в SDK, что позволяет разработчику приложения легко добавлять действия, которые видны в HUD для данного приложения.
Данный путь позволит сделать лучше взаимодействие программы с HUD и наоборот.
Делая HUD активным компонентом системы, стало возможно научить HUD не просто пассивно собирать пункты меню, а можно в вызываемых окнах понимать элементы UI. Разработчики назвали это параметризованным действием (parameterized actions).
Сейчас HUD 2 умеет находить только ползунки с целочисленными процентами (sliders of integer percentages).
Определение и нахождение большинства базовых виджетов вскоре будет добавлено в HUD 2.
Разговор с самим собой - признак что вы сошли с ума, но разговор с планшетником это круто .
Разработчики поняли, что HUD в принципе оперирует небольшим количеством структурированных данных и было бы круто связать HUD с распознаванием голоса, для получения пользователем своего запроса.
Работа с "голосом" построена на двух свободных голосовых движках: Pocket Sphinx и Julius.
Начали работу с Pocket Sphinx, но его производительность на мобильных платформах была недостаточной.
Julius оказался быстрее и точнее. К сожалению, Julius лицензирован под 4-clause BSD лицензию, поэтому Юлиуса пришлось поместить в секцию multiverse, со всеми вытекающими из этого проблемами.
Сейчас разработчики ищут способы сделать установку Julius легче. Но лучший путь это улучшить Pocket Sphinx или другое свободное программное обеспечение по распознаванию голосом. Разработчики признаются, что они не эксперты в "голосовом вопросе" и рады видеть в своих рядах таких людей.
Когда разрабатывался прототип HUD 2 с поддержкой голоса, всплыла проблема, что люди делали запрос другими словами. Вместо "Создать новое сообщение" как в программе, людьми делался запрос "Написать письмо".
Чтобы разрешить проблему, разработчики вели понятие ключевых слов, которые могут быть добавлены к правильному названию пункта меню. Эти определения будут использованы libhud наравне со всеми.
Синонимы к пунктам. Мало ли вместо "Поворот" (Rotate) вызовут "По часовой стрелке" (Turn Clockwise)
Это позволит авторам приложения быть ближе к пользователям, которые хотят выразить действие другими словами.
Пока нет внятной документации и помощи разработчикам программ. Над этим ещё идёт работа. Пока единственным источником информации является исходный код HUD 2.
Общая нить рассуждения:
Ubuntu на планшете.
Проект "Ubuntu на планшете" начался.
Голосовое управление в Ubuntu.