Дизайн Ольга Шишкова
1 893

Разработка голосового интерфейса StarCraft II для Alexa

Глава инженерного отдела UpsideLab Рафаль Цимерис — о том, как играть в стратегию с помощью голосового управления.

В закладки

В магазине навыков Alexa есть множество игр. Но большинство из них либо простые викторины, либо текстовые приключенческие игры из 1970-х годов, перенесённые на голосовой интерфейс.

Мы думали, можно ли сделать что-то ещё.

Недавно мы были на хакатоне Talk to Me, Berlin, где придумали концепт (и работающий прототип), который показывал, как можно внедрить голосовые интерфейсы в видеоигру.

Когда голос работает лучше всего

Голосовой интерфейс подходит приложениям c режимом управления без рук. Так можно одновременно делать несколько задач и выполнять простые действия, не переключая на них внимание полностью.

Когда вы ведёте машину или делаете себе бутерброд, удобнее сказать что-то виртуальному помощнику, чем взять телефон и сделать действие самому.

С точки зрения военнокомандующего

Управление армией есть во всех стратегиях.

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

Но как ощущать себя генералом, не отдавая приказы? А ещё приходится управлять всеми частями войск самостоятельно, нет возможности выбирать задания своим подчинённым.

Мы решили исправить это, превратив Alexa в «умного» внутриигрового помощника.

Чтобы развить идею дальше, мы выбрали StarCraft II. У нас было на это несколько причин:

  • Игра футуристична, как и виртуальные помощники.
  • Это стратегия со сражениями, поэтому она идеально подходит для того, чтобы отдавать приказы.
  • Здесь требуется многозадачность, а это подходящее условие для внедрения взаимодействий в режиме управления без рук.
  • В игре есть API, с помощью которого можно к ней подключиться.

Выбор команд

Мы сосредоточились на конкретных игровых ситуациях и предложили следующие команды.

  • Тренировка дополнительных войск и отправка их на поле сражения по готовности. Это полезно, если вы понимаете, что отправили в бой слишком маленькую армию. Можно сосредоточиться на битве, потому что вы знаете, что скоро прибудут дополнительные солдаты.
  • Эвакуация рабочих на базу. Когда вы видите, что приближается враг, можно быстро скомандовать наиболее уязвимым частям вернуться в безопасное место. Эта же команда подойдёт, если надо завести флот в убежище, тем самым получить преимущество над вражескими войсками.

Знакомьтесь, Кейт Блэкуотер

Alexa не сочеталась с игровой вселенной. Люди привыкли к тому, что она приветливая и весёлая, а это совсем не подходит военному офицеру.

Чтобы голосовой пользовательский интерфейс лучше соответствовал игре StarCraft, мы разработали альтернативную версию виртуального помощника и назвали её Кейт Блэкуотер.

Кейт — ваш подчинённый, командир, которому можно доверить некоторые задачи. Она находится на базе и следит за тем, что там происходит.

Она немного неприветлива, отвечает кратко и точно: «Вас поняла. Подтверждаю».

Вот примеры команд, которые понимает помощник:

  • Alexa, скажи командиру отправить больше солдат.
  • Alexa, скажи командиру всех эвакуировать.
  • Alexa, узнай у командира о боеготовности.

Также мы воспользовались другими сервисами преобразования текста в речь, потому что голос Alexa слишком мягкий для этой игры. Подготовили ответы, которые больше подходили Кейт, — они были сухими и чёткими.

Живая демонстрация

По ссылке — создание навыков Alexa с помощью Python и AWS Lambda.

#дизайн

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Ольга Шишкова", "author_type": "self", "tags": ["\u0434\u0438\u0437\u0430\u0439\u043d"], "comments": 23, "likes": 17, "favorites": 1, "is_advertisement": false, "subsite_label": "design", "id": 42689, "is_wide": false, "is_ugc": true, "date": "Mon, 30 Jul 2018 09:26:00 +0300" }
{ "id": 42689, "author_id": 107557, "diff_limit": 1000, "urls": {"diff":"\/comments\/42689\/get","add":"\/comments\/42689\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/42689"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199114 }

23 комментария 23 комм.

Популярные

По порядку

Написать комментарий...
2

концепт крутой, но вот если бы всей игрой можно было рулить ТОЛЬКО голосом, было бы вообще огонь. полагаю, пришлось бы автоматизировать ряд задач
(или вести список команд, которые ИИ будет выполнять по порядку) и нумерацию отрядов. хотя, это, конечно, в итоге будет напоминать боевое программирование.

уже вижу бои двух вещающих коммандоров: оба орут на комплюкеры, потому что сами что-то напутали или забыли правильную формулировку приказа

Ответить
4

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

Ответить
2

за что аркадий ни возьмется
все превращается в рэп-баттл

Ответить
1

да классно. теперь и безрукие смогут рубится в SC )

Ответить
3

Если бы они показали реальный матч хотя бы с игроком из "золотой лиги", я бы еще мог поверить
А так - простое баловство.

Ответить
3

ну с баловства все и начинается. Лет через 5-7 думаю можно будет уже с профи порубиться ))

Ответить
3

С профи порубиться можно будет только в том случае, если микрить за тебя будет Автоматон9000

Ответить
2

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

Ответить
0

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

Ответить
0

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

Ответить
1

Алекса, всех батраков на минералы, разведка, фаст пуш через 2 харчи зерглингами. GG WP.

Ответить
0

Alexa, show me the money

Ответить
0

Хотя никогда не стоит забывать про три барака пуш под стимпаком. Командуешь Алексе что-то вроде Ф2-a-t и выходишь в топ серебра.

Ответить
0

Даже если играть без рук, нужно как-то управлять мышкой (например, взглядом)
И если армию еще можно направлять в область а-кликом, то как научиться ставить здания именно в том месте, где надо, я не могу представить.

Ответить
0

Мне бы с руками серебро завалить 😂

Ответить
0

при этом же реальное сложнилово в файте - подойти покоцать, отойти
выманить маринс колосом и пр. не взлетит пока что, согласен с вами коллега. привет из золтой лиги )

Ответить
4

Дота опустеет же.

Ответить

Комментарий удален

1

Ну ваш телефон тоже начинался с ..транзистора

Ответить

Комментарий удален

0

Тут надо самому тестить насколько функционален этот помощник. Я как активный игрок в sc2 вижу пару кейсов, но надо тестить

Ответить

Комментарий удален

0

Действия описанные тут - это довольно простые макросы. Вместо той же Алексы, можно просто поставить себе Voice Attack и настроить его под себя.

Ответить
0

За то время, пока он отдавал Кейт команду послать 5 солдат, профессиональный игрок (с 300-500 действиями в минуту) успеет построить два барака, 15 солдат и довести их до врага на батлкруйзере.

Ответить
0

На медиваке

Ответить
0

Ну я для красного словца приврал, да и батлкрузер обывателю будет понятнее ;)

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Голосовой помощник выкупил
компанию-создателя
Подписаться на push-уведомления