Як створити власний Amazon Echo за допомогою Raspberry Pi

The Amazon Echo корисно мати вдома. Він може відтворювати подкасти, робити нагадування та нотатки, повідомляти вам про тривалість вашого маршруту, навіть керувати іншими приладами у вашому домі. Але за ціною від 50 до 150 доларів це дорога пропозиція, якщо ви не впевнені, що скористаєтеся нею. Хороша новина: ви можете зробити повнофункціональний, використовуючи Raspberry Pi.


оновлення : Цей метод трохи легший і забезпечує кращий кінцевий продукт . Ми залишаємо цей посібник, оскільки він використовує офіційні репозиторії Amazon, але система працює набагато краще.

Що ви отримаєте

До кінця цього посібника ви матимете (майже) повноцінно функціонуючий Amazon Echo який реагує на ваші голосові команди. Єдине, чого він не може зробити, це отримати доступ до музичних сервісів, таких як Amazon Prime, Spotify або Pandora. В іншому випадку це Echo з усіма наворотами Alexa, віртуального помічника Amazon. Це означає, що він може конвертувати одиниці вимірювання, перевіряти результати спортивних змагань, читати ваші книги Kindle, перевіряти погоду, відтворювати подкасти та радіо та багато іншого. Коли ви закінчите, ви зможете використовувати супутню програму Alexa ( iOS і Android), щоб змінити налаштування вашої Alexa, і ви зможете встановити всі ті самі навички, що й на справжньому Echo. Це включає подібні до Бетмен вибирає власну пригодницьку гру або a база даних про котів . Можливо, з більш корисного боку він включає нещодавно оголошену інтеграцію зі сторонніми додатками для справ, як-от Todoist і Any.do .

Він також працюватиме з різними підключеними пристроями, наприклад розумні лампочки від LIFX або Термостат Nest , тож ви можете керувати ними за допомогою голосу. Як і справжній Echo, ваш DIY Echo можна підключити до Якщо це, то те до додати більше функцій , як додавання справ Evernote або до отримати сповіщення на свій телефон коли таймер вимкнеться.

Що стосується ціни, тут слід згадати одну річ: найновіший продукт Amazon Echo Dot (менший Echo з поганим динаміком) коштує всього 50 доларів, тому створити свій власний з Raspberry Pi за 35 доларів набагато важче продати. Однак є одна ключова особливість Raspberry Pi, завдяки якій все це варте уваги: це все ще Raspberry Pi, а не однозадачний пристрій . Цей проект лише встановлює набір програм, які дозволяють вашому Raspberry Pi працювати як Echo. Ваш Raspberry Pi все ще може працювати з низкою інших проектів, як-от a ретро ігрова станція (вам просто потрібно встановити середовище робочого столу ) або медіа-центр . Це означає, що ви можете перетворити його на багатозадачну машину.


Що вам знадобиться

Як і слід було очікувати, вам знадобиться Raspberry Pi разом із кількома деталями:

  • Raspberry Pi 3 (рекомендовано) або Raspberry Pi 2 (вам також знадобиться USB-адаптер Wi-Fi для моделі 2) із встановленим Raspbian. Якщо ви раніше не встановлювали Raspbian, наш посібник охоплює все, що вам потрібно знати .
  • А Кабель живлення MicroUSB
  • Ан Карта MicroSD на 8 ГБ
  • Мікрофон USB (я використовував це дешевий мікрофон за 6 доларів США , але практично будь-який USB-мікрофон працює. The Playstation Eye за 8 доларів здається, працює особливо добре, якщо ви шукаєте невелике оновлення)
  • Колонки (будь-яка активна колонка справляється зі своїм завданням, я вирішив використовувати a EU Mini Boom тому що він у мене вже був, і навіть коли він підключений до Pi, він все ще працює як динамік Bluetooth)
  • Клавіатура та миша для налаштування (або доступ до комп'ютера з VNC )

Теоретично можна використовувати старіший Raspberry Pi або a Raspberry Pi Zero f О r t ч i с стор r О j Це є в t , b в t вам потрібно буде вручну встановити остання версія Java робити так. Ця тема на GitHub може допомогти. Однак ми перевірили це на Raspberry Pi 2 і 3.


Ви створите свій DIY Echo, встановивши Amazon Alexa Skills Kit на Raspberry Pi. Для цього посібника ми будемо використовувати Офіційний код Amazon . Однак це має одне застереження: вам потрібно вручну запустити службу Alexa кожного разу, коли ви завантажуєте Pi . Це дратує, але якщо припустити, що ви не втрачаєте багато енергії або вам потрібно часто перезавантажувати Pi, це лише трохи дратує.

Крок перший: зареєструйте обліковий запис розробника Amazon

Перш ніж щось робити, вам потрібно безкоштовно зареєструватися Обліковий запис розробника Amazon , а потім створіть профіль для свого DIY Echo. Це досить просто:


  1. Увійдіть у свій Обліковий запис розробника Amazon .
  2. Натисніть вкладку Alexa.
  3. Натисніть Зареєструвати тип продукту > Пристрій.
  4. Назвіть тип пристрою та відображуване ім’я (ми вибрали «Raspberry Pi» для обох).
  5. Натисніть Далі.
  6. На екрані профілю безпеки натисніть «Створити новий профіль».
  7. На вкладці «Загальні» поруч із «Назва профілю безпеки» введіть назву свого профілю. Зробіть те ж саме для опису. Натисніть Далі.
  8. Занотуйте ідентифікатор продукту, ідентифікатор клієнта та секрет клієнта, які сайт генерує для вас.
  9. Перейдіть на вкладку «Налаштування веб-сайту», а потім натисніть кнопку «Редагувати» поруч зі спадним меню профілю.
  10. Поруч із Дозволеними джерелами натисніть «Додати інше» та введіть: https://localhost:3000.
  11. Поруч із Дозволеними URL-адресами для повернення натисніть «Додати іншу» та введіть: https://localhost:3000/authresponse Натисніть «Далі», коли закінчите.
  12. Наступною буде вкладка «Відомості про пристрій». Неважливо, що ви тут введете. Виберіть категорію, напишіть опис, виберіть очікувану шкалу часу та введіть 0 у формі поруч із кількістю пристроїв, на яких ви плануєте використовувати це. Натисніть Далі.
  13. Нарешті, ви можете додати тут Amazon Music. Це робить ні працювати на пристрої з живленням Pi, тому залиште позначку «Ні». Натисніть Зберегти.

Тепер у вас є обліковий запис розробника Amazon і ви створили профіль для свого Pi-powered Echo. Настав час перейти до Raspberry Pi і змусити Alexa працювати.

Крок другий: клонуйте та інсталюйте Alexa

Підключіть усе до свого Pi та завантажте його. Вам потрібно перейти в графічний інтерфейс користувача ( тепер називається PIXEL ) для цього, оскільки ви зрештою використовуєте веб-браузер для автентифікації свого пристрою.

  1. Відкрийте програму Terminal на Raspberry Pi та введіть: cd Desktop і натисніть Enter.
  2. Введіть git clone https://github.com/alexa/alexa-avs-sample-app.git і натисніть Enter.
  3. Коли це буде завершено, введіть: cd ~/Desktop/alexa-avs-sample-app і натисніть Enter.
  4. Введіть nano automated_install.sh і натисніть Enter.
  5. Це відкриває ваш текстовий редактор. Тут вам потрібно буде ввести свій ProductID, ClientID і ClientSecret, які ви зазначили на кроці вище. Використовуйте клавіші зі стрілками, щоб перейти до кожного запису. Введіть кожну деталь після знака =, як зазначено на зображенні вище. Коли ви закінчите, торкніться CTRL+X, щоб зберегти та вийти.
  6. Тепер ви знову в командному рядку. Настав час запустити сценарій встановлення. Введіть in cd ~/Desktop/alexa-avs-sample-app і натисніть Enter.
  7. Введіть . automated_install.sh і натисніть Enter.
  8. Коли з’явиться відповідний запит, натисніть Y для відповіді на різні запитання та дайте відповіді на решту, як вважаєте за потрібне. Це дозволить налаштувати ваш Pi та встановити додаткове програмне забезпечення. Це може зайняти до 30 хвилин, тож дайте йому зробити свою справу.

Коли це закінчиться, настав час запустити службу Alexa.

Крок третій: запустіть веб-службу Alexa

Далі ви запустите три набори команд одночасно в трьох різних вікнах терміналу. Ви створите нове вікно терміналу для кожного з наступних кроків. Не зачиняйте вікна! Вам потрібно буде виконувати кроки третій (цей,) четвертий і п’ятий кожного разу, коли ви перезавантажуєте Raspberry Pi.


Перший, який ви запустите, це веб-служба Alexa:

  1. Введіть cd ~/Desktop/alexa-avs-sample-app/samples і натисніть Enter.
  2. Введіть cd companionService && npm start і натисніть Enter.

Це запускає супутню службу та відкриває порт для зв’язку з Amazon. Залиште це вікно відкритим.

Крок четвертий: запустіть приклад програми та підтвердьте свій обліковий запис

Відкрийте друге вікно терміналу (Файл > Нове вікно). Цей наступний крок запускає програму Java і веб-браузер, який реєструє ваш Pi-powered Echo у веб-службі Alexa.

  1. У новому вікні терміналу введіть cd ~/Desktop/alexa-avs-sample-app/samples і натисніть Enter.
  2. Введіть cd javaclient && mvn exec:exec і натисніть Enter.
  3. З’явиться спливаюче вікно з проханням автентифікувати пристрій. Натисніть Так. Відкриється вікно браузера. У програмі Java з’явиться друге спливаюче вікно з проханням натиснути «ОК». робити ні натисніть це ще.
  4. Увійдіть у свій обліковий запис Amazon у браузері.
  5. Ви побачите екран автентифікації свого пристрою. Натисніть OK. Тепер у вашому браузері з’явиться «токени пристрою готові».
  6. Тепер ви можете натиснути спливаюче вікно «ОК» у програмі Java.

Тепер ваш Raspberry Pi має необхідні маркери для зв’язку із сервером Amazon. Залиште це вікно терміналу відкритим.

Крок п’ятий: запустіть систему Wake Word Engine

Нарешті, відкрийте третє вікно терміналу (Файл > Нове вікно). Тут ви запустите механізм пробудження слів. Завдяки цьому ви можете сказати «Alexa», щоб ваш Raspberry Pi почав слухати вас. У вас є два варіанти програмного забезпечення wake word, Сенсорний і KITT.AI . Обидва безкоштовні, але термін дії Sensory закінчується через 90 днів, тож скористаємося натомість KITT:

  1. Введіть cd ~/Desktop/alexa-avs-sample-app/samples і натисніть Enter.
  2. Введіть cd wakeWordAgent/src && ./wakeWordAgent -e kitt_ai

Ось і все, ваш DIY Echo зараз працює. Спробуйте, сказавши «Alexa». Ви повинні почути звуковий сигнал, який вказує на те, що він прослуховується. Коли ви почуєте цей звуковий сигнал, поставте запитання на зразок «Яка погода?» або «Який рахунок у грі Dodgers?»

Крок шостий: удосконаліть мікрофон і переконайтеся, що ваш Echo вас чує

Нарешті, залежно від якості вашого мікрофона, ви можете помітити, що він вас погано чує. Замість того, щоб кричати «Alexa» на все горло, давайте востаннє перейдемо до командного рядка.

  1. У командному рядку введіть alsamixer і натисніть Enter.
  2. Натисніть F6, щоб вибрати інший USB-пристрій. Використовуйте клавіші зі стрілками, щоб вибрати мікрофон.
  3. Використовуйте клавіші зі стрілками, щоб збільшити гучність захоплення.
  4. Коли ви задоволені гучністю, торкніться ESC, щоб вийти.
  5. Введіть in sudo alsactl store і натисніть Enter, щоб зробити налаштування постійними.

Тепер ви зможете запустити DIY Echo, розмовляючи з ним як звичайна людина, а не кричачи. Ви також можете змінити гучність за замовчуванням тут, якщо потрібно.

Додатковий кредит: додайте підтримку AirPlay

Одна річ, якої не вистачає вашому DIY Echo в комерційній версії, — це здатність працювати як динамік Bluetooth. Ви можете додати аналогічна функція з AirPlay . Таким чином, ваш Echo також діє як приймач, на який ви можете надсилати музику зі свого телефону чи комп’ютера. Його легко додати, вам знадобиться лише востаннє зайти в командний рядок через термінал:

  1. Введіть sudo apt-get install git libao-dev libssl-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libwww-perl avahi-utils libmodule-build-perl і натисніть Enter. Це інсталює інше програмне забезпечення, яке вам знадобиться.
  2. Натисніть Y, коли буде запропоновано, і зачекайте, поки все буде завантажено та встановлено.
  3. Введіть git clone https://github.com/njh/perl-net-sdp.git і натисніть Enter. Це потрібно для найновішої версії програмного забезпечення AirPlay. Наступні кілька команд збирають і встановлюють це програмне забезпечення.
  4. Введіть in cd perl-net-sdp і натисніть Enter.
  5. Введіть perl Build.PL та натисніть Enter.
  6. Введіть sudo ./Build і натисніть Enter.
  7. Введіть sudo ./Build test і натисніть Enter.
  8. Введіть sudo ./Build install і натисніть Enter.
  9. Введіть CD .. і натисніть Enter.
  10. Тепер ви візьмете shairport, програму DIY Airport. Введіть git clone https://github.com/hendrikw82/shairport.git і натисніть Enter.
  11. Введіть cd shairport і натисніть Enter.
  12. Введіть make і натисніть Enter.
  13. Введіть ./shairport.pl -a AlexaPi і натисніть Enter.

Завдяки цьому тепер ви можете передавати музику чи інший аудіо на свій DIY Echo за допомогою протоколу AirPlay. Тепер, коли ваш Echo запущений і працює, почніть грати з ним.