Уроки разработки голосового интерфейса в реальном мире

«Дайте человеку пива, потратьте час. Научи человека варить пиво и растрачивать впустую жизнь ». - Билл Оуэн

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

Я решил проверить эти вопросы с помощью Alexa, развивая индивидуальный навык. BeerBot перемещается по лабиринту микроварен, чтобы увидеть, насколько Алекса понятна и точна в реальном мире.

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

BreweryDB постоянно обновляется любителями пива и пивоварнями каждый день, и ему просто нужна возможность приходить через голосовой интерфейс. К счастью, у BreweryDB есть API для их данных, поэтому я создал специальный навык Alexa под названием «Beer Bot», который разблокирует эту информацию.

Использование машинного обучения Alexa

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

Вот пример фразы, запускающей приложение Beer Bot.

Алекса, спросите Beer Bot, какое пиво можно купить в Midnight Brewery?

Набор Alexa Skills Kit устанавливает основу для использования мощных алгоритмов машинного обучения, разработанных Amazon.

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

My favorite color is {COLOR_SLOT}

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

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

Соответствие шаблону

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

В английском языке около 170 тыс. Слов (согласно последнему Оксфордскому словарю английского языка), поэтому это моделирование обеспечивает структуру и шаблоны, основанные на контексте вероятного выбора. Например, выше, именно контекст определяет, когда кто-то говорит «Синий» или «Дун», и детали слота определяют это для вопроса выше.

При создании Alexa Skill (настраиваемого «приложения») проблема состоит в том, как установить все различные способы, которыми можно было бы сформулировать вопрос или утверждение, а затем создать пользовательские слоты для переменных в высказывании.

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

Для Beer Bot использование возможностей платформы включает создание пользовательских слотов для переменных, таких как Microbreweries, для которых существует более 5000 различных вариантов. Эти данные извлекаются из BreweryDB, а затем передаются в навык во время публикации, чтобы алгоритмы машинного обучения могли узнать, каковы вероятные варианты, которые затем передаются обратно в API, где может быть создан ответ.

Продуманный кодекс имеет значение

После обработки в Alexa выполняется вызов API к микросервису, разработанному автором навыка. Качество взаимодействия с пользователем во многом зависит от того, насколько «гибко» написано умение, и эти усилия были приложены для понимания разницы между визуальным / клавиатурным интерфейсом и голосовым.

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

Урок №1 - Слова пропадают после установления контекста.

Если мы ведем разговор о пиве в естественном диалоге, мы не склонны быть узаконенными в том, как называется пивоварня. Например -

Какое пиво есть у Legend?

Теперь технически полное имя в базе данных пива и пользовательском слоте - «Legend Brewing Company», но, чтобы быть естественным, мы должны быть готовы к тому, что общие слова, такие как «Компания» или даже «Пивоварение», будут опущены во время диалога и все же иметь возможность сформулировать правильный отклик. Это дополнительный код, который нужно написать, но оно того стоит, чтобы улучшить соответствие намерениям пользователя.

Урок №2. Мы используем ярлыки для хорошо известных мест и событий.

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

Какие мини-пивоварни есть в Сиэтле?

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

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

Урок №3. Мы не всегда отвечаем на заданный вопрос.

Это может вызвать трение в разговоре между людьми, если довести его до крайности, но не неожиданно в правильном контексте и когда мы просто «плывем по течению».

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

Бот: О каком городе вы хотите получить информацию?

Ответ: Какие пивоварни есть в Делавэре?

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

Во всем Делавэре всего десять мини-пивоварен, тогда как в Шарлотте, штат Северная Каролина, их двадцать три. Таким образом, для небольшого штата переход на уровень города на самом деле не нужен, и более естественным ответом, если указано название штата, будет просто предоставить список, а не выдавать сообщение об ошибке, что Делавэр не является городом.

Урок №4. Никто не хочет слышать пятиминутный монолог в ответ.

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

Какое пиво подходит для пивоварения Great Lakes Brewing?

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

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

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

Можем ли мы уронить клавиатуру?

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

При тестировании пользовательского слота я был очень впечатлен тем, насколько хорошо машинное обучение могло соответствовать тому, что было в пользовательском слоте. Например, существует более пятидесяти различных мини-пивоварен, название которых начинается со слова «Black», и Алекса смогла точно расшифровать каждое из них.

Попробуйте BeerBot

Есть десять вариантов на выбор, которые имеют похожие названия и находятся в разных частях страны. Black Acre Brewing, Black Bottle Brewing, Black Couch Brewing, Black Fox Meadery, Black Lotus Brewing, Black Star Farms, Black Swan Brewpub, Black Tooth Brewery, Blackberry Farm Brewing, Blackstone Brewing.

Просто скажите что-нибудь вроде "Что разливают в Black Acre Brewing?" и посмотрите, как это работает для вас.

В моем тестировании вышеупомянутого варианта использования Alexa получает все десять правильных ответов и правильно возвращает результаты для каждого из них. Учитывая, что некоторые из этих слов не распространены в английском языке - например, Meadery, Lotus, Acre - и что некоторые фразы могут быть разделены на разные слова, несмотря на то, что они произносятся одинаково (Blackberry vs. Black Berry), машинное обучение довольно эффективно.

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

Облачный гуру выпьет за это!

Если вы заинтересованы в развитии собственных навыков работы с Alexa, A Cloud Guru предлагает отличные курсы, которые охватывают все основные сервисы AWS, включая разработку Alexa.

Для более подробного описания того, как работает навык BeerBot, обязательно прочтите статью на hackster.io.

Террен Петерсон - опытный технический директор с более чем двадцатилетним опытом работы в консалтинге, создании новых предприятий и крупных корпоративных средах. В настоящее время он является вице-президентом по облачным технологиям для розничного и прямого банковского бизнеса в Capital One.

В настоящее время Террен разрабатывает интерактивные голосовые приложения с использованием платформы Alexa. Он создал несколько навыков Alexa. Совсем недавно он интегрировал голосовую службу Alexa с Raspberry Pi, чтобы создать Roxie, голосовую машину для подачи, которая заняла первое место в сегменте Best ASK с Raspberry Pi в конкурсе Alexa Internet of Voice Challenge на сайте Hackster.io. Террен сейчас экспериментирует с аналитическими возможностями Alexa, чтобы понять и улучшить использование навыков.

Террен имеет степень бакалавра электротехники в Иллинойском университете в Урбане-Шампейн. Он был основателем Digital Campus Lab для Capital One в Исследовательском парке UIUC и является членом правления Hoeft Technology & Management Program. Террен также имеет сертификаты AWS для архитекторов и разработчиков.