Вы пользуетесь каждый день голосовыми помощниками? Я — нет. Хотя разрабатываю их уже более 7-ми лет!
Такими словами открывалась девелоперская сессия нашей конференции по разговорным технологиям в Москве.

А что, собственно, не так со всеми этими «Алисами», «Марусями» и «Google Ассистентами»? Почему пользователям с ними неудобно, а бизнесу — непонятно? И какая этому всему есть open source альтернатива?



Проблемы мобильных голосовых помощников


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

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



1. Уникальное название


У каждого голосового «скила» (у Алисы — «навыка») должно быть уникальное название. Ведь иначе однокнопочный «комбайн» не может различать их между собой! И чем больше функций у голосового ассистента, тем сложнее подобрать такое название, чтобы пользователи его запомнили.

2. Сложный discovering


«Алиса, запусти навык Мой любимый магазин». Или «Okay Google, talk to Pizza Papa Johns». Знакомо? Пользователя еще нужно научить запускать ваш голосовой сервис.

3. Ограничения UI, UX и API


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

И много чего еще


Кроме этого, есть ограничения, накладываемые технологиями распознавания и синтеза речи, сложно авторизовать пользователя в вашем сервисе и много чего еще.

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

Концепция in-app ассистента


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



Вам понятно, откуда там пользователь, и кто он. Какими функциями он пользуется, как их улучшать, развивать, и как это влияет на бизнес. За всем этим стоит ваша команда мобильной разработки, дизайнеры, UX-специалисты, QA-отдел и продуктовики.

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

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

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

Кейсы in-app ассистента


Голосовая функция — точно так же ситуативна, как и запуск мобильного приложения. Пользователю может быть удобно запустить какую-то функцию голосом, если

  • Это новый пользователь, и он еще не разобрался со структурой UI вашего приложения
  • Пользователь не помнит, где спрятано нужное меню или кнопка
  • Если ему нужно просто повторить предыдущее действие
  • Если можно сказать два слова вместо 5-ти тапов и скроллов
  • Когда легче объяснить проблему, чем искать ее решение внутри приложения

Посмотрите на пару простых кейсов


Например, в банковском приложении можно переводить средства людям из списка контактов. In-app ассистент может понимать, кого пользователь имеет в виду, когда говорит «Переведи маме 500 рублей». А пользователю не нужно искать нужную кнопку, искать контакт и вводить сумму.


В приложении ритейлера пользователь может вызвать ассистента, чтобы просто описать проблему, а ассистент предложит нужный товар.



Здесь важно понимать, что такой голосовой интерфейс является только дополнительным к уже существующему UI. Как уже было сказано выше — ценность появится только там, где ассистент выступает в качестве «навигатора» или рекомендательной системы.

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

Как добавить голос в свое приложение




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

Но есть open source решение, которое поможет сделать все это гораздо быстрее и эффективнее!

Aimybox


Недавно мы уже немного писали об open source голосовом ассистенте Aimybox, который как раз и призван облегчить процедуру внедрения голосовых функций в уже готовое мобильное приложение. Здесь мы расскажем о нем с точки зрения концепции in-app ассистентов.



Сейчас никого не удивишь наличием на сайте кнопки онлайн-чата, который дает возможность быстро связаться с оператором и задать интересующие вопросы по товарам и услугам. Это дополнительная фича, которая, однако, увеличивает конверсии при правильном ее использовании. Причем, чтобы запустить онлайн-чат на своем сайте, как правило требуется всего-то добавить один script тэг в ваш HTML код.

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

Здесь можно посмотреть, как это делается.



Из коробки Aimybox дает лаконичный и кастомизируемый UI (который при желании можно и вовсе переделать) и сам SDK ассистента. При этом в качестве движков распознавания, синтеза и NLP можно выбрать из уже имеющихся или создать свой модуль.

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



В итоге


Голосовые ассистенты — это, конечно, здорово. Но ощущение такое, что тот путь, по которому они сейчас идут, лишь уводят и пользователя, и бизнес от удобной технологии. И зачастую это связано в том числе и с тем, что разработчики пока не умеют создавать качественный голосовой UX. О том, как это исправить, мы тоже недавно писали.

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

Полезные ссылки


Комментарии (19)


  1. pyrk2142
    11.12.2019 14:20

    Голосовая функция — точно так же ситуативна, как и запуск мобильного приложения. Пользователю может быть удобно запустить какую-то функцию голосом, если
    • Это новый пользователь, и он еще не разобрался со структурой UI вашего приложения
    • Пользователь не помнит, где спрятано нужное меню или кнопка
    • Если ему нужно просто повторить предыдущее действие
    • Если можно сказать два слова вместо 5-ти тапов и скроллов
    • Когда легче объяснить проблему, чем искать ее решение внутри приложения

    Имхо, большая часть этих причин — знак о том, что с интерфейсом и дизайном приложения что-то не то. Надо менять специалистов по интерфейсу, а не обмазывать приложение голосовыми помощниками. Кажется, что есть немного реальных случаев, когда работающие голосовые помощники полезны: облегчение жизни инвалидам и работа тогда, когда руками что-то делать неудобно: холодно, они заняты. Для остального есть UX.


    Вы пользуетесь каждый день голосовыми помощниками? Я — нет. Хотя разрабатываю их уже более 7-ми лет!

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


    1. aimydima Автор
      11.12.2019 14:35

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

      Однажды, например, я показал одному заказчику от ритейла, как пользователь просто говорит ассистенту — «Хочу борщ» вместо того, чтобы сперва искать где-то рецепт, а потом искать в его приложении ингредиенты и заказывать их в нужном количестве. Ассистент делает все это и сразу складывает ингредиенты на сумму в 700 рублей в корзину. Вот вам и UX. Уж не говоря о банковских переводах, где нужно руками набирать телефоны и суммы.


      1. khim
        11.12.2019 18:11

        Ассистент делает все это и сразу складывает ингредиенты на сумму в 700 рублей в корзину.
        После чего оказывается снесённым потому что вместо того, чтобы получить горячий борщ из расторана пользователь получает вот всю эту кучу ингридиентов…

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

        Собственно основная проблема в ошибках. Если помощник делает не то, не там и не тогда, когда нужно — проще его отключить и забыть, чем понять — когда ему можно доверять, когда нет.


        1. aimydima Автор
          11.12.2019 18:43
          +1

          После чего оказывается снесённым потому что вместо того, чтобы получить горячий борщ из расторана пользователь получает вот всю эту кучу ингридиентов…


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

          но достаточно одного раза, когда деньги улетят чёрт знает куда


          Перед этим приложение естественно покажет экран, на котором будут уже заполнены поля «Кому» и «Сколько» с кнопкой «Перевести».


      1. zirix
        11.12.2019 20:50
        +1

        Сегодня пользователи все чаще желают

        Типичная уловка/фраза маркетологов. Попытка представить желаемое за действительное.

        У меня есть противоположное мнение: все эти голосовые помощники бесят людей, когда помощниками пытаются реализовать сложный интерфейс (что-то сложнее, чем включить/выключить свет).
        Отличный пример — это боты, которые отвечат при звонках в тех. поддержку.


        1. aimydima Автор
          11.12.2019 22:10

          Вы где-то увидели "сложный голосовой интерфейс" в этой статье?) Как раз наоборот. Именно об этом и речь.


          1. zirix
            11.12.2019 23:20
            +1

            Я неудачно построил фразу и не перечитав нажал отправить. Читайте как:

            более сложный интерфейс, чем «включить/выключить свет»


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

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

            Произвольные фразы вида:«как вывести пятно» и «Переведи маме 500 рублей» работать не будут. Точнее будет работать конкретно эти фразы и еще десяток/сотня.
            Пользователь же будет формулировать фразы совсем не так как ожидает разработчик и будет пытать спросить то, что бот не умеет. После десятка неудачных диалогов бот начнет бесить.

            И вообще, как написал pyrk2142, вы пытаетесь решить проблемы плохого UX (делая его еще хуже)


            1. aimydima Автор
              12.12.2019 01:28
              -1

              Ну, тут мало что можно комментировать, к сожалению… Современные технологии NLP конечно же легко справляются с фразами "переведи маме 500 рублей" и "чем вывести пятно".


              1. deitry
                12.12.2019 10:50

                Голосовой помощник Так-с.
                "Так-с, пятихатник мамке кинь"
                "Так-с, и как, блин, я, нафиг, от этого, скотина, пятна избавлюсь?"


                Предпочитаю не пользоваться голосовыми помощниками, потому что не хочу думать, а как к ним можно обращаться, а как фразу надо строить, а как долго будет выполняться обработка запроса, а сможет ли он угадать и распознать с первой попытки. И совсем ума не приложу, зачем голосовой помощник в приложениях, которые стараешься использовать, не привлекая особого внимания со стороны, навроде тех же банковских. "Отправь маме пятьсот рублей" — "Опа, а вчера у тебя лишних пяти сотен не нашлось".


      1. pyrk2142
        12.12.2019 04:53

        Однажды, например, я показал одному заказчику от ритейла, как пользователь просто говорит ассистенту — «Хочу борщ» вместо того, чтобы сперва искать где-то рецепт, а потом искать в его приложении ингредиенты и заказывать их в нужном количестве. Ассистент делает все это и сразу складывает ингредиенты на сумму в 700 рублей в корзину.

        Имхо, тут упущен один момент: почему вы считаете, что в случае голосового помощника приложение само наполнит корзину, а в случае обычного использования интерфейса — надо искать рецепт? Его с таким же успехом можно засунуть в приложение, сделать доступным из поиска, привязать к нему все ингредиенты. Понятно, что если максимально затруднить жизнь пользователю отсутствием обычных функций, засовывая их в голосовой помощник, то последний можно продать лучше.


        Большая проблема в том, что "Хочу борщ" хорошо работает на презентации перед менеджерами, которые хотят премию. В куче случаев это выглядит иначе:
        1) Пользователь говорит "Хочу борщ", приложение гудит и через какое-то время складывает продукты в корзину.
        2) В лучшем случае, приложение еще и покажет рецепт, а пользователь поймет, что такой борщ он не любит (а предложенная сметана ужасна на вкус, а отдел с охлажденным мясом в этом магазине воняет половыми тряпками, лучше тут не рисковать, выбирая мясо без упаковки), в еще более лучшем случае приложение позволит выбрать рецепт из списка.
        3) Пользователь обнаруживает, что он пытается понять по рецепту, сколько борща получится, оказывается, что большая кастрюля. Хорошо, но хочется больше или меньше, начинается квест по изменению количества продуктов в заказе. К сожалению, это не цифры в коде, а мясо не продается по условным 175 грамм, а сметана — по условным 65. Как-то подобрали упаковки, производителей и стоимость, смирились с тем, что кроме борща еще надо будет приготовить что-то из остатков.
        4) Потом нужно выкинуть из заказа продукты, которые есть дома, добавить в заказ соль и масло, почему-то куча рецептов считает, что дома они есть. Либо убрать, если умный магазин решил позаботиться о тех, кто ничего не покупает.
        5) Проверить список, выбрать время и место доставки, оплатить. И только листая список акций после заказа обнаружить, что сегодня со скидкой другие продукты, жаркое было бы в три раза дешевле борща.


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


  1. IvanGolubev
    11.12.2019 17:16

    Разве Алиса — не In-App ассистент приложения «Яндекс — с Алисой»?


    1. aimydima Автор
      11.12.2019 17:21

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


      1. IvanGolubev
        11.12.2019 17:30

        Тогда, может, суть не в том, чтобы сделать In-App ассистента, а в том, чтобы пользователь правильно понимал, какой ассистент с чем справляется?


        1. aimydima Автор
          11.12.2019 17:46

          Попробуй объяснить это пользователям ) У него и так есть приложение, которое ожидаемо справится с нужной функцией. А вот где ее там найти — другой вопрос. С точки зрения архитектуры современных ассистентов — все они пытаются справиться со всем, а в итоге только ограничивают разработчика. Олег вот пошел по другому пути (и не только он один)


  1. ftvkyo2011
    11.12.2019 17:46

    Лично для меня голосовой ассистент всегда был программой, которой я могу сказать поставить будильник, включить музыку, изменить громкость музыки не прикасаясь к телефону. Мне кажется плохой идеей встраивать свой голосовой помощник в каждое приложение, это же будет ужас сколько места занимать, разве нет?
    Возможно, если уж так хочется иметь «быструю» навигацию по приложению (хотя я почти не встречал людей, которые используют ассистента с целью навигации), было бы круто иметь возможность интегрироваться с системным голосовым ассистентом с учетом контекста текущего запущенного приложения. И тогда не будет: 1) сильного увеличения размера программ; 2) необходимости активировать конкретные навыки — будут своего рода namespaces.


    1. aimydima Автор
      11.12.2019 17:51

      Верно! С точки зрения «контекста» самого устройства — «Поставь будильник» или «Включи музыку» — это те самые голосовые команды, которые должен понимать ассистент самого устройства (встроенный ассистент типа Google Assistant).

      Но когда этот же ассистент пытается интегрироваться с вашим сервисом, то получается плохо — сплошные ограничения API ассистента, невозможность запускать локальные вещи (управление локальными сервисами), ограничения интерфейса и так далее.

      «Контекст текущего запущенного приложения» — штука очень абстрактная, не правда ли? Просто экран, а что на нем можно сделать? А на нем ли пользователь вообще хочет что-то сделать? Да и как вы представляете себе возможность взаимодействия такого системного ассистента с функциями именно вашего приложения?

      И кто вам сказал, что будет «сильное увеличение размера программ»?

      Посмотрите на примеры, которые были приведены в статье. Здесь речь не идет только о быстрой навигации.


  1. tangro
    12.12.2019 11:10

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


    1. lappy
      12.12.2019 12:29

      Тут ещё самая большая проблема в том, что люди, командующие своему телефону (и, как правило, делающие это ГРОМКО), до сих пор смотрятся странно. Даже реклама голосовых помощников показывает это самое голосовое управление как что-то курьёзное, как забавную игрушку. Просто потому что нет сильной необходимости в поставить будильник или включить музыку голосовой командой — эти действия лёгкие и никого не бесит это делать.


    1. aimydima Автор
      12.12.2019 13:22

      Причем все больше и больше пользователей по оценкам Amazon, Google и Яндекс, которые производят голосовые колонки, автомобильные устройства и мобильных ассистентов ))