В конце июля Google провел закрытый хакатон в своем московском офисе (тот, который напротив Кремля). Темой была разработка Actions для голосового ассистента. Мы (Just AI) и еще с десяток команд побывали на этом мероприятии и вынесли из него не только красные рюкзаки с гугловскими ништяками, но и массу полезных знаний о том, как создавать качественные голосовые интерфейсы.
За пару дней хакатона все попробовали разработать голосовое приложение для ассистента, а кто-то даже опубликовал свои труды в каталоге Google Actions. На примере нашего приложения мы расскажем о том, как создать идеальный Action и легко пройти модерацию гугла.
Что такое Actions on Google
Google Ассистент умеет не только выполнять стандартные голосовые команды. Для него можно создавать свои собственные дополнения, которые будут добавлять ассистенту функциональности. Такие дополнения Google называет Actions. А на русский это переводится как “приложение”. Подробнее об Actions on Google можно почитать здесь.
Зачем создавать свой Action
Если вы делаете какое-то мобильное приложение, или у вас есть сайт, который предоставляет вашим клиентам какие-то полезные услуги, то Google Ассистент — это еще один классный канал взаимодействия с вашим потребителем. Ведь голосовой ассистент установлен на более чем 500 миллионах девайсов! И это не только смартфоны, но и умные колонки, автомобили, часы, телевизоры. Поэтому, если вы дополните ваш сайт или приложение навыком для голосового ассистента, то вы, скорее всего, найдете новых клиентов и пользователей, потому что они уже разговаривают с ассистентом на всех этих девайсах. И они охотнее расскажут о вашем сервисе друзьям и знакомым.
Как сделать Action правильно
Но не стоит думать, что приложение для голосового ассистента — это то же самое, что и сайт. Это принципиально другой пользовательский опыт (UX), у которого уже есть свои гайдлайны. Пользователь говорит с ассистентом, поэтому ваше приложение для ассистента должно говорить с пользователем на естественном языке.
На хакатоне мы использовали наш собственный конструктор разговорных интерфейсов Aimylogic, на котором и реализовали наше первое приложение для Google Ассистента. И на его примере сейчас расскажем о самых ценных уроках, которые мы выучили за это время.
Вот так наш готовый Action выглядит в конструкторе Aimylogic.
Урок номер 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 и другие разработчики.
ПС. Чуть позже мы опубликуем в наших туториалах пошаговую инструкцию о том, как сделать «Йогу для глаз» на Aimylogic. Заходите в наш Telegram чат для разработчиков, чтобы не пропустить публикацию.
Комментарии (5)
Anton23
14.08.2018 08:43Так это ваш actions оказывается? Пользуюсь уже около недели, мне понравилось. Про него даже на сайте Google «Что умеет Ассистент» написано.
delimer
15.08.2018 18:56Жду не дождусь, когда уже появится на российском рынке умная колонка и нормальный голос. Пока в этом плане выигрывает Алиса от яндекса.
exehoo
Какой миленький красный сарафанчик =)
vzhicharra
Пачка же!
gopotyr
Действительно, первый взгляд, пока не начнешь рассматривать более детально:
парень зачем то напялил юбочку на лямках. Такие девочки в дет.садах носят.