interessant

Hoe je je eigen Amazon Echo te bouwen met een Raspberry Pi

De Amazon Echo is handig om overal in huis te hebben. Het kan podcasts afspelen, herinneringen en notities maken, u de lengte van uw woon-werkverkeer vertellen, en zelfs andere apparaten in uw huis bedienen. Maar tegen prijzen die variëren van $ 50 tot $ 150, is het een dure propositie als u niet zeker weet of u het zult gebruiken. Goed nieuws, je kunt een volledig functionele maken met een Raspberry Pi.

Update : deze methode is iets eenvoudiger en levert u een beter eindproduct op. We laten deze gids achter omdat het de officiële repositories van Amazon gebruikt, maar het systeem werkt veel beter.

Wat je krijgt

Aan het einde van deze gids heb je een (bijna) volledig functionerende Amazon Echo die reageert op je spraakopdrachten. Het enige dat het niet kan doen, is toegang krijgen tot muziekservices zoals Amazon Prime, Spotify of Pandora. Anders is het een echo met alle toeters en bellen van Alexa, de virtuele assistent van Amazon. Dat betekent dat het unit-conversies kan uitvoeren, sportuitslagen kan controleren, je Kindle-boeken aan jou kan lezen, het weer kan bekijken, podcasts en radio kan spelen en nog veel meer. Als je klaar bent, kun je de Alexa-app (iOS en Android) gebruiken om de instellingen van je Alexa te wijzigen en kun je alle vaardigheden installeren die je op een echte Echo kunt. Dit omvat onder meer de Batman, kies je eigen avonturenspel of een database met kattenfeiten. Misschien is het wat nuttiger, het bevat de onlangs aangekondigde integraties met to-do-apps van derden zoals Todoist en Any.do.

Het werkt ook met verschillende aangesloten apparaten, zoals slimme gloeilampen zoals LIFX of de Nest Thermostat, zodat je ze met je stem kunt bedienen. Net als de echte Echo, kan je DIY Echo worden gekoppeld aan If This Then That om meer functies toe te voegen, zoals het toevoegen van taken aan Evernote of om een ​​melding op je telefoon te krijgen wanneer de timer afgaat.

Wat de prijs betreft, is er één ding dat we hier moeten vermelden: de nieuwste Echo Dot van Amazon (de kleinere Echo met een junky-luidspreker) is slechts $ 50, waardoor het maken van een eigen Raspberry Pi van $ 35 een veel moeilijkere verkoop is. Er is echter een belangrijk kenmerk van de Raspberry Pi dat het allemaal de moeite waard maakt:. Dit project installeert slechts een set programma's waarmee uw Raspberry Pi als een echo kan functioneren. Je Raspberry Pi kan nog steeds werken met een aantal andere projecten, zoals een retro-gamestation (je moet alleen de desktopomgeving installeren) of een mediacenter. Dit betekent dat u er een multitasking-machine van kunt maken.

Wat je nodig hebt

Zoals je zou verwachten, heb je naast een handvol onderdelen een Raspberry Pi nodig:

  • Een Raspberry Pi 3 (aanbevolen) of Raspberry Pi 2 (je hebt ook een USB Wi-FI-adapter nodig met de Model 2) met Raspbian geïnstalleerd. Als je Raspbian nog niet eerder hebt geïnstalleerd, bevat onze gids alles wat je moet weten.
  • Een MicroUSB-voedingskabel
  • Een MicroSD-kaart van 8 GB
  • Een USB-microfoon (ik gebruikte deze goedkope $ 6 microfoon, maar vrijwel elke USB-microfoon lijkt te werken. De $ 8 Playstation Eye lijkt vooral goed te werken als u op zoek bent naar een kleine upgrade)
  • Luidsprekers (elke actieve luidspreker doet het, ik besloot een UE Mini Boom te gebruiken omdat ik hem al in bezit had en zelfs als hij op de Pi is aangesloten, werkt hij nog steeds als een Bluetooth-luidspreker)
  • Een toetsenbord en muis voor installatie (of toegang tot een computer met VNC)

Het is theoretisch mogelijk om voor dit project een oudere Raspberry Pi of een Raspberry Pi Zero te gebruiken, maar daarvoor moet u handmatig de nieuwste versie van Java installeren. Deze thread op GitHub kan helpen. We hebben dit echter getest op de Raspberry Pi 2 en 3.

Je bouwt je DIY Echo door de Amazon Alexa Skills Kit op de Raspberry Pi te installeren. Voor deze gids gebruiken we de officiële code van Amazon. Dit komt echter met één waarschuwing: u moet de Alexa-service handmatig starten. Het is vervelend, maar ervan uitgaande dat je niet veel stroom verliest of je Pi heel vaak opnieuw moet opstarten, is het alleen een beetje vervelend.

Stap één: registreer voor een Amazon Developer-account

Voordat je iets doet, moet je je registreren voor een gratis Amazon Developer-account en vervolgens een profiel maken voor je DIY Echo. Dit is vrij eenvoudig:

  1. Log in op uw Amazon Developer-account.
  2. Klik op het Alexa-tabblad.
  3. Klik op Producttype registreren> Apparaat.
  4. Geef uw apparaattype en weergavenaam een ​​naam (we hebben voor beide "Raspberry Pi" gekozen).
  5. Klik volgende.
  6. Tik op het scherm Beveiligingsprofiel op "Nieuw profiel maken".
  7. Geef op het tabblad Algemeen naast "Naam beveiligingsprofiel" uw profiel een naam. Doe hetzelfde voor de beschrijving. Klik volgende.
  8. Noteer de product-ID, klant-ID en klantgeheim die de site voor u genereert.
  9. Klik op het tabblad Webinstellingen en klik vervolgens op de knop Bewerken naast de vervolgkeuzelijst van het profiel.
  10. Klik naast Toegestane oorsprong op "Nog een toevoegen" en typ: //localhost:3000 .
  11. Klik naast Toegestane terugkeer-URL's op "Nog een toevoegen" en typ: //localhost:3000/authresponse Klik op Volgende als u klaar bent.
  12. Het tabblad Apparaatdetails is de volgende. Het maakt niet zoveel uit wat je hier invoert. Kies een categorie, schrijf een beschrijving, kies een verwachte tijdlijn en voer een 0 in op het formulier naast het aantal apparaten dat u van plan bent dit te gebruiken. Klik volgende.
  13. Ten slotte kunt u ervoor kiezen om hier Amazon Music toe te voegen. Dit werkt niet op het Pi-aangedreven apparaat, dus laat het aangevinkt als "Nee". Klik op Opslaan.

Nu heb je een Amazon Developer-account en je hebt een profiel gemaakt voor je Pi-powered Echo. Het is tijd om naar de Raspberry Pi te gaan en Alexa aan het werk te krijgen.

Stap twee: Klonen en Alexa installeren

Sluit alles aan op je Pi en start het op. Je moet hiervoor in de grafische gebruikersinterface staan ​​(nu PIXEL genoemd) omdat je uiteindelijk een webbrowser gebruikt om je apparaat te authenticeren.

  1. Open de Terminal-toepassing op de Raspberry Pi en typ: cd Desktop en druk op Enter.
  2. Typ git clone //github.com/alexa/alexa-avs-sample-app.git en druk op Enter.

  3. Zodra dat is voltooid, typt u: cd ~/Desktop/alexa-avs-sample-app en drukt u op Enter.
  4. Typ nano automated_install.sh en druk op Enter.
  5. Hiermee wordt uw teksteditor opgeroepen. Hier moet u uw ProductID, ClientID en ClientSecret invoeren die u in de bovenstaande stap noteert. Gebruik de pijltoetsen om naar elk item te navigeren. Voer elk detail in na het = -teken zoals aangegeven in de bovenstaande afbeelding. Wanneer u klaar bent, tikt u op CTRL + X om op te slaan en af ​​te sluiten.
  6. Je bent nu terug op de opdrachtregel. Het is tijd om het installatiescript uit te voeren. Typ cd ~/Desktop/alexa-avs-sample-app en druk op Enter.
  7. Typ in . automated_install.sh . automated_install.sh en druk op Enter.
  8. Wanneer u hierom wordt gevraagd, drukt u op Y voor de verschillende vragen en beantwoordt u de vragen voor de rest. Dit zal je Pi configureren en wat extra software installeren. Dit kan tot 30 minuten duren, dus laat het gewoon zijn ding doen.

Zodra dat is voltooid, is het tijd om de Alexa-service te starten.

Stap drie: voer de Alexa Web Service uit

Vervolgens ga je drie sets opdrachten tegelijkertijd uitvoeren in drie verschillende Terminal-vensters. U maakt een nieuw Terminal-venster voor elk van de volgende stappen. Sluit geen vensters! U moet stap drie (deze) vier en vijf doen telkens wanneer u uw Raspberry Pi opnieuw opstart.

De eerste die je start is de Alexa Web Service:

  1. Typ cd ~/Desktop/alexa-avs-sample-app/samples en druk op Enter.
  2. Typ cd companionService && npm start en druk op Enter.

Dit start de begeleidende service en opent een poort om te communiceren met Amazon. Laat dit venster open.

Stap vier: voer de voorbeeld-app uit en bevestig uw account

Open een tweede Terminal-venster (Bestand> Nieuw venster). Deze volgende stap voert een Java-app uit en start een webbrowser die uw Pi-powered Echo registreert bij de Alexa-webservice.

  1. Typ in uw nieuwe Terminal-venster cd ~/Desktop/alexa-avs-sample-app/samples en druk op Enter.
  2. Typ cd javaclient && mvn exec:exec en druk op Enter.
  3. Er verschijnt een venster waarin u wordt gevraagd uw apparaat te verifiëren. Klik op Ja. Dit opent een browservenster. Er verschijnt een tweede pop-up in de Java-app waarin u wordt gevraagd om op OK te klikken. Klik hier nog niet op.
  4. Log in op uw Amazon-account in de browser.
  5. U ziet een authenticatiescherm voor uw apparaat. Klik op OK. Uw browser toont nu "apparaattokens gereed".
  6. U kunt nu op de pop-up Ok klikken in de Java-app.

Nu heeft uw Raspberry Pi de nodige tokens om te communiceren met de server van Amazon. Laat dit Terminal-venster open.

Stap vijf: Start uw Wake Word Engine

Open ten slotte een derde Terminal-venster (Bestand> Nieuw venster). Hier start u de wake word engine. Dit maakt het zo dat je "Alexa" kunt zeggen om je Raspberry Pi naar je te laten luisteren. U hebt twee opties voor wake word-software, Sensory en KITT.AI. Beide zijn gratis, maar Sensory verloopt na 90 dagen, dus laten we in plaats daarvan KITT gebruiken:

  1. Typ cd ~/Desktop/alexa-avs-sample-app/samples en druk op Enter.
  2. Typ cd wakeWordAgent/src && ./wakeWordAgent -e kitt_ai

Dat is alles, uw DIY Echo is nu actief. Ga je gang en probeer het uit door "Alexa" te zeggen. Je hoort een pieptoon die aangeeft dat hij luistert. Als je die piep hoort, stel dan een vraag als "Wat is het weer?" Of "Wat is de score in het spel Dodgers?"

Stap zes: verbeter de microfoon en zorg ervoor dat uw echo u kan horen

Ten slotte, afhankelijk van de kwaliteit van uw microfoon, merkt u mogelijk dat hij u niet goed kan horen. In plaats van "Alexa" helemaal bovenaan je longen te schreeuwen, gaan we nog een keer naar de opdrachtregel.

  1. Typ alsamixer op de opdrachtregel en druk op Enter.
  2. Tik op F6 om een ​​ander USB-apparaat te selecteren. Gebruik de pijltoetsen om uw microfoon te selecteren.
  3. Gebruik de pijltoetsen om het opnamevolume te verhogen.
  4. Als je tevreden bent met het volume, tik je op ESC om af te sluiten.
  5. Typ sudo alsactl store en druk op Enter om de instellingen permanent te maken.

Nu zou je je DIY Echo moeten kunnen activeren door er tegen te praten als een normaal mens in plaats van te schreeuwen. Je kunt hier ook het standaardvolume wijzigen als dat nodig is.

Extra tegoed: ondersteuning voor AirPlay toevoegen

Een ding dat je DIY Echo in de commerciële versie mist, is de mogelijkheid om te functioneren als een Bluetooth-luidspreker. U kunt vergelijkbare functionaliteit toevoegen met AirPlay. Op deze manier fungeert uw Echo ook als een ontvanger waarnaar u muziek kunt verzenden vanaf uw telefoon of computer. Het is eenvoudig om toe te voegen, je hebt slechts een laatste rit naar de opdrachtregel via Terminal nodig:

  1. Typ sudo apt-get install git libao-dev libssl-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libwww-perl avahi-utils libmodule-build-perl en druk op Enter. Hiermee installeert u verschillende software die u nodig hebt.
  2. Druk op Y wanneer daarom wordt gevraagd en wacht tot alles is gedownload en geïnstalleerd.
  3. Typ git clone //github.com/njh/perl-net-sdp.git en druk op Enter. Dit is vereist voor de nieuwste versie van AirPlay's software. De volgende paar opdrachten bouwen en installeren deze software.
  4. Typ cd perl-net-sdp en druk op Enter.
  5. Typ perl Build.PL en druk op Enter.
  6. Typ sudo ./Build en druk op Enter.
  7. Typ sudo ./Build test en druk op Enter.
  8. Typ sudo ./Build install en druk op Enter.
  9. Typ CD .. en druk op Enter.
  10. Nu pak je Shairport, de DIY Airport-software. Typ git clone //github.com/hendrikw82/shairport.git en druk op Enter.

  11. Typ cd shairport en druk op Enter.
  12. Typ het make en druk op Enter.
  13. Typ ./shairport.pl -a AlexaPi en druk op Enter.

Hiermee kun je nu muziek of andere audio streamen naar je DIY Echo met behulp van het AirPlay-protocol. Nu je Echo actief is, ga je gang en begin je ermee te spelen.