Голосовые помощники как технология возникли благодаря развитию целого созвездия других технологий. И одним из таких голосовых помощников стала Маруся, относительно недавно созданная в Mail.ru Group. В её основе лежат последние разработки компании в области распознавания речи, машинного обучения и быстрой обработки крупных массивов данных. Маруся — это диалоговая платформа. Она способна взаимодействовать с человеком не только звуком, но и посредством изображений или текста. Есть много ситуаций, в которых она ответит не голосом, а изображением, текстом или ссылкой.
Маруся дебютировала еще в прошлом году, а первое устройство с этим ассистентом появилось в апреле 2020. Компания развивает его, делает умнее и наполняет библиотеку скиллов. В частности, ассистент стал лучше понимать пользователя, улучшился TTS. Кроме того, Маруся научилась управлять умным домом. В июне 2020 года Mail.ru Group открыла возможность создавать свои собственные скиллы. С тех пор протокол сильно прокачался и возможности ассистента намного выросли, а для разработчиков появился отладчик, где можно протестировать созданные скиллы.
Содержание:
- Как работает Маруся.
- Как сделать скилл полезным.
- Как создать скилл для Маруси.
- Как перенести скилл из других ассистентов.
- Как устроена среда отладки скиллов.
- Как добавить скилл через ВКонтакте.
- Как осуществляется модерация скиллов.
- Как добавлять изображения в Марусю.
- Как добавлять звуки в Марусю.
1. Как работает Маруся
В основе работы Маруси лежит система «скиллов» или, по-русски, «навыков». Это крохотные диалоговые приложения, в которых прописаны реакции и действия голосового помощника в ответ на определённые голосовые запросы. Этакие микросервисы, если вы знакомы с этой программной архитектурой. Пользователи взаимодействуют со скиллами Маруси, которая может быть встроена в самые разные устройства и отдельные программы. Причём у устройств могут быть сенсорные экраны или только голосовые интерфейсы.
На сегодняшний день Марусю поддерживают:
- мобильное приложение Маруся на iOS;
- мобильное приложение Маруся на Android;
- умная колонка «Капсула»;
- умная колонка Prestigio Smartvoice;
- приложение Почта Mail.ru для iOS;
- приложение Почта Mail.ru для Android.
Платформа не ограничивает вас тем набором скиллов, который заложен разработчиками. Вы можете создавать их самостоятельно.
2. Как сделать скилл полезным
Прежде чем начать создавать скилл, постарайтесь абстрагироваться от всех инструментов и процессов. Представьте, что пользователь разговаривает не с устройством, а просит выполнить свою задачу какого-нибудь специалиста. Задумайтесь: «Если бы вместо моего скилла был человек, идеально выполняющий эту задачу, как бы он общался с заказчиком?» Распишите по шагам, как будет проходить этот диалог, какой информацией будут обмениваться заказчик и исполнитель. Учитывайте, что диалог и сценарий использования может отличаться для Маруси в умной колонке и в приложении. В приложении вы можете часть информации вынести в визуальный интерфейс, а в умной колонке доступно только голосовое управление.
При общении с Марусей пользователь может говорить что угодно, и нужно предусмотреть пограничные ситуации, чтобы он не зашёл в тупик. Для этого проверьте свой скилл по чеклисту TRINDI (на русском).
После оттачивания сценария нужно продумать интерфейс. Для проверки его удобства рекомендуем второй важный чек-лист — usability-эвристики Нильсена (на русском). По нему проверьте ключевой сценарий и все подзадачи и ответвления. Чек-лист покажет, доносите ли вы всеми необходимыми способами пользователю сигналы о том, что скилл сработал и как он сработал. А заодно поможет правильно обработать ошибки: не просто выдав уведомление, а с пояснением, что делать дальше.
А еще мы советуем использовать длинное тире (—) в диалогах с пользователем, а в качестве кавычек использовать только начертание, принятое в русской типографике — «ёлочки». И не забывайте, что Маруся обращается на «вы» в независимости от возраста пользователя.
3. Как создать скилл для Маруси
- С помощью конструктора голосовых приложений Aimylogic. Платформа скиллов общается с самим скиллом посредством протокола. Вебхук (webhook) — это веб-сервис, созданный разработчиком. Этот веб-сервис поддерживает протокол Маруси и способен принять и обработать запрос от пользователя (который Маруся перенаправит во внешний скилл) и отправить ответ. Чтобы сделать такой веб-сервис нужно обладать навыками программирования. Но можно воспользоваться конструктором для создания скиллов или ботов, которые значительно упрощают процесс.
- Разработать самостоятельно. Для этого придётся изучить подробную документацию по созданию скиллов для Маруси. В ней подробно описан протокол, по которому взаимодействует Маруся с внешними навыками, как работать с TTS, как работать с медиафайлами. Код приложения может быть написан на любом удобном вам языке и размещен на любом сервере. Главное, чтобы вебхук был доступен из интернета и воспроизводил протокол Маруси из документации.
- Заказать разработку скиллов у сторонних разработчиков. Тут всё то же самое, что и в предыдущем пункте, только работа будет произведена кем-то другим. Для этого нанятая команда должна иметь опыт по проектированию диалоговых систем (например чат-ботов) и созданию приложений с голосовым управлением.
4. Как перенести скилл из других ассистентов
Если у вас уже есть скилл, созданный на платформе AImylogic, то для подключения его к Марусе достаточно выбрать канал Маруся в настройках и следовать инструкции. Более подробную информацию можно прочитать на странице платформы. При этом все разработчики, которые создают скиллы для Маруси с помощью Aimylogic, могут хостить эти скиллы бесплатно. Для этого есть специальный тариф — Skillmaster.
На что стоит обратить внимание при переносе скилла:
- Проверить скилл на упоминания брендов и компаний.
- Убрать стороннюю монетизацию, ссылки на другие каталоги и прочие специфичные настройки.
- Проверить разметку голосового синтеза. Подробная инструкция по ссылке.
- Проверить хостинг картинок. Возможно, в переносимом скилле изображения подгружаются из облачного хранилища. Для работы с изображениями необходимо их загрузить в интерфейсе ВКонтакте.
- При желании можно конвертировать аудио, используя библиотеку звуков Маруси.
5. Как устроена среда отладки скиллов
Нам важно, чтобы разработчики могли быстро проверять свои идеи, легко отлаживать и тестировать скиллы на нашей платформе. Для этого мы создали среду для тестирования скиллов.
Она позволяет не публикуя скилл опробовать его на любом клиенте Маруси. Для начала работы достаточно указать среде Webhook URL разрабатываемого скилла. При этом нет необходимости выкладывать его в сеть — разработчик может подключить к тестовой среде скилл, развёрнутый на своём компьютере, указав локальный адрес, например:
http://localhost:3000/webhook
Подключенный к среде скилл можно тестировать в любом клиенте Маруси: на колонке «Капсула», в мобильном приложении, во ВКонтакте или во встроенном в среду эмуляторе. Разработчик может переопределять некоторые параметры клиента, передаваемые в скилл: временную зону, геолокацию, язык интерфейса, признак наличия дисплея — это удобно для тестирования сценариев работы скилла.
Тестовая среда воссоздаёт production-окружение Маруси, поэтому уже на ранних этапах реализации разработчик может убедиться, что скилл правильно интегрируется с платформой. Если он возвращает ошибку, отвечает долго, или ответ от скилла не соответствует протоколу, то среда выведет соответствующее сообщение. Также среда отображает лог JSON-сообщений между скиллом и платформой, что помогает искать ошибки в бизнес-логике работы скилла.
6. Как добавить скилл через ВКонтакте
Сам скилл можно создать в разделе для разработчиков ВКонтакте. Чтобы добавить готовый скилл:
- В типах приложения выберите «Скилл Маруси».
- Добавьте название, которое будет совпадать с командой для активации скилла.
- Введите в поле Webhook URL адрес сервера, по которому будет размещен скилл, например https://example.com/test-webhook.
- Подтвердите действие.
Вы попадёте в интерфейс администрирования.
Обратите внимание: имя является первой фразой-триггером для вызова скилла. Фразы должны быть специфичны и уникальны, чтобы мы могли использовать их для внешних скиллов. Например, фразу «Расскажи анекдот» добавить не сможем, т.к. она уже используется во внутренних скиллах Маруси. А вот «Давай сделаем кодревью» пока можно использовать. Длина фразы активации не может превышать 64 символа.
7. Как осуществляется модерация скиллов
Все скиллы, которые создаются для Маруси сторонними разработчиками, в обязательном порядке проходят модерацию. Проходят быстро, всего за один рабочий день.
Каких правил нужно придерживаться, чтобы ваш скилл для Маруси был успешно допущен к использованию:
- картинки должны соответствовать теме скилла и законам РФ, а также не нарушать авторских прав;
- описание скилла должно быть простым, кратким и ёмким;
- категория должна соответствовать тематике скилла;
- скилл должен быть полезен и не носить рекламного характера;
- название скилла и активирующей его фразы не должно содержать известные торговые марки (исключение: если скилл представлен владельцем этой марки);
- скилл не должен давать доступ к контенту, защищенному авторским правом, если права на контент не принадлежат разработчику скилла.
Если ваш скилл удовлетворяет этим условиям, то всего за один день он будет промодерирован и опубликован.
8. Как добавлять изображения в Марусю
Маруся позволяет в ответе из внешнего скилла вставлять картинки. Для использования своего изображения необходимо загрузить с помощью формы загрузки изображений на странице редактирования информации о скилле на платформе загрузки скиллов ВКонтакте. После того, как изображение будет успешно загружено, оно отобразится рядом с формой загрузки вместе со своим идентификатором. Идентификатор изображения необходимо указывать в ответе внешнего скилла в поле
image_id
. Выглядеть такой ответ будет следующим образом:{
"response":{
"text":"Сейчас очередь в столовой 5 человек.",
"tts":"Сейчас очередь в столовой пять человек.",
"card":{
"type":"BigImage",
"image_id":239017,
"title": "Заголовок для изображения",
"description": "Описание изображения"
},
"buttons":[
{
"title":"Надпись на кнопке",
"payload":{},
"url":"https://example.com/"
}
],
"end_session":true
},
"session":{
"session_id":"574d41e0-a41e-4028-a73a-6f5b5",
"message_id":0,
"user_id":"3eae3c2f69b9f04e8cb15e157c4a9e05"
},
"version":"1.0"
}
9. Как добавлять звуки в Марусю
Произносимый Марусей текст можно разнообразить звуковыми эффектами, которые входят в библиотеку звуков Маруси. Для этого в поле
tts
(текст, предназначенный для перевода в речь) ответа внешнего скилла нужно вставить самозакрывающийся тег speaker
, в котором необходимо указать атрибут audio
. Выглядит это так:tts = “Поздравляю! <speaker audio=”marusia-sounds/game-win-1” /> Вы правильно ответили на все мои вопросы!”
В произносимую речь можно вставлять и собственные звуки. Для этого нужно создать скилл на платформе ВКонтакте, а затем на странице редактирования скилла загрузить свои аудиофайлы. Они будут доступны только для использования в вашем внешнем скилле. После того как звуки станут доступны, их можно вставить в речь с помощью тега
speaker
с указанием атрибута audio_vk_id
. Значением атрибута будет идентификатор загруженного вами звука. Выглядит это так:tts = “Угадайте, чей это голос? <speaker audio_vk_id=”-2000000002_123456789” />”
Платформа скиллов Маруси будет и дальше развиваться. Мы будем радовать разработчиков новыми фичами и развивать инструменты, чтобы создавать скиллы для Маруси было еще легче и интереснее. Следите за новостями и присоединяйтесь к нашему сообществу в Telegram!
azzas
Камрады, хоть кто-нибудь заценил прелести говорливого помощника для дома?
Кто то этим реально пользуется или это фишка ради фишки?
Я лично не знаю ни одного человека, кто делал бы что либо осмысленное через голосовых помощников.
Anna_Sadnova Автор
Голосовой помощник дома освобождает от лишних движений. Например, можно включить музыку голосом и управлять ей. То же самое с телевизором. То же самое с умным домом. Это особенно удобно, когда заняты руки или просто лень встать — все мы люди:) Также ассистент помогает с быстрыми вопросами. Например, можно не гуглить курс валют и как будет какое-то слово на английском, а просто спросить у помощника.
TheRaven
«Удобство» там примерно вот такое bash.im/quote/7352, за то личных данных оно собирает точно на всю катушку.
Anna_Sadnova Автор
Мы не храним пассивные аудио, только после слова «Маруся» и только в анонимизированном виде. Да и легенда о сборе данных через колонки, кажется, демонизирована. Если бы их кто-то собирал, то был бы огромный объем сырых данных, на обработку которых нужны очень большие ресурсы, которые непонятно как потом окупать.
Evgenym
То есть сейчас вопрос пока просто упирается в то, как их монетизировать?)
Anna_Sadnova Автор
Нет) Выше сказали про сбор данных, а я лишь сказала, что мы не только не собираем, но и в этом нет никакого смысла.
TheRaven
Т.е. Усманов и Ко вбухали 100500 денег в инфраструктуру по доброте душевной? Сказки-то нам не рассказывайте.
Anna_Sadnova Автор
Почему по доброте душевной? Капсула покупается за деньги, а Маруся — часть экосистемы, которая связывает между собой многие продукты и делает их для пользователя удобнее. Не все должно монетизироваться. Если человеку удобно пользоваться нашими продуктами, а разработка увеличивает интенсивность этого использования — это уже большое дело.
azzas
Это все конечно круто, но если комнат больше чем одна? Раскидывать эти умные колонки в каждой комнате и повелевать техникой грозным голосом? Или бежать в другую комнату чтобы отдать приказ? Или орать, чтобы в другой помощник тебя услышал?
Я щас не стебусь, мне реально интересно как это работает у тех, кто ежедневно юзает этого тамагочи.
Anna_Sadnova Автор
Могу рассказать про личный опыт использования. У меня Капсула стоит на кухне, но довольно хорошо срабатывает, когда я обращаюсь к ней из соседних комнат. Кричать при этом не нужно, просто обычным голосом позвать ее. Но, да, соглашусь, что если у вас большая 3, 4 или более комнатная квартира, то одной Капсулой не обойдешься. Ежедневно лично я использую команды «Доброе утро» (Маруся рассказывает про погоду, курс, новости и праздники), а также перед выходом из дома уточняю погоду. Также заметила за собой, что стала слушать значительно больше музыки, очень удобно просить включить нужный плейлист. Еще из любимых — таймер и тосты, но это, конечно, не ежедневно:)
Dokudovskaia
Для этого нужен мультирум. Он решает такую задачку. Я думаю, что рано или поздно он появится у всех производителей умных колонок.