Перейти к содержанию

Интерфейсы от командной строки до голоса

Материал из Wiki yaboard

Большое Лирическое Отступление

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

Огромным шагом вперёд стали перфоленты, а затем и перфокарты. Тем не менее, настраивать и управлять компьютерами всё ещё могли только обученные специалисты. И только появление клавиатур, чуть позже совмещённых с экранами, удачно заменившими телетайпы\АЦПУ, позволило существенно снизить порог вхождения, а появление персональных компьютеров – на порядки увеличить круг людей, которым стали доступны машинные вычислительные мощности.

Кстати, первый сенсорный экран появился ещё в 1965 году!

Не менее революционным стал переход от «запустил-жди» к интерактивному взаимодействию внутри программ. Кроме комфорта, гибкости и ранее невозможных корректировок «на лету», он ещё больше снизил порог вхождения, и позволил активно использовать меню и контекстные подсказки в программах в духе:

  1. Вывести список
  2. Загрузить файл
  3. Сохранить файл
  4. Выход из программы

(спойлер: большинство разработчиков навыков всё ещё находятся здесь)

Самое время вспомнить ту самую команду choice, что позволяла создавать целые каскады меню в bat-файлах, и которая и сегодня спустя десятилетия входит в целый ряд операционных систем.

Примерно в это же время стали осмысливаться программные «горячие клавиши» (в отличие от строгого аппаратного набора управляющих клавиш на первых компьютерах). Что это означало практически? Что в консольных программах OS уже не надо переходить из одного меню в другое, чтобы в конце концов, добравшись до главного, нажать заветное «4 - выход». Достаточно в любой момент исполнения нажать Ctrl-C.

Следующий прыжок и новая степень свободы – да, конечно, графический интерфейс и свободно перемещающийся курсор!

Теперь не надо последовательно гулять по всем меню, они все одномоментно визуально доступны, а для запуска достаточно кликнуть по нужному пункту в любой момент исполнения программы. Одновременно скупые когда-то Ctrl-Z и Ctrl-C эволюционировали в целый «язык», понятный сегодня всем: Ctrl-N, Ctrl-O, Ctrl-V, Ctrl-P, Shift-Ctrl-Z – их действия «возникают» у нас в голове раньше, чем мы дочитываем текст.

А навстречу ему Лиса? Когда уже Лиса будет?

И, наконец, мы добираемся до главной темы: голосовые интерфейсы!

Этот радикальный переход не только от клавиш к голосу, но и от экрана к «слепому» общению ставит целый ряд задач, многие из которых, к нашему счастью, успешно решались на предыдущих этапах. Нам остаётся выбрать правильные варианты.


Что надо выделить в первую очередь:

  • Способ общения для многих пользователей радикально новый, необжитой. Необходимо больше подсказывать и информировать, чем в обычных программах (при этом не перегружая слух пользователя ненужной на данную секунду информацией).
  • Если о программе пользователь может прочитать в её же справке, сделать выдержки и закладки, изучить на официальном сайте или на форумах с обзорами, то запуск навыка чаще всего произойдёт вслепую и, возможно, пользователь даже не поймёт, что запустил условную «подпрограмму». Очень важно дать ему понять, какую именно его проблему решает навык, и как наиболее эффективно его можно использовать.
  • В отличие от безразмерного экранного места с иллюстрациями голосовой интерфейс должен уметь рассказать коротко, лёгким языком и образно, максимально упростив восприятие для визуалов. Проще говоря, помочь им создать «картинку» в голове.
  • Диалог должен строиться свободно. Человек не машина, имеет право вспомнить какой-то из пропущенных шагов, внести уточнения или полностью поменять своё решение на любом шаге. При этом необходимо сохранять общий контекст сессии (представьте на месте программы собеседника).
  • «Древовидные» меню – плохой выбор (если это не вызвано какой-то критической необходимостью, которой автор в жизни пока не наблюдал). Намного лучше подойдёт аналогия с глобальными «горячими клавишами» (один из примеров – требуемая платформой Яндекс обработка команды «Помощь» при любом шаге общения в навыке), или параллельными «дорожками», между которыми пользователь сможет прыгать в нужный ему момент.
  • Очень важно не ломать естественный язык. «Вы хотите продолжить? Скажите ‘Далее’» - практически худшее, что можно придумать. Если вы предлагаете продолжить, сохранить, выбрать, перейти – то обязаны обработать как минимум предложенное вами слово, и не предлагать вместо него другое, а тем более жёстко зашитое как единственный принимаемый вариант. Хорошим решением будет предусмотреть синонимы и разговорные ответы: «Да, Конечно, Валяй, Поехали». Стоит активно использовать интенты, предлагаемые платформой Диалоги.
  • Никаких лишних подтверждений и искусственно растянутых диалогов. Если есть возможность получить всю нужную информацию в одной фразе – стоит попотеть, чтобы этого достичь, пользователи будут вам благодарны.
  • Общение должно быть живым, натуральным. А это означает, что в отличие от прежних программ не только не нужна стандартная фраза на все сходные случаи, а наоборот, даже для одинаковых случаев правильно проработать по нескольку вариантов ответов, обращений, пояснений (так называемые промпт-листы).


Подытожим:

  • Чего не должно быть:
    • никаких вложенных меню,
    • никаких жёстко зашитых безальтернативных вариантов ввода,
    • никаких конфликтов между подсказкой и ожидаемым к вводу словом.
  • Что должно быть:
    • краткое ясное информирование пользователя о его пользе с самого запуска навыка,
    • чёткие образные подсказки,
    • разные варианты текстов для одних и тех же ситуаций,
    • максимальная «пронизанность» навыка «горячими клавишами» навигации и смены режимов
    • и разнообразие принимаемых к вводу команд.

Примеры

Рассмотрим условный навык «Угадай меня»: