Разработка
Идеальный Action для Google Ассистента: 8 советов по разработке крутого голосового приложения
Дмитрий Чечеткин, директор по стратегическим проектам компании Just AI, рассказал нам, как правильно создавать приложения для Ассистента Google.
В конце июля Google провел в своем московском офисе закрытый хакатон по созданию Actions для русскоязычного Google Ассистента. Мы (Just AI) и еще с десяток команд пробовали разработать голосовые приложения, а кто-то даже опубликовал свои труды в каталоге Google Actions. C хакатона мы вынесли массу полезных уроков: как правильно выбрать задачу для своего приложения, почему предсказуемость ассистента – это хорошо, как правильно поставить «точку» в общении с пользователем и как пройти модерацию Google. Делимся советами, как создать идеальный Action, на примере нашего приложения «Йога для глаз».
Что такое Actions on Google
Google Ассистент умеет не только выполнять стандартные голосовые команды. Для него можно создавать собственные дополнения, которые будут расширять функциональность ассистента: развлекательные, образовательные, предоставляющие какой-то бизнес-сервис. Такие дополнения Google называет Actions. А на русский это переводится как «приложение». Подробнее об Actions on Google можно почитать здесь.
Как сделать Action правильно
Приложение для голосового ассистента — новый канал общения с аудиторией, совершенно не похожий, например, на сайт или традиционное мобильное приложение. Это принципиально другой пользовательский опыт (UX), у которого уже есть свои гайдлайны. Пользователь говорит с ассистентом, поэтому ваше приложение для ассистента тоже должно говорить с ним и делать это на естественном языке.
На хакатоне мы использовали собственный конструктор разговорных интерфейсов Aimylogic, на котором и реализовали наше первое приложение для Google Ассистента – «Йога для глаз». И на его примере сейчас расскажем о самых ценных уроках, которые мы выучили за это время.
Урок №1. Action — это именно голос
Ассистент — это голосовой интерфейс. Пользователи говорят с ассистентом, когда им удобнее сказать, а не открыть приложение или сайт. Поэтому нужно абсолютно четко понимать, почему та или иная функция вашего сервиса может быть полезна пользователю именно через голосовой интерфейс.
Голос — это когда спросить, узнать, заказать нужно быстро, а иногда и вовсе не глядя на экран. Голос — это когда и вопрос, и ответ короткие и понятные с первого раза. И если ради этого пользователю не нужно делать пять кликов, то он обязательно воспользуется такой возможностью.
В нашем приложении «Йога для глаз» есть такая функция. Это собственно упражнения для зрения. Пользователю нельзя отвлекаться на экран во время занятий. Вот почему здесь мы используем голосовой интерфейс.
Урок №2. Action должен быть действительно полезным
Ассистент решает задачи пользователя, а не просто открывает браузер. Не делайте приложение для ассистента, которое не делает ничего полезного. Action может быть очень простым и выполнять лишь одну функцию вашего сервиса, но она должна быть стопроцентно полезна. Иначе в ней нет смысла.
«Йога для глаз» полезна тем, что пользователю не нужно запоминать упражнения и их порядок в разных комплексах. Он просто вызывает Action, который зачитывает упражнение одно за другим, а пользователь выполняет их.
Для этого мы выбрали несколько разнообразных комплексов и разместили упражнения в обычной Google-таблице на разных листах. Наше приложение использует эту таблицу как базу данных, выбирает список упражнений из нужного листа с помощью HTTP-запроса и далее по циклу зачитывает их пользователю. Как только пользователь заканчивает очередное упражнение, он говорит «Давай дальше», и Action зачитывает следующее.
Урок №3. Action должен быть понятным и предсказуемым
Action — это диалог между ассистентом и пользователем. Ассистент всегда объясняет, что он ждет от пользователя. Когда Action ждет следующей реплики, пользователь должен понимать, что он может сейчас сказать и как отреагирует ассистент. В противном случае ассистент покажется пользователю неадекватным и непонятным. И пользоваться им не захочется.
Приложение «Йога для глаз» кратко, но понятно объясняет пользователю, что он должен говорить «Давай дальше» всякий раз, как доделывает очередное упражнение. После этого ассистент зачитывает следующее упражнение и снова ждет. Так пользователь понимает, что он должен делать, и чего от него ждет ассистент. Диалог получается простой, но на удивление эффективный.
В блоке Фразы мы добавили синонимы фразы «Давай дальше», чтобы ассистент реагировал адекватно и на другие формулировки. А еще мы добавили кнопки с подсказками — чтобы пользователь с первого раза понял, как работает наше приложение. Еще мы использовали вариативность в ответах, чтобы не повторять одну и ту же фразу каждый раз, как пользователь начинает занятие.
Урок №4. Action должен говорить кратко, но естественно
Ассистент — это робот, который хочет быть похожим на человека. На практике это выливается в то, что все реплики ассистента должны быть понятными, но не слишком роботизированными.
Синтез речи — штука сложная. Слушать длинный текст от робота трудно, чуть переусердствуешь с длительностью фразы — и пользователь не дослушает ее до конца. А если ассистент совсем уж как робот будет шифровать послание в двух словах, то его и вовсе не поймут. Ну или пользователю потребуется больше усилий, чтобы понять, что от него требуется.
Поэтому работайте над вашими ответами. Сделайте их с одной стороны короткими, а с другой — добавьте в них разговорной речи.
Когда мы выбирали в интернете комплексы упражнений для зрения, то увидели, что они хорошо подходят для сайта, а не для диалогового интерфейса. Поэтому мы переработали каждое упражнение, чтобы сделать его одновременно короче и понятнее на слух. Например, на сайте с упражнениями был такой текст:
Закройте глаза. Затем разотрите ладони и приложите их к глазам. Оставайтесь в таком положении, пока руки не отдадут тепло. Затем, не открывая глаз, снова разотрите ладони и опять приложите их глазам. Выполните упражнение три раза.
Мы изменили его так:
Закройте глаза. Сильно потрите ладошки, поднесите их к глазам и посидите так минуту.
И разбили на две реплики. Когда пользователь скажет «Давай дальше», ассистент ответит «А теперь повторите так еще два раза».
Нельзя просто скопировать текст с сайта и использовать его для голосового ассистента. Над текстами нужно поработать, чтобы они были понятны на слух.
Урок №5. Action должен взаимодействовать с пользователем
Ассистент — это личный помощник. Он должен помогать пользователю получить результат, а не просто ждать от него действий. На сайте или в мобильном приложении мы делаем интерфейс с кнопками, списками, картинками и т.д. Голосовой помощник тоже может все это, но главное отличие в том, что он говорит и позволяет пользователю сказать любую фразу. А это меняет подход к UI.
Пользователь может не расслышать, что ему сказал ассистент. Или не понять с первого раза. Ассистент должен быть всегда готов повторить, если его попросят. Либо переформулировать свой ответ, если он непонятен. Поставьте себя на место ассистента. Вы говорите с другим человеком, и вам важно, чтобы тот понял вас, и не обязательно с первого раза. Вы не просто показываете собеседнику лист бумаги с пунктами меню, а помогаете сделать выбор.
В «Йоге для глаз» мы сделали так, чтобы ассистент мог всегда повторить упражнение, если пользователь попросит. Причем не просто вывести текст упражнения заново, а в разговорной манере предложить сделать упражнение еще разок. Для этого мы использовали несколько вариаций фразы «Повтори» в блоке Фразы и поставили еще один бабл с текстом перед тем, как повторить текст упражнения.
Урок №6. Action не имеет права ломаться
Ассистент должен адекватно реагировать даже на непонятные фразы пользователя. У ассистента нет «синего экрана» или окна с ошибкой и кнопкой ОК. А пользователь, в свою очередь, может сказать все что угодно, причем совсем не то, чему обучен ваш Action. В этом случае приложение не должно «обвинять» пользователя в том, что тот «не так говорит». Нужно как-то отреагировать на непонятную команду и еще раз объяснить пользователю, чего от него ждут.
Просто сказать «Ой, я вас не поняла» — недостаточно. Это все равно что вывести всеми любимое окошко с ошибкой. «И что мне делать дальше?» — спросит пользователь.
«Йога для глаз» реагирует на непонятные фразы очень просто — она уточняет у пользователя, завершил ли тот текущее упражнение. А если и в этом случае он ответит что-то непонятное, то спросит — не хочет ли он вообще закончить заниматься. Для этого мы использовали ветку «Любая другая фраза» в блоке Фразы, чтобы реагировать на непонятные команды. Получилось так, что если пользователь не настроен продолжать занятие, то ассистент в непринужденной манере предлагает ему закончить.
Уделите непонятным фразам больше внимания. Ведь это «самая часто используемая функция» вашего Action.
Урок №7. Action должен узнавать пользователя
Ассистент на то и ассистент, что знает своего пользователя и меняет свое поведение со временем. Согласитесь, если вы запустили Action в самый первый раз, то приложение должно рассказать о том, для чего оно и как им пользоваться. Но если вы вызываете приложение каждый день, то не имеет смысла нагружать вас одной и той же справкой каждый раз. Нужно менять поведение приложения, как это делает ассистент, который с каждым днем все лучше узнает своего пользователя.
В Aimylogic есть информация о том, сколько времени назад пользователь обращался к приложению в прошлый раз. «Йога для глаз» использует это, чтобы по-разному приветствовать пользователя при запуске. А так как зарядкой нужно заниматься каждый день, то наше приложение напоминает об этом, если пользователь давно не запускал приложение. Для этого мы используем блок Условия, в котором проверяем, сколько времени назад мы получали предыдущий запрос. В зависимости от этого Action идет по разным веткам диалога.
Урок №8. Action должен заканчиваться
Нужно отключаться от микрофона, когда приложение заканчивает свою работу. Если этого не сделать, то Google отклонит ваше приложение при публикации в каталоге. Поэтому в вашем приложении должна быть хотя бы одна ветка диалога, которая приводит к выходу из приложения. При этом нужно обязательно «закрыть» микрофон.
В «Йоге для глаз» пользователь всегда может сказать «Хватит» или «Мне надоело», чтобы завершить занятия. В Aimylogic есть блок Завершение сценария — мы использовали его в своем диалоге, чтобы попрощаться с пользователем и завершить наш Action.
И еще несколько советов
Не пытайтесь впихнуть все функции вашего сервиса в голосовое приложение для ассистента. Диалог — это про простоту, а не про многофункциональность. Ваш Action может выполнять лишь одну функцию, но делать это так удобно, что пользователь будет обращаться именно к вашему приложению каждый день.
Не делайте очередной IVR из ассистента. Ассистент не должен перечислять возможные варианты ответа — это неестественно. Когда вы попадаете в голосовое меню — это страдание. Не нужно делать то же самое из ассистента. Он умеет распознавать речь, поэтому поработайте над вашим сценарием так, чтобы он был естественным. В том же Aimylogic для этого есть все инструменты, и при этом можно вообще не писать какой-либо код.
Кнопки — это подсказки, а не основной элемент голосового UI. Ассистент — это не кнопочный интерфейс, а голосовой. Поэтому кнопки нужно использовать только как подсказки. Ваш диалог должен быть таким, чтобы пользователь справился и без кнопок.
Напишите короткую политику конфиденциальности и укажите в ней название вашего приложения. Без этого ваше приложение не пройдет модерацию в Google. Посмотрите на наш финальный вариант, чтобы не делать те же ошибки, что и мы :)
Google Ассистент совсем недавно начал понимать русский. И в нем еще пока нет многого из того, что есть на западе (классный голос, умная колонка и т.д). Но все это — вопрос времени. Уже сейчас можно пробовать осваивать этот новый канал для своих сервисов, используя имеющийся опыт, которым делится сам Google и другие разработчики.
-
Интегрированные среды разработки2 недели назад
Лучшая работа с Android Studio: 5 советов
-
Новости4 недели назад
Видео и подкасты о мобильной разработке 2024.43
-
Новости3 недели назад
Видео и подкасты о мобильной разработке 2024.44
-
Исследования2 недели назад
Поможет ли новая архитектура React Native отобрать лидерство у Flutter в кроссплатформенной разработке?