Разработка Alexa Skills с помощью Python. Часть 1. Ключевые концепции Alexa Skills.

Привет, друг!

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

Также, поскольку мы договорились не тратить много времени на теорию, я дам вам максимально упрощенное объяснение того, что такое навык Alexa.

Вы знаете, что такое смартфон, верно? (пожалуйста, скажите да, иначе я не могу продолжать 😅). Вы также знаете, что, хотя они поставляются с некоторыми встроенными приложениями (калькулятор, календарь, камера и т. д.), что делает смартфоны мощными, так это тот факт, что мы можем разрабатывать и устанавливать множество других приложений (Facebook, Reddit, Gmail, Slack). , Нетфликс и др.). Большой! Так что запомните эту аналогию: устройство Alexa похоже на ваш смартфон, а навыки Alexa — это приложения, которые вы запускаете поверх него.

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

Чему мы научимся

Как я уже сказал, этот пост является первым в серии из (как минимум) 5 руководств, которые я собираюсь использовать, чтобы рассказать вам обо всем, что вам нужно знать, чтобы превратить любую идею, которую вы имеете в виду, в навык Alexa Skill. (Ладно, слово «любой» здесь неуместно, но вы поняли 😉).

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

Третий пост посвящен добавлению Alexa Presentation Language (APL) к нашим навыкам. Другими словами, мы предоставим визуальный опыт устройствам Alexa с экранами. Далее мы узнаем, как реализовать многоязычный навык в четвертом посте, то есть заставить наш навык говорить на разных языках в зависимости от того, где находятся наши пользователи. Наконец, последний туториал расскажет о методах монетизации, или, другими словами, это туториал о том, как зарабатывать деньги с помощью своих навыков 💰.

Камень ножницы Бумага

Камень, ножницы, бумага — это ручная игра, в которую обычно играют два человека, в которой каждый игрок одновременно формирует одну из трех фигур вытянутой рукой. Это камень (сжатый кулак), бумага (плоская рука) и ножницы (кулак с вытянутыми указательным и средним пальцами, образующими букву V). [Википедия]

Я выбрал эту игру для нашего примера по двум причинам: во-первых, потому что (почти) все знают, что это такое. Во-вторых, из-за своей простоты. И под простотой я подразумеваю, что мы не будем так сильно беспокоиться о логике игры, как об изучении инструментов Alexa. Так что да, СПОЙЛЕР 🚨🚨🚨🚨, мы будем развивать навык «Камень, ножницы, бумага».

Alexa Skills: общая концепция

Чтобы развить навык Alexa, вам необходимо иметь бесплатную учетную запись Amazon Developer. Вот и все. Ничего больше. С этой учетной записью вы получаете доступ к консоли разработчика, где вы можете использовать платформу Alexa Skills Kit (ASK) для создания навыков Alexa.

На следующем рисунке показано, как конечные пользователи взаимодействуют с навыком. Они активируют навык, говоря, например: Алекса, открой камень, ножницы, бумагу. Устройство передает речь в службу Alexa в облаке, где выполняется некоторая магия глубокого обучения, чтобы определить намерение пользователя.

Это намерение (или намерение) — это то, что сервис Alexa отправляет на ваш сервер (Да, я знаю... Иногда это не просто намерение, но и какие-то другие переменные, но здесь мы упрощаем! Так что позвольте мне закончить 😡)

ПОЭТОМУ развитие навыка означает две вещи:

  1. помощь службе Alexa в определении намерений пользователя;
  2. Выяснение того, что мы будем делать, узнав об этом намерении (бэкенд-логика).

Действительно, сервис Alexa занимается распознаванием речи и обработкой естественного языка, поэтому наша работа как разработчиков ограничивается созданием этих намерений и предоставлением некоторых образцов для обучения модели. "[Больше информации]"

Несколько слов об АСК

Комплект Alexa Skills Kit — это платформа для разработки программного обеспечения, включающая API, библиотеки, инструменты, примеры кода и учебные материалы. Его основная цель — упростить нам создание навыков Alexa.

Я не буду описывать все, что предлагает ASK, но стоит отметить, что этот замечательный фреймворк значительно упрощает жизнь разработчиков. Это дает нам доступ к консоли разработчика Alexa, SDK (Python, Java и Node.js), инструментам тестирования, простому процессу сертификации и методам проектирования, и это лишь некоторые из них.

Еще кое-что

Прежде чем закончить, позвольте мне добавить эти три примечания:

  • Подавляющее большинство руководств и кодов, которые я нашел на популярных платформах (GitHub, Stack Overflow, Medium и т. д.), использовали Node.js, и, будучи парнем с Python, мне было трудно найти правильные ответы Python для моих конкретных потребностей. Я надеюсь, что вы найдете эту серию статей полезной, если вы пытаетесь развить навыки работы с Alexa, используя ЛУЧШИЙ язык программирования во Вселенной: Python.

  • После того, как вы создадите свой навык, вы сможете использовать его в частном порядке для своих устройств Alexa. Кроме того, вы можете опубликовать его в Amazon Alexa Skills Store, чтобы любой, у кого есть устройство Alexa, мог включить его. (Помните аналогию, которую мы провели ранее между Alexa и смартфонами, здесь Skills Store является эквивалентом App Store или Play Store). Естественно, вы должны сначала получить сертификат Amazon, но процесс сертификации так же прост, как упасть с бревна 😉.
  • Примеры кода, используемые в этом руководстве, доступны в мой профиль GitHub.

Хорошо, больше никакой теории. Давайте просто перейдем к следующему посту, где мы начнем говорить о Python 😎.