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

Материал из База знаний
Перейти к навигации Перейти к поиску



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

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

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

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

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

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

> Введите нужную цифру: _


(спойлер: к сожалению, многие разработчики навыков ментально находятся здесь)


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

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

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

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


И, наконец...

Лиса.jpg

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

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


В первую очередь, это:

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


Подытожим

Чего не должно быть в хорошем навыке:

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


Что необходимо сделать:

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


Примеры

Условный навык «Животинки и растеньюшки»

Сравним два приветствия:

Плохо Хорошо
Я навык, который знает очень много загадок про животных, птиц и рыб!
Я буду спрашивать, а ты отвечать на мои интересные вопросы.
Привет! Я расскажу тебе, почему дельфины не рыбы, а арбуз - это ягода.
Но для этого тебе тоже надо будет ответить на мои вопросы ;)
В первом случае навык хвастает своими абстрактными достижениями, которые мало интересны пользователю.
Во втором случае мы объяснили механику игры (ответ — и интересный факт в качестве приза); и потизерили парой примеров.
 

Более подробно о приветствии читайте на отдельной странице "Приветствие в навыке".
 

А теперь для продолжения скажи "Дальше"! Начинаем? Ну как, начнём игру?
В первом случае пользователь дезориентирован, и наверняка повторит "Начинаем".
Во втором - лёгким вопросом даём понять, что ждём команды в свободной форме. При этом мы обработаем и "Да", и "Начнём!", и "Понеслась", и "Конечно!".
 
Для выбора категории "Рыбы" скажи "Один", для выбора категории "Растения" скажи "Два", для выбора категории... В какой категории поиграем: "Птицы", "Рыбы", "Растения", "Случайное"?
Первый случай сильно усложнён. Кроме конфликта приглашения и команды нас вынуждают запомнить, с каким номером меню связаны категории.
Второй - в естественной форме предлагает названия, плюс «свободная категория», где может оказаться случайный вопрос из любой перечисленной.
 


Кому-то советы покажутся очевидными, но увы - просто огромное количество навыков страдает этими проблемами. А точнее, страдают от этих проблем пользователи.


Успешных и полезных навыков! Надеемся, страничка в этом поможет.

Источник — https://wiki.yaboard.com/index.php?title=Интерфейсы_от_командной_строки_до_голоса&oldid=8079 // MOD ext links // End MOD