Кто придумывает навыки Алисы?

Создатели популярных приложений рассказывают об особенностях работы с голосовым интерфейсом и муках творчества

Кто придумывает навыки Алисы?

Разработка

Каждый день голосовой помощник Алиса учится новому, и в этом ей помогают не только разработчики Яндекса. Создавать навыки может кто угодно. Энтузиасты разрабатывают как полезные приложения (например, чтобы голосом открывать шлагбаум в своем дворе), так и увлекательные игры и обучающие программы. Разработчиков лучших навыков каждый месяц награждают «Премией Алисы». Мы поговорили с несколькими победителями премии об особенностях работы с голосовым интерфейсом и муках творчества.

Word Coach — Тренер слов

Дмитрий Финогеев, ученик 11 класса, выпускник Яндекс.Лицея

Первый свой навык для Алисы я сделал прошлой весной на выпускном Яндекс.Лицея. Для лучших выпускников в Москве устроили хакатон, на котором рассказали, как работать с навыками, и дали возможность попробовать. Потом я свой навык «Завалинка» дорабатывал — нужно было как следует привести его в порядок. Это был мой первый подобный опыт, и для этого потребовалось гораздо больше времени и сил, чем я предполагал. Но на самом деле я бы считал его не более чем «пробой пера», потому как реализованные позже модули мне нравятся гораздо больше.

С каждой новой попыткой становилось все проще. И, например, первая версия навыка Word Coach, посвященного изучению английских слов, была сделана всего за два-три дня. После этого уже шла отладка и «шлифовка», добавление какого-то дополнительного функционала. В итоге на полноценную версию, которую я отправил на модерацию, ушла, по-моему, неделя.  

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

Cамое сложное — именно поиск идеи, большая часть времени уходит на нее 

В определенный момент я понял, что навыков по простому и удобному изучению английского языка с достойными отзывами пользователей просто-напросто не найти, и решил попробовать. Я создал свой навык с использованием API Яндекс.Переводчика, который позволял бы проводить различные операции с пользовательским словарем. Можно и переводить, и учить слова. Слова, которые можно учить с помощью навыка, разбиты на тематические подборки разных уровней — от базовых глаголов до специфических терминов. Судя по отзывам, многим понравилось. Кто-то даже заметил спрятанную отсылку к «Игре престолов»: в самом начале навык спрашивает ваше имя и один из предложенных вариантов «У человека нет имени».

Я и сам учил слова с помощью этого навыка, но сейчас на это не хватает времени. Скоро выпускные экзамены, а еще мы с ребятами из Лицея и нашим преподавателем выступаем с мастер-классом по созданию навыков Алисы.

Повелитель стихов

Григорий Французов и Денис Пешехонов, разработчики-фрилансеры

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

Игрок становится магом, который творит волшебство с помощью рифм, стихов и слов, путешествуя по разным локациям, встречая монстров и разбойников. Людям понравилось. Сейчас у нас порядка семи тысяч пользователей, и, если смотреть на наших знакомых, которые играют в квест, то это те люди, которые любят вечером на выходных поиграть в крокодила или в Alias. Проще говоря, любят словесные игры.

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

В случае с заклинаниями в первую очередь он оценивает количество уникальных слов в стихотворении, оценивает стихотворный размер и длину обеих строчек — они должны быть одинаковыми. Смысл не оценивается — мы не придумали, как это сделать — поэтому иногда пользователи сочиняют какие-то стихи, не связанные с сюжетом, хотя обязательные слова мы выбираем в соответствии с ситуацией. Например, в одном из квестов нужно было придумать двустишие со словом «ураган», чтобы разбить лесной завал. И один из игроков написал что-то в духе: «Как хорошо, что ты ураган, а не Ургант». А другой пользователь нестандартно отреагировал на задание победить оборотня заклинанием со словом «серебро».

Вместо того, чтобы «наколдовать» себе стихами серебряный меч, он решил просто откупиться от монстра:

Чтобы ты оделся и помылся, о страшный волосатый зверь,
Я серебра тебе отсыплю, оно хорошее, поверь.

Периодически игроки используют чужие строки из классиков, из известных песен или строчки реперов, в которых есть заданное слово. И алгоритм высоко оценивает такие двустишия. Ругаются довольно мало, хотя рифмы в стиле «брюки-***юки» встречаются — понятно, это первым делом приходит в голову — но мы с этим боремся и такие рифмы оцениваем низко.

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

В основном, конечно, пишут плохие, но хорошие мы отдельно себе выписываем и постим в специальный телеграм-канал.

Поэзия нам очень близка, хотя не то чтобы кто-то из нас занимался ей профессионально. Это почти как математика — есть определенный набор правил, они четко формализованы. Благодаря четкой системе стихотворных размеров можно рассматривать поэзию как алгоритм, работающий по определенным правилам. Нам стало интересно, как с поэзией работает Natural Language Processing (Обработка естественного языка). Мы начали копаться в разных статьях, в том числе нашли на Хабре разбор нейросети, которая умела сама писать стихи. Но чтобы хорошо писать, нужно знать правила, а значит по тем же принципам можно научить алгоритм и проверять сочиненное пользователем. Чем мы и занялись.

Мы не планируем бросать квест и будем его дорабатывать. В первую очередь хотим сделать режим PvP, чтобы можно было соревноваться с другими людьми. Сейчас размышляем о премодерации стихов, потому что люди пишут разное и не всегда стоит это показывать другому игроку. Кроме того мы хотим сделать квест ближе к аудитории, которая оказалась менее хардкорная, чем те, кто привык играть в текстовые квесты. Многим сложно держать в голове воображаемую карту мира, сложно влиться в сюжет, так что будем упрощать. Когда мы только запустились, пользователи в основном проигрывали, поэтому мы уже тогда поменяли баланс, чтобы игрокам было проще. Ну и будем придумывать новые квесты. Сейчас у пользователя есть показатель энергии, который уменьшается по мере прохождения. Мы сделали это для того, чтобы нельзя было пройти все за раз. Потому что многие справляются с приключениями быстрее, чем мы придумываем новые.

Чемпионат по программированию

Короткий путь в Яндекс

Страна ребусов

Рустам Таиров, фронтэндер

Я узнал про конкурс для разработчиков, как только он запустился, осенью 2018-го года, изучил вопрос, посмотрел документацию и решил поучаствовать. Я занимаюсь программированием на JavaScript и мне показалось интересной задачей создать навык для голосового интерфейса.

Для меня это еще и возможность немного сменить направление деятельности и поработать с бэкэндом, потому что на работе я в основном занимаюсь фронтэндом

Всего я написал два навыка, каждый из которых занял призовое место. Первый — это была игра «Угадай персонажа». Пользователь загадывает какого-то персонажа, а Алиса задает наводящие вопросы и в итоге угадывает, кто это. С каждым ответом пользователя круг сужается пока в итоге не остается один персонаж. Систему я взял готовую, с помощью API, и приладил ее к голосовому интерфейсу. 

В день, когда стало известно, что первый мой навык получил приз как один из лучших, мы сидели с женой и думали, что бы еще такое сделать. Моя жена предложила сделать навык для решения ребусов — она работает с детьми, может быть поэтому все еще про них помнит. Я-то сам с детства их не решал и с непривычки подзалип.

Вообще придумать идею сложнее всего, а дальше уже дело за малым. Я нашел в интернете сайты с ребусами, написал их владельцам о своей идее — они не были против. Так что я взял их изображения и за три дня сделал навык. Ничего сложного в этом не было. Изображения с сайтов нужно было обработать под формат, выкачать их вместе с ответами — естественно, не вручную — и загрузить в Яндекс.Диалоги. Это заняло больше всего времени. Правда, когда навык запустился, все-таки нашелся один баг — в некоторых заданиях и, соответственно, в ответах фигурировала буква Ё. Голосовой интерфейс Алисы ее не очень отличает и правильные ответы не засчитывались, Некоторые пользователи много-много раз повторяли ответ, уверенные, что это правильно. Чтобы больше никого не расстраивать таким образом, я решил просто убрать загадки с буквой Ё.

Сейчас хочу добавить в навык больше ребусов или даже сделать несколько уровней сложности. Но пока руки никак не дойдут.

Больше по теме

Разработка

Инструменты для создания компьютерных игр

Язык для создания текстовых игр, генератор эльфийских имён и библиотека визуальных эффектов

Разработка

Фотокомикс: Путь стажёра. Часть третья

Завершение истории студента Марка 

Разработка

Фотокомикс: Путь стажёра. Часть вторая

Продолжение истории о студенте технического вуза Марке, который решает пойти на стажировку в Яндекс

Разработка

Фотокомикс: Путь стажёра

Первая часть истории о студенте технического вуза Марке, который решает пойти на стажировку в Яндекс

Разработка

Стажировка в Яндексе

Направления: бэкенд- или фронтенд-разработка, машинное обучение, аналитика, мобильная разработка, тестирование.

Разработка

Сериал про языки программирования. Выпуск второй: Python

Рассказывает преподаватель ШАДа и разработчик рекламы Яндекса Илария Белова

Разработка

Чем занимается инженер по тестированию и как начать работать в этой области

Главные качества тестировщика — внимательность до дотошности, перфекционизм и сильное структурное мышление