Голосовые технологии находятся на подъеме, в этом нет никаких сомнений. Крупные компании, такие как Amazon, Google и Microsoft, делают ставку на эту новую тенденцию, и я думаю, что голосовая связь станет более заметной в ближайшие несколько лет. Только в 2017 году в мире было продано 24 миллиона умных колонок. Люди действительно увлекаются умными динамиками и голосовыми технологиями.

Что это значит для вас как разработчика?

Прямо сейчас веб-разработка - это тренд, связанный с конференциями разработчиков, учебными пособиями и, конечно же, вакансиями. Голосовые технологии открывают перед разработчиками новые возможности, выходящие за рамки веб-приложений. Amazon и Google поощряют все больше и больше разработчиков к участию в голосовой среде вокруг своих интеллектуальных динамиков; улучшение искусственного интеллекта в своих помощниках и открытие новых инструментов для создания насыщенных голосовых ощущений. Я уверен, что вокруг голосовых технологий будет больше конференций, обучающих программ и вакансий.

У Amazon есть Alexa, у Google есть Google Assistant, у Microsoft есть Cortana. С чего мне начать?

На YouTube есть много видео, сравнивающих этих трех помощников. Я не собираюсь продвигать одного помощника по сравнению с другим, но Amazon проделала огромную работу, взяв на себя инициативу в этой новой технологической войне. Получение более 65% доли рынка для своего устройства Amazon Echo и открытие своей платформы для разработчиков, улучшение опыта разработки, даже предоставление вознаграждений за дальнейшее развитие навыков Alexa; Я думаю, что Amazon проделал отличную работу, и это отличная отправная точка, если вы хотите начать разработку голосовых приложений. В последнем предложении был указан фунт, поскольку способ расширения Alexa - развитие навыков Alexa.

Что такое навык Alexa?

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

Как работает навык Alexa?

Alexa общается с навыком через HTTP, отправляя почтовые запросы в конечную точку навыка с ответами в формате JSON. Следуя этому принципу, вы можете развить навык Alexa с любым языком программирования, на котором вы можете создать веб-сервер для связи. Несмотря на это, самым популярным языком для развития навыков работы с Alexa на данный момент является Javascript (Node JS). И это единственный язык, над которым мы будем работать, используя Voxa framework.

Что такое Voxa?

Voxa - фреймворк, разработанный Rain Agency. Rain - одно из агентств, рекомендованных Amazon для развития навыков Alexa, и они создали простой в использовании фреймворк для развития навыков Alexa на основе Node JS. Фреймворк находится в активной разработке, постоянно улучшается и добавляется поддержка новейших функций Alexa.

Прежде чем мы начнем, несколько основных определений

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

Модель взаимодействия

Модель взаимодействия - это голосовой интерфейс, который преобразует голосовой ввод пользователя в намерения. Например, модель взаимодействия для навыка может быть примерно такой:

{
  “name”: “HelloIntent”,
  “samples”: [
    “hi”,
    “hello”,
  ]
},
{
  “name”: “ExitIntent”,
  “samples”: [
    “bye”,
  ]
}

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

Высказывания

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

Намерения

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

Слоты

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

{
  “name”: “AddIngredientIntent”,
  “samples”: [
    “I want {ingredient} on my pizza”,
  ],
  “slots”: [
    {
      “name”: “ingredient”,
      “type”: “INGREDIENTS”
    }
  ],
},

Как видите, ингредиент - это слот в высказывании для определенного намерения в вашей модели взаимодействия. .

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