ID.nl logo
Maak je eigen Google Home met een Raspberry Pi
© PXimport
Zekerheid & gemak

Maak je eigen Google Home met een Raspberry Pi

De Google Home is een draadloze slimme luidspreker die als je slimme assistent functioneert. Het apparaatje maakt gebruik van spraakherkenning om je opdrachten aan te nemen. Voorlopig is Google Home nog niet in Nederland verkrijgbaar, maar dan bouw je er toch zelf een? In dit artikel creëren we je eigen Google Home met een Raspberry Pi 3.

01 Benodigdheden

Het hart van je eigen slimme luidspreker is de Raspberry Pi 3. Daarop sluit je een luidspreker en een microfoon aan. De luidspreker prikken we in de analoge uitgang van de Pi. De geluidskwaliteit daarvan is niet geweldig, maar voor spraaksynthese is het voldoende. Een analoge ingang heeft de Pi niet, dus we sluiten een usb-microfoon aan. Nu hoef je alleen nog een voedingsadapter aan te sluiten, en je hebt een micro-sd-kaartje nodig om het besturingssysteem op te zetten. We maken gebruik van wifi, dus een ethernetkabel is niet nodig.

02 Raspbian installeren

Download Raspbian Jessie van de website van de Raspberry Pi. Pak het zip-bestand uit. Het img-bestand dat erin zit, moeten we nu naar een micro-sd-kaartje schrijven. Formatteer eerst het kaartje met het programma SD Card Formatter. Start daarna het programma Win32 Disk Imager. Kies de schijfletter van je micro-sd-kaart, selecteer het img-bestand van Raspbian en klik op Write om het besturingssysteem naar je kaart te schrijven. Let bij beide programma’s op dat je de juiste schijfletter kiest, want de inhoud van het kaartje wordt volledig overschreven!

©PXimport

03 Netwerk instellen

Steek het micro-sd-kaartje in je pc, waarna Windows de boot-partitie in de Verkenner opent. Klik op het menu Beeld en vink bij Huidige weergave de optie Bestandsnaamextensies aan. Rechtsklik daarna op een lege plaats in de partitie en klik op Nieuw / Tekstbestand en geef het bestand de naam ssh. Verwijder de extensie .txt. Maak op dezelfde manier een bestand wpa_supplicant.conf aan in de boot-partitie. Verzeker je ervan dat je bestand de extensie .conf heeft, en niet .txt. Open het bestand in Kladblok en voeg de configuratie voor je wifi-netwerk toe met regels network={, ssid="JouwESSID", psk="JouwWifiWachtwoord" en }. Sla het bestand op en haal de micro-sd-kaart uit de pc.

04 Basisconfiguratie

Zoek het ip-adres van je Pi op in de dhcp-leases van je router en log daarop in met het programma PuTTY. Voer als gebruikersnaam pi in en als wachtwoord raspberry. Update allereerst de pakketlijsten met de opdracht sudo apt update en upgrade daarna alle geïnstalleerde programma’s met sudo apt upgrade. Voer daarna het configuratieprogramma uit met sudo raspi-config. Wijzig je wachtwoord, zodat je Pi niet ongewild onderdeel gaat uitmaken van een botnet. En zet je tijdzone correct (in Localisation Options). Sluit het configuratieprogramma daarna af (Finish).

©PXimport

05 Google Cloud Platform

We willen onze Pi met de Google Assistant API laten werken. Open daarvoor eerst de Resource Manager van het Google Cloud Platform (log in met je Google-account) en klik op Project maken. Geef het project een naam (bijvoorbeeld Google Home Pi), bevestig dat je de servicevoorwaarden hebt gelezen en klik op Maken. Wanneer het project is aangemaakt, krijg je rechtsboven een melding. Klik op het icoontje en dan op de projectnaam, waarna je het dashboard van je project te zien krijgt.

Je eigen Amazon Echo

Ook de ontwikkelaars van Alexa, de voice-service in de Amazon Echo, hebben code online gezet waarmee je je eigen Echo bouwt. De code komt met stap-voor-stap-instructies om Alexa op je Raspberry Pi te installeren. Je installeert eerst Raspbian en daarna de samples voor de Alexa Voice Service, die gebruikmaken van Node.js, de Java Development Kit 8 en Maven. Ook voor dit project heb je een luidspreker en microfoon nodig.

06 Google Assistant API inschakelen

Klik nu links in het projectdashboard op API-beheer en daarna bovenaan op API inschakelen. Typ in het zoekveld assistant in en klik daarna op Google Assistant API, dat in de zoekresultaten verschijnt. Klik bovenaan op Inschakelen. Je hebt nog inloggegevens nodig om deze API te gebruiken. Klik daarom links op Inloggegevens en dan op het tabblad OAuth-toestemmingsscherm. Vul daar bij productnaam een naam in zoals Google Home Pi, laat de rest van de velden open en klik op Opslaan.

©PXimport

07 OAuth Client ID aanmaken

Klik nu in het tabblad Inloggegevens van het API-beheer op Inloggegevens maken en kies Client-ID OAuth. Kies als applicatietype Overige, geef het een naam en klik op Maken. Je krijgt nu een client-ID en clientgeheim te zien. Klik op OK en daarna op het downloadicoontje rechts van je client-ID. Download het programma pscp van dezelfde website als PuTTY (zie stap 4) en open daarna een opdrachtprompt. Voer de opdracht pscp padnaarjsonbestand pi@IPADRES: in met het juiste pad en ip-adres van je Pi om het bestand naar je Pi te kopiëren. Vergeet de : na het ip-adres niet. Voer het wachtwoord van je Pi in.

08 Audio testen

Nu de clouddiensten van Google die we in ons project gebruiken zijn geconfigureerd, is het tijd om aan de Pi te gaan knutselen. Ga terug naar het PuTTY-venster met de opdrachtprompt van je Pi of log opnieuw op je Pi in. Voer de opdracht speaker-test -t wav uit om een testgeluid af te spelen en druk op Ctrl+C om het afspelen te stoppen. Als je niets hoort, controleer dan of je luidspreker goed is aangesloten. Voer daarna de opdracht arecord --format=S16_LE --duration=5 --rate=16k --file-type=raw out.raw uit en spreek iets in de microfoon in. Controleer of het is opgenomen met aplay --format=S16_LE --rate=16k out.raw.

©PXimport

09 Audio configureren

Als er in de vorige stap iets is misgelopen, dan herkent Raspbian waarschijnlijk standaard (een van) je audioapparaten niet. Bekijk met arecord -l het kaart- en apparaatnummer van je microfoon. Doe hetzelfde voor je luidspreker met aplay -l. Maak daarna een nieuw configuratiebestand voor je audio aan met nano ~/.asoundrc met als inhoud de tekst in de afbeelding bij deze stap en vul de juiste kaart- en apparaatnummers in. Als je luidspreker bijvoorbeeld kaartnummer 1 en apparaatnummer 0 heeft, vul je in de sectie pcm.mic de regel pcm "hw:1,0" in. Sla het bestand op met Ctrl+O en sluit nano af met Ctrl+X. Test je audio daarna opnieuw.

10 Python-omgeving installeren

De code van Google is in de programmeertaal Python geschreven. Daarom installeren we Python 3 en een virtuele Python-omgeving om de code te isoleren van de rest van Raspbian met sudo apt install python3-dev python3-venv. Maak een virtuele omgeving aan met python3 -m venv env en voer env/bin/python -m pip install --upgrade pip setuptools uit en tot slot source env/bin/activate om de virtuele omgeving te activeren.

11 Google Assistant SDK installeren

Installeer de Google Assistant SDK en autorisatietool in de Python-omgeving met python -m pip install --upgrade google-assistant-library google-auth-oauthlib[tool]. Open nu de pagina Activiteitsopties en controleer of Web- en app-activiteit, Apparaatgegevens en Spraak- en audioactiviteit zijn ingeschakeld. Sta daarna de Google Assistant SDK toe om voor je Google-account Assistant-aanvragen te doen. Dat gebeurt met de opdracht google-oauthlib-tool --client-secrets padnaarjsonbestand --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless, waarbij je de naam van het json-bestand invult dat je eerder naar je Pi hebt gekopieerd. Bezoek de url die je te zien krijgt, sta daar de toegang toe en voer de autorisatiecode die je te zien krijgt in de opdrachtregel in.

©PXimport

12 Demo uittesten

Start de demo van de Google Assistant SDK met google-assistant-demo en stel een vraag. Dat doe je in het Engels, door “Ok Google” of “Hey Google” te zeggen en daarna je vraag te stellen. Stel bijvoorbeeld de vraag “What time is it?”, “How’s the weather?” of “Show me a Thai restaurant”. Google kent je locatie en geeft dan ook heel accuraat antwoord op die vragen. Ondertussen krijg je in het terminalvenster van je Pi een transcriptie te zien van wat het programma van je stem verstaat. Je sluit de demo af met Ctrl+C.

13 IFTTT integreren

Standaard kan Google Assistant op je Pi al heel wat, maar het is ook mogelijk om zelf opdrachten toe te voegen. Bekijk daarvoor de pagina Next Steps in de documentatie van de API. Een eenvoudige manier om je Google-assistent uit te breiden is met IFTTT. Zorg dat je op IFTTT inlogt met hetzelfde Google-account als je voor Google Assistant API gebruikt. Bezoek dan het Google Assistant-kanaal op IFTTT en klik op Connect. Sta IFTTT toegang tot Google Assistant toe.

14 IFTTT-applets inschakelen

Bekijk eens de applets (vroeger ‘recepten’ genoemd) in het Google Assistant-kanaal van IFTTT en probeer er een paar uit. Zo is er een applet om het volgende uur in je Google Agenda te blokkeren, om je Nest-thermostaat in te stellen, om de kleur van je Philips Hue-verlichting te veranderen, om taken aan een lijst toe te voegen die je assistent op het einde van de dag naar je e-mailt en nog vele andere. Op deze manier verbind je je eigen Google-assistent met alle mogelijke internetdiensten en slimme apparatuur.

©PXimport

15 Google Assistant automatisch starten

Open het opstartbestand van Raspbian voor loginsessies met sudo nano /etc/profile. Ga naar het einde van het bestand. Voeg daar de regel /home/pi/google-assistant.sh toe. Sla het bestand op met Ctrl+O en sluit nano af met Ctrl+X. Creëer daarna een nieuw bestand met nano /home/pi/google-assistant.sh met daarin de regels #!/bin/bash, source /home/pi/env/bin/activate en sudo -u pi /home/pi/env/bin/google-assistant-demo &. Sla weer op met Ctrl+O en sluit af met Ctrl+X. Maak het uitvoerbaar met chmod +x /home/pi/google-assistant.sh/. Herstart je Pi met sudo reboot en controleer na een tijdje of de Google Assistant draait door een vraag te stellen.

16 Actions on Google

Wil je nog ingewikkeldere zaken doen met je Google-assistent, bekijk dan Actions on Google. Met deze API breid je Google Assistant uit met je eigen apps. Met deze apps bied je een ‘conversationele interface’, waarbij je kunt laten reageren op je vragen met antwoorden of willekeurige acties. Een soort ‘IFTTT on steroids’ dus, voor pro’s.

Een spraakassistent zonder pottenkijkers

Google en Amazon proberen van hun spraakgestuurde apparaten Home en Echo een centraal punt te maken waarmee je alle apparaten in je huis aanstuurt en al je online zaken regelt. Maar deze bedrijven hebben het niet zo op privacy … Voel je je er goed bij dat zij hun oren altijd open hebben midden in je huis? Niet? Gelukkig is er een opensource alternatief, waarmee je een onafhankelijke spraakassistent opzet: Jasper. Hier vind je hoe je met Jasper een spraakassistent maakt die je privacy respecteert.

©PXimport

▼ Volgende artikel
Review Philips Baristina met Bean swap – Veel gemak, weinig glamour
© Philips
Huis

Review Philips Baristina met Bean swap – Veel gemak, weinig glamour

Koffiedrinkers met verschillende smaak in bonen waren tot nu toe aangewezen op twee apparaten of gehannes met verwisselen van koffiebonen. De Philips Baristina is een koffiemachine waarmee je snel wisselt tussen twee soorten bonen. ID.nl testte hem uit.

Uitstekend
Conclusie

De Philips Baristina met bean swap is een uitstekende keuze voor koffiedrinkers die graag variëren in smaak en dit zo eenvoudig mogelijk willen doen. De kernfunctionaliteit is sterk, de koffie is van goede kwaliteit en het gebruiksgemak is hoog. Kleine gemiste details in afwerking en ontwerp doen niets af aan de praktische waarde, maar zorgen er wel voor dat het apparaat minder premium aanvoelt dan sommige concurrenten in dezelfde prijsklasse.

Plus- en minpunten
  • Bean swap-functie is handig
  • Gebruiksvriendelijk ontwerp
  • Razendsnel koffiezetten
  • Geschikt voor bonen én gemalen koffie
  • Goede koffiekwaliteit
  • Matige afwerking
  • Lastig te openen bonenklep
  • Kleine reservoirs

Eerste indruk: compact en eenvoudig

De Philips Baristina met bean swap is een relatief compacte, niet al te zware machine met een grotendeels kunststof afwerking. Hij biedt de opties om twee verschillende soorten koffiebonen in twee afgescheiden reservoirs boven op het apparaat te doen. Je maakt daarmee naar keuze espresso of lungo met een van beide bonensoorten, of een mix ervan. De bedoeling is dat iedereen makkelijk een koffietje naar zijn eigen smaak maakt. Er is een standaardinstelling voor beide typen dranken, maar het is ook mogelijk om de espresso of lungo sterker te maken met een druk op de knop. Klinkt als een overzichtelijke hoeveelheid functies.

©Saskia van Weert

Verpakking en materiaalgebruik

Zoals bij alle eerder geteste Philips-apparaten zit de Baristina stevig verpakt. Ditmaal niet in een 'gewone' kartonnen doos, maar in een opvallende verpakking waarbij je het karton openklapt om de machine als een soort cadeautje te onthullen. Direct valt op dat het een apparaat zonder veel toeters en bellen is: een eenvoudige grijze body met een uitlekbakje onder het tuitje, een apart verpakte portafilter en een waterreservoir achterop. De behuizing bestaat voor 50 procent uit gerecycled kunststof, waardoor hij helaas wel wat goedkoop oogt gezien de adviesprijs van 349 euro (inmiddels een stuk in prijs gedaald).

Handleiding en voorbereiding

De bediening bestaat uit drie knoppen die met iconen aangeven waarvoor ze bedoeld zijn. Uiteraard is er ook een snoer om hem aan te sluiten, een garantieboekje en een flyer met een QR-code om de handleiding te bekijken en te downloaden. Philips heeft er ditmaal gelukkig voor gekozen niet alle EU-talen in één pdf te zetten, zoals bij de airfryer met stoomfunctie, maar beperkt zich tot een handvol talen. Want hoe eenvoudig een apparaat er ook uitziet, de handleiding even doornemen is altijd een goed idee. Zeker omdat koffiemachines vaak wat handelingen vereisen voordat ze klaar zijn voor gebruik. In dit geval zijn de voorbereidingen overzichtelijk: even doorspoelen met schoon water en uiteraard het portafilter en waterreservoir goed uitspoelen en afdrogen.

©Saskia van Weert

Bonen erin, water erbij

Dan aan de slag. De bonen zijn van bovenaf in het reservoir te gieten. Daarvoor moet wel eerst het bovenklepje open, wat niet zo heel gemakkelijk gaat – ik moet er mijn nagel tussen zetten. Iets van een randje of flapje was handig geweest. Het vullen zelf is een kwestie van de bonen ofwel links ofwel rechts in het reservoir gieten, en dan het klepje weer goed aandrukken. Het waterreservoir haal je gelukkig wel makkelijk uit de behuizing en vul je gewoon onder de kraan. Er zit geen Min-Max-aanduiding op, maar dat is verder geen probleem; er is geen vlondertje om in de gaten te houden.

©Philips

Koffie zetten: zo werkt het

Om koffie te zetten, draai je eerst de knop bovenop naar de gewenste koffiebonensoort. Er zijn drie mogelijkheden: links, rechts of de knop naar onderen draaien. Dat laatste zorgt voor een mix van beide bonensoorten. Druk op de knop voor de espresso of lungo en eventueel de knop voor een extra sterke variant. Vervolgens duw je het portafilter in de opening boven de schenktuit en beweeg je hem naar rechts. Hij komt schuin in een hoek vast te zitten en de machine gaat meteen malen. Dat maakt behoorlijk veel lawaai, en dat is natuurlijk inherent aan het proces van bonen malen. Direct na het malen schiet het portafilter terug naar de beginpositie en begint het water door te lopen. Tijdens dit alles knippert de knop van de gekozen drank.

©Philips

Drab en dosering

Stopt het knipperen, dan is de koffie klaar. Het portafilter kan eruit en moet worden leeggegooid. Direct na het zetten is de koffiedrab erg nat en waterig, dus meteen in de vuilnisbak is geen handige optie. Beter werkt het om de koffie even te laten opdrogen en de drab later alsnog weg te gooien. Er zit een soort uitwerpknopje aan de onderzijde van het portafilter, en dat werkt prima om alles weg te gooien zonder de koffieresten aan te hoeven raken.

Standaard komt er 110 ml lungo of 40 ml espresso uit de machine. Zeker dat eerste is wat krap aan voor een 'Hollandse bak', maar de Baristina kan worden geprogrammeerd om meer koffie te produceren. Dat gaat aan de hand van de drukknoppen en is heel eenvoudig uit te voeren, net als het herstellen van de fabrieksinstellingen.

Consistente smaak

Ook bij meerdere koppen koffie achter elkaar blijft de temperatuur stabiel, wat belangrijk is voor een consistente smaak. Gemalen koffie wordt ondersteund via het portafilter. Dat is ideaal voor speciale single origin-koffies of cafeïnevrije varianten die je niet altijd in bonenvorm kunt krijgen. Het proces is simpel: je voegt de gemalen koffie toe, drukt de juiste knop in en de machine doet de rest.

©Philips

Wat opvalt, is dat de machine zijn werk razendsnel doet. Vanaf het indrukken van de keuzeknop is de koffie in luttele seconden klaar. Qua koffiekwaliteit levert de Baristina een volle, ronde smaak. De cremalaag is mooi egaal en de extractie verloopt zonder spetters of lekkages. Bij de Extra Sterk-stand is de smaak overigens merkbaar krachtiger, dus die voegt zowaar iets toe.

Houd je koffiebonen lang vers!

Met een luchtdicht bewaarblik bijvoorbeeld

Plus- en minpunten

De belangrijkste pluspunten zijn de snelheid en het gemak van de bean swap-functie, de programmeerbare koffiematen, het gebruiksvriendelijke ontwerp en de veelzijdigheid dankzij de ondersteuning voor zowel bonen als gemalen koffie. Minpunten zijn de minder luxe afwerking, het ontbreken van een klepje op het bonenreservoir en de kleinere inhoud van de dubbele bonencontainers.

Alles bij elkaar is de Philips Baristina met bean swap een uitstekende keuze voor koffiedrinkers die graag variëren in smaak en dat zo eenvoudig mogelijk willen doen. De kernfunctionaliteit is sterk, de koffie is van goede kwaliteit en het gebruiksgemak is hoog. Kleine gemiste details in afwerking en ontwerp doen niets af aan de praktische waarde, maar zorgen er wel voor dat het apparaat minder premium aanvoelt dan sommige concurrenten in dezelfde prijsklasse. Voor wie flexibiliteit belangrijker is dan luxe, is dit echter een zeer geslaagde machine.

▼ Volgende artikel
Shokz OpenDots ONE: hippe clip-on oordopjes met open-ear audio
© Shokz
Huis

Shokz OpenDots ONE: hippe clip-on oordopjes met open-ear audio

Shokz heeft de OpenDots ONE aangekondigd, een setje draadloze clip-on oordopjes met open-ear ontwerp en ondersteuning voor Dolby Audio. De ultralichte dopjes moeten een strak design met krachtig geluid combineren en zijn per direct verkrijgbaar.

In dit artikel lees je:
  • Wat de OpenDots ONE onderscheidt van gewone oordopjes
  • Hoe Shokz JointArc-technologie zorgt voor comfort en flexibiliteit
  • Wat je kunt verwachten van het compacte maar krachtige geluid
  • Hoe de bediening en accuduur in de praktijk werken
  • Wanneer de OpenDots ONE verkrijgbaar zijn en wat ze kosten

©Shokz

Shokz heeft de OpenDots ONE aangekondigd, een nieuwe set draadloze clip-on oordopjes. Het model combineert de open-ear technologie waar het merk om bekendstaat met een compact ontwerp. De fabrikant richt zich met dit product niet alleen op sporters of zakelijke gebruikers, maar ook op een bredere groep consumenten die hun oordopjes de hele dag door willen gebruiken, zowel onderweg als thuis. Daarmee breidt Shokz zijn assortiment uit naast de bestaande bone conduction-koptelefoons.

Voor langdurig comfort

De OpenDots ONE maken gebruik van JointArc-technologie, een ultradunne titaniumlegering die zich automatisch aanpast aan de vorm van het oor. In combinatie met een siliconen afwerking moeten de dopjes licht en flexibel aanvoelen. Dit ontwerp moet ervoor zorgen dat de oordopjes stevig blijven zitten zonder drukpunten te veroorzaken, wat vooral bij langdurig gebruik van belang is. Shokz benadrukt dat de OpenDots ONE ontworpen zijn voor uiteenlopende situaties, van een werkdag achter de computer tot lange treinreizen of een wandeling buiten.

©Shokz

De oortjes zitten dus niet in de gehoorgang, maar hangen daar vlak vóór, zodat je een deel van de omgevingsgeluiden gewoon meekrijgt.

Ruimtelijk geluid

Voor de geluidsweergave heeft Shokz gekozen voor een dual-driver systeem. Dit moet prestaties leveren die vergelijkbaar zijn met die van een 16 mm driver, maar in een compacter formaat. Daarnaast zijn Bassphere- en OpenBass 2.0-technologie geïntegreerd, die zorgen voor extra nadruk op de lage tonen. Samen met de ondersteuning voor Dolby Audio moet dit leiden tot een ruimtelijk geluid dat beter tot zijn recht komt bij muziek, podcasts en films. De fabrikant positioneert de OpenDots ONE hiermee als een alternatief voor traditionele in-ear of over-ear hoofdtelefoons, maar dan met een open-ear ontwerp.

©Shokz

Bediening en accuduur

De bediening verloopt via tik- en knijpbewegingen op de oordopjes zelf. Zo kunnen gebruikers het volume aanpassen, nummers overslaan of telefoongesprekken aannemen zonder hun smartphone erbij te pakken. Een extra functie is Dynamic Ear Detection: ongeacht welk dopje als eerste wordt opgepakt, start de audio automatisch zodra het in het oor wordt geplaatst. De accuduur bedraagt maximaal 10 uur op één lading. Met de meegeleverde oplaadcase kan dat worden verlengd tot 40 uur. Voor korte laadmomenten biedt de snellaadfunctie twee uur speeltijd na tien minuten opladen, wat handig kan zijn als je een drukke dag voor de boeg hebt.

Geschikt voor dagelijks gebruik

Omdat oordopjes vaak worden gebruikt in uiteenlopende omstandigheden, heeft Shokz de OpenDots ONE voorzien van een IP54-certificering. Dat maakt ze bestand tegen zweet en spatwater, waardoor ze ook inzetbaar zijn tijdens sport of bij nat weer. De oplaadcase ondersteunt draadloos opladen, wat natuurlijk wel zo handig is als je even geen kabels en stroom in de buurt hebt. Verder zijn er vier ingebouwde microfoons met ruisonderdrukking aanwezig. Deze moeten ervoor zorgen dat telefoongesprekken helder blijven, ook in omgevingen met veel achtergrondgeluid, zoals in het openbaar vervoer of op straat.

De Shokz OpenDots ONE zijn zoals hierboven al vermeld per direct verkrijgbaar in de kleuren grijs en zwart. De adviesprijs is vastgesteld op 199 euro. Met deze introductie wil de fabrikant een nieuw segment binnen zijn productlijn aanboren: compacte, open-ear oordopjes die zowel als audioproduct als stijlvol dagelijks accessoire gebruikt kunnen worden.