Как собрать Amazon Echo с помощью Raspberry Pi

Многие люди сегодня используют программное обеспечение помощника в своих домах и офисах для помощи в повседневных задачах. Существует множество различных моделей для покупки, но вы знали, что можете собрать свою собственную? Amazon Developer позволяет вам использовать программное обеспечение Alexa для создания собственного Amazon Echo с помощью Raspberry Pi.

Материалы

Для этого проекта вам понадобятся:

  • Raspberry Pi 3 или Pi 2 Model B и кабель питания Micro-USB
  • Micro SD карта (минимум 8 ГБ) – Если у вас нет установленной операционной системы, есть простая в использовании операционная система под названием NOOBS (New Out of the Box Software). Самый простой способ получить NOOBS – купить SD-карту с предустановленным NOOBS.
  • USB 2.0 мини-микрофон
  • Внешний динамик и аудиокабель 3,5 мм
  • USB клавиатура и мышь и внешний HDMI монитор
  • Подключение к Интернету (Ethernet или WiFi)
  • Для подключения Pi 2 к Интернету по беспроводной сети вам нужен адаптер WiFi. У Pi 3 есть встроенный WiFi.

Также читайте: 5 основных советов и хитростей для персонализации вашего Amazon Echo

Зарегистрируйтесь для получения учетной записи Amazon Developer

Если вам нужна учетная запись Amazon Developer, создайте бесплатную на их странице. Прочитайте условия и соглашения AVS (Alexa Voice Service) здесь.

raspberrypi-echo-amazon-developer-account

Заполните информацию о вашем профиле.

raspberrypi-echo-register-profile-info

Прочитайте и примите Соглашение о распространении приложений.

raspberrypi-echo-register-app-distribution-agree

Выберите, хотите ли вы монетизировать свои приложения.

raspberrypi-echo-register-payments

Создайте свое устройство на Amazon Developer

После регистрации вашей учетной записи Amazon Developer создайте устройство Alexa и профиль безопасности. Обратите внимание на следующие параметры, пока вы проходите настройку – ProductID, ClientID и ClientSecret, так как вам нужно будет ввести их позже.

В верхнем меню выберите «Alexa Voice Service».

На экране «Добро пожаловать в Developer» появится.

raspberrypi-echo-developer-welcome

Первый экран спрашивает о продукте, который вы создаете.

  1. Сначала назовите ваше устройство.

raspberrypi-echo-product-name

  1. Затем введите Product ID без пробелов и специальных символов.

Примечание: Вам это понадобится позже. Запишите это где-нибудь.

  1. Выберите устройство с поддержкой Alexa в качестве типа продукта.

raspberrypi-echo-product-type

  1. Alexa нуждается в сопутствующем приложении. Выберите «да» на этот вопрос.

raspberrypi-echo-companion-app

  1. Выберите «Беспроводные динамики» из выпадающего меню.

  2. Введите «Проект Raspberry Pi на Github» в поле описания. Это информация для AVS и не видна другим.

  3. Убедитесь, что выбраны оба варианта «Инициированный касанием» и «Без рук».

raspberrypi-echo-product-options

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

  2. Выберите «нет» для вопросов о коммерческом распространении и детских продуктах.

raspberrypi-echo-product-options-2

  1. Нажмите «Далее».

Создайте свой профиль безопасности

На этой странице вы создаете новый профиль безопасности LWA (Login with Amazon), чтобы идентифицировать данные пользователя и учетные данные безопасности с этим проектом.

  1. Нажмите «Создать новый профиль».

raspberrypi-echo-lwa-security-profile2

  1. Создайте имя для профиля. Это может быть что-то вроде «Профиль безопасности Alexa».

raspberrypi-echo-security-profile-name

  1. Введите описание для профиля. Вы можете выбрать «Описание профиля безопасности Alexa».

raspberrypi-echo-security-description

  1. Нажмите «Далее».

  2. Amazon генерирует для вас Client ID и Client Secret. Это еще два значения, которые вам понадобятся позже. Держите их под рукой.

raspberrypi-echo-id-and-secret1

  1. Введите ваши Разрешенные источники и Разрешенные URL-адреса возврата. Мы настраиваем http и https маршруты для этого проекта, поэтому введите следующее в поле «Разрешенные источники» — «http://localhost:3000».

  2. Нажмите «Добавить».

  3. Введите «https://localhost:3000» в то же поле, где вы ввели первый.

raspberrypi-echo-allowed-origins-2

  1. Нажмите «Добавить» снова.

  2. Сделайте то же самое для Разрешенных URL-адресов возврата, только введите следующие два URL:

http://localhost:3000/authresponse  
https://localhost:3000/authresponse
  1. Страница должна выглядеть так, прежде чем вы нажмете «Завершить». Убедитесь, что ни один из ваших URL-адресов все еще не находится в поле, где вы их ввели. Они отображаются на сером фоне после того, как вы их добавите.

raspberrypi-echo-all-origins

  1. После нажатия «Завершить» появится этот экран. Ваш проект создан и готов к установке.

raspberrypi-echo-product-screen

Клонируйте образец приложения Alexa

  1. Откройте Терминал.

raspberrypi-echo-open-terminal2

  1. Введите следующее:
cd Desktop  
git clone https://github.com/alexa/alexa-avs-sample-app.git

Обновите скрипт установки, добавив свои учетные данные

Перед тем как запустить скрипт установки, обновите скрипт с учетными данными, которые вы записали от Amazon — ProductID, ClientID, ClientSecret.

  1. Введите следующее в Терминале:
cd ~/Desktop/alexa-avs-sample-app  
nano automated_install.sh
  1. Когда он запустится, появится этот экран. Используйте стрелки на клавиатуре для навигации и замените поля для ProductID, ClientID и ClientSecret на ваши значения.

raspberrypi-echo-insert-device-data

Изменения должны выглядеть так:

ProductID="Ваше имя устройства"  
ClientID="amzn.xxxxx.xxxxxxxxx"  
ClientSecret="4e8cb14xxxxxxxxxxxxxxxxxxxxxxxxxxxxx6b4f9"
  1. Нажмите Ctrl + X, чтобы выйти из скрипта. Нажмите Y, а затем Enter, чтобы сохранить изменения.

Запустите скрипт установки

Чтобы запустить скрипт, откройте Терминал и выполните следующие команды.

cd ~/Desktop/alexa-avs-sample-app  
. automated_install.sh

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

raspberrypi-echo-setup-questions

Установка занимает около тридцати минут, так что можете перекусить.

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

raspberrypi-echo-end-install2

Три терминала

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

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

Терминал 1

Это окно запускает веб-сервис для авторизации вашего приложения с AVS (Alexa Voice Service)

Откройте Терминал и введите следующие команды:

cd ~/Desktop/alexa-avs-sample-app/samples  
cd companionService && npm start

Примечание: npm – это менеджер пакетов для языка программирования JavaScript. Если он недоступен, когда вы запускаете команду, вы можете получить его здесь.

Когда скрипты завершатся, окно будет выглядеть так, показывая, что Pi слушает на порту 3000.

raspberrypi-echo-port-3000

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

Терминал 2

Это окно общается с AVS.

Введите следующее в другое окно терминала.

cd ~/Desktop/alexa-avs-sample-app/samples  
cd javaclient && mvn exec:exec

Примечание: mvn – это сокращение для Apache Maven. Если у вас его нет, нажмите здесь, чтобы начать.

Когда вы запускаете клиент, появляется диалоговое окно с сообщением: «Пожалуйста, зарегистрируйте ваше устройство …»

Нажмите «Да».

raspberrypi-echo-open-site

С некоторыми браузерами вы получите предупреждение о том, что соединение небезопасно. Отклоните это, нажав кнопку «дополнительно». Затем на следующем экране нажмите «Перейти на localhost (небезопасно)».

Теперь войдите в Amazon, используя свои учетные данные разработчика.

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

raspberrypi-echo-use-security-profile

Вы будете перенаправлены на URL, начинающийся с «https://localhost:3000/authresponse», который выглядит как на следующем изображении.

Вернитесь к открытому диалоговому окну и нажмите кнопку «ОК». Теперь клиент может принимать запросы от вашего устройства Alexa.

Держите открытым терминал, а также диалоговое окно Voice Service.

raspberrypi-echo-voice-service-box

Терминал 3

Это окно устанавливает приложение, которое пробуждает Alexa, используя ее пробуждающее слово. Пропустите это, если не хотите использовать голос для инициации Alexa.

Откройте новое окно терминала и используйте одну из следующих команд, чтобы запустить движок пробуждающего слова с использованием Sensory или KITT.AI.

Чтобы использовать движок пробуждающего слова Sensory, введите:

cd ~/Desktop/alexa-avs-sample-app/samples  
cd wakeWordAgent/src && ./wakeWordAgent -e sensory

Чтобы использовать движок пробуждающего слова KITT.AI, введите:

cd ~/Desktop/alexa-avs-sample-app/samples  
cd wakeWordAgent/src && ./wakeWordAgent -e kitt_ai

Протестируйте это

Поговорите с Alexa, сказав пробуждающее слово «Alexa». Подождите сигнала перед тем, как дать команду. Например, попробуйте сказать: «Alexa». Подождите сигнала, а затем спросите: «Который час?»

Если она ответит правильно, у вас есть работающее устройство Alexa!

Посмотрите на веб-страницу Alexa от Amazon для получения дополнительных идей. Эта Alexa может делать все, что может делать Echo!