ym88659208ym87991671
Голосовое взаимодействие | Документация для разработчиков
Skip to main content

Голосовое взаимодействие

Обновлено 20 апреля 2022

Этот этап проектирования включает:

  • обработку запросов пользователя (проектирование интентов);
  • написание ответных реплик ассистента;
  • проработку реакций интерфейса.

Проектирование интентов

В этом разделе мы рассмотрим, как обрабатывать запросы пользователя в Canvas App на примере смартапа «Забери кота». Предварительно рекомендуем ознакомиться с разделом UX-принципы проектирования интентов.

Определите интенты для голосового сценария

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

Как правило, в Canvas App на SberBox пользователь формулирует запросы, исходя из контекста и элементов интерфейса на экране. Где-то он голосом переходит к оплате, где-то выбирает карточку для открытия, а где-то просто ведет диалог и задает уточняющие вопросы. Поэтому большую часть интентов стоит проектировать, когда у вас уже есть верхнеуровневые макеты.

Для структурирования и передачи в разработку спроектированных интентов используйте таблицы, где:

  • Экран — начальный экран, на котором доступен голосовой запрос.
  • Обозначение — универсальное название интента на латинице, которое будет сквозной единицей разработки.
  • Наименование — суть (функция) голосового запроса в нескольких словах.
  • Описание — детальное описание запроса, может совпадать с пользовательской историей.
  • Фраза пользователя — пример фразы, которой пользователь может выразить свое намерение.
ЭкранОбозначениеНаименованиеОписаниеФраза пользователя
MainPage, SearchPageFindСatНайти котаПользователь хочет голосом найти подходящего кота«Найди мне котика белого цвета»
MainPage, SearchPageOpenCardОткрыть карточку с котомПользователь хочет открыть голосом одну из карточек на экране«Открой Маркизу»
CatPageTakeCatЗабрать кота (добавить в корзину)Пользователь хочет забронировать кота в приюте, чтобы его забрать«Давай забронируем кота»

Добавляйте интенты там, где нужно

Проектируя интенты, отталкивайтесь от экранов Canvas App, так как не все интенты должны отрабатывать на каждом из них. Например, когда пользователь находится на экране оформления брони, новый поиск нелогичен и может случайно сбросить важную сессию оформления. В таком случае можно сделать предупреждение о выходе или не обрабатывать интент поиска на этом экране.

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

Наполните интенты тренировочными фразами

Одна из главных задач проектирования интентов — собрать реплики, которыми пользователь выражает намерение и из которых вы сформируете тренировочные фразы для технологии SmartApp Brain. Чтобы повысить вероятность того, что запрос будет правильно классифицирован, собирайте реплики для тренировочных фраз. Это можно сделать при тестировании вашего прототипа или просто попросив друзей озвучить ту или иную команду на экране.

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

Обозначение интентаНаименование интентаОписание интентаС какого экрана доступенРеплики пользователя, которые заносим в SmartApp Brain
find_catНайти котаПользователь хочет голосом найти подходящего котаmain_page, search_page«Найди мне кота»
«Покажи мне кота»
«Найди мне кота из приюта»
«Есть ли черный кот»
open_cardОткрыть карточку с котомПользователь хочет открыть голосом одну из карточек на экранеmain_page, search_page«Открой карточку кота»
«Покажи кота»
«Открой Клару»
«Открой этого кота»
take_catЗабрать кота (добавить в корзину)Пользователь хочет забронировать кота в приюте, чтобы его забратьcat_page«Хочу забрать котика»
«Начнём оформление кота»
«Давай забронируем кота»
«Перейти к бронированию»

Проектирование ответов ассистента и реакций интерфейса

Для написания реплик ассистента ознакомьтесь с редакционной политикой персонажей Салют. Изучите также советы по проектированию ответов ассистента с точки зрения UX.

Ответы на основной сценарий

Сначала спроектируйте ответы на интенты основного голосового сценария, затем — для всех его разветвлений.

Например:

  • что уточняет ассистент, если не хватило данных для заполнения формы;
  • что отвечает ассистент, если нет результатов поиска;
  • какие подсказки ассистент дает пользователю и когда, на каких экранах;
  • что ассистент отвечает, когда ни один интент не классифицирован и т. д.

Таких разветвлений может быть столько, сколько требуется в сценарии вашего смартапа.

Обращение к ассистенту через events

Помимо голосовых запросов есть еще один неявный способ обращения к ассистенту — события (events). Например, загрузилась страница, отработал таймер, пользователь нажал на кнопку. Все это — события, которые мы можем обрабатывать со стороны приложения и реагировать на них.

Чтобы описать все реакции смартапа на запросы пользователя и события, используйте таблицу:

Начальный экранИнтент/СобытиеУсловие 1Условие 2Уточнение данных ассистентом (заполнение слотов)Ответ пользователя (при заполнении слотов)Ответ ассистентаОтвет приложения
MainPage, SearchPageopen_cardНа экране есть карточка с названным именемПервый вход пользователя--«Открываю подробную информацию о {cat_name}. Вы можете забрать {cat_name} домой или пожертвовать деньги на содержание в приюте»Открывается карточка
Не первый вход пользователя--«Открываю подробную информацию о коте»
На экране нет карточки с названным именем---Запуск поискового механизма

В этом примере мы видим такие разветвления:

  • наличие запрашиваемого пользователем при открытии объекта на экране;
  • логика первого и последующих входов в приложение для включения в ответ подсказок.

Добавление нескольких ответов

Чтобы диалог был более естественным, для каждого ответа ассистента стоит предусмотреть несколько вариантов ответа.

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

Пример диалога в смартапе «Забери кота»:

Событие: Пользователь открыл приложение из каталога и попал на главный экран (MainPage).
> Ассистент: «Привет, я помогу тебе подобрать четвероногого друга и доставить его прямо домой. Кого мы будем искать?» (MainPage).
> Пользователь: «Найди котенка девочку белого окраса» (от пользователя с главного экрана — MainPage — поступил поисковый интент).

Ассистент: «Вот кого я нашла по вашему запросу» (на экране смартапа выводятся результаты поиска — SearchPage).
> Пользователь: «Открой подробное описание Клары» (пользователь находится на экране с результатами поиска — SearchPage — и формирует интент, побуждающий к открытию карточки с детальным описанием кота).

Ассистент: «Открываю подробную информацию о коте. Вы можете забрать кота домой или пожертвовать деньги на его содержание в приюте» (на экране смартапа показывается карточка выбранного кота — CatPage).
> Пользователь: «Хочу забронировать Клару» (пользователь находится на экране с карточкой кота — CatPage — и формирует интент, побуждающий к бронированию кота).

Ассистент: «Давайте выберем дату и способ доставки котёнка домой» (на экране смартапа с карточкой кота — CatPage — ассистент уточняет данные).

note

Приветствие при открытии смартапа необязательно. Его можно использовать как вводную инструкцию для пользователя при первом входе. Также это может быть актуально, если в смартапе всего одна функция.

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней