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
Zo maak je tóch screenshots op Android als een app dat niet toestaat
Huis

Zo maak je tóch screenshots op Android als een app dat niet toestaat

Ondanks het feit dat Android een ontzettend open platform is waar je veel dingen zelf op kunt instellen, loop je soms tegen een beperking aan. Zo kan het zijn dat je in sommige apps geen screenshot mag maken. Maar mág niet betekent niet kán niet ... Toch een screenshot nodig? Probeer dan deze manieren!

⏱ Geen tijd om het complete artikel te lezen maar toch een screenshot nodig? Doe dan dit:

1. Zet Schermopname aan (staat meestal in het snelmenu) 2. Begin met het opnemen van je scherm 3. Na het opnemen speel je de video af 4. Pauzeer op het frame dat je wilt screenshotten 5. Maak nu het screenshot zoals je dat normaliter doet

Lukt dit niet? Vraag het dan aan Google Assistent.

Lees ook: Deze 4 functies maken Android 15 bijzonder

Hoe vaak doe je het niet: even snel een screenshot maken van wat er op het scherm gebeurt. Zo kun je aan een ander laten zien wat jij ziet, waardoor diegene je kan helpen. Of je wilt iets vastleggen voor later. Wat je reden ook is: het is vervelend als blijkt dat een Android-app het maken van screenshots geblokkeerd heeft. Dit komt zelden voor, maar specifieke apps hebben dergelijke beperkingen – denk aan bankapps en berichtendiensten. Soms is het een kwestie van een schuifregelaar omzetten in de instellingen van een app, maar in veel andere gevallen is het onmogelijk.

In vrijwel alle gevallen heeft dit met privacy en beveiliging te maken. Zo beperkt een bankapp deze functie om te voorkomen dat je persoonlijke gegevens lekken. Browserapps beperken de functionaliteit daarnaast soms in de privémodus (of incognito), zodat bepaalde zaken daadwerkelijk privé blijven. Berichtendiensten doen dit soms bij kortstondige of privéberichten, zodat anderen die niet te zien kunnen krijgen. En videostreamingdiensten bouwen dit soort beperkingen in in de strijd tegen piraterij: zo kunnen beelden niet op een ongeoorloofde manier gedeeld worden.

⚠️ Tegen de gebruiksvoorwaarden Als je een screenshot maakt in een app die dat normaal gesproken niet toestaat, kan dat in strijd zijn met bepaalde wetten, regels of richtlijnen. Je bent dus zelf verantwoordelijk voor eventuele gevolgen, mochten die zich voordoen.

Een video-opname maken

Je kunt op verschillende manieren een screenshot maken binnen een app die dat normaliter niet toestaat. Zo kun je, hoe omslachtig dit ook klinkt, een video-opname maken. We bedoelen dan niet met een andere smartphone of camera, maar door gebruik te maken van de ingebouwde video-opnamefunctie. De meeste Android-smartphones hebben namelijk de optie Schermopname, binnen het snelmenu (dat is het menu dat je van boven naar beneden trekt). Als je de tegel ziet staan (misschien moet je hem eerst nog toevoegen), dan kun je als volgt te werk gaan.

• Trek het snelmenu naar beneden
• Zoek de optie
Schermopname op (het kan zijn dat die een pagina verderop zit of verstopt zit onder de knop Bewerken)
• Zet
Schermopname aan
• Begin met het opnemen van je scherm
• Na het opnemen speel je de video af
• Pauzeer op het frame dat je wilt screenshotten
• Maak nu het screenshot zoals je dat normaliter doet

Deze methode is echter niet volledig waterdicht. Het kan zijn dat een applicatie niet alleen het maken van een screenshot blokkeert, maar ook Schermopname. In dat geval kun je proberen de opname vanaf het thuisscherm te starten en vervolgens de app te openen. Het kan gebeuren dat de app dan niet in beeld komt tijdens het opnemen. Lukt dat ook niet Gelukkig is er nog een andere optie.

Vraag het aan Google Assistent

Je kunt Google Assistent vragen om het voor je te doen. Vaak blokkeren apps het maken van screenshots via de gebruikelijke manier (zoals volumeknop omlaag + powerknop), maar laten ze het met een omweg toch toe. Aangezien de Google Assistent op vrijwel elke Android-telefoon staat, kan dit een handige back-up zijn voor iedereen tegen de beperkingen aanloopt. Via het korte stappenplan leggen we je uit hoe je te werk gaat. Zo hoef je geen knoppencombinaties te gebruiken.

• Open de app (en het onderdeel) waarvan je een screenshot wilt maken
• Spreek Google Assistent aan (dit kan meestal met het commando
'Hey Google')
• Geef nu het commando '
maak een screenshot'
• De Assistent maakt direct een screenshot

Helaas is ook deze methode niet altijd succesvol. Sommige apps hebben een hardnekkige screenshotbescherming die helaas lastig te omzeilen is. Zie je na het maken van de afbeelding een zwart of leeg scherm? Dan is dat de reden.

Het kan zijn dat op jouw smartphone Google Assistent vervangen is door Google Gemini; maar de werking is hetzelfde. Mocht je de stemassistenten uitgeschakeld hebben, vergeet ze dan niet opnieuw te activeren via de instellingen van je toestel.

Niet voor screenshots, wel voor je smartphone:

De beste screenprotectors

▼ Volgende artikel
De handigste accessoires voor je laptop
© Volodymyr
Huis

De handigste accessoires voor je laptop

Haal jij graag alles uit je laptop? Dan kun je eigenlijk niet zonder handige gadgets en accessoires die het leven makkelijker maken. Je leest er alles over in dit artikel.

Dankzij handige gadgets en slimme randapparatuur haal je meer uit je laptop. Een laptoptas, losse muis en een beeldscherm zijn min of meer standaard. Maar we vertellen je graag over accessoires die minder voor de hand liggen. 💻 Accessoires voor meer mobiliteit 💻 Randapparatuur voor verbindingsmogelijkheden 💻 Diverse toevoegingen voor verbeterde prestaties en extra opties

Lees ook: Op zoek naar een nieuwe laptop? Dit is waar je op moet letten!

Een laptopstandaard

Met een laptopstandaard werk je ergonomischer en krijg je minder snel last van je nek en schouders. Je kunt de laptop er namelijk iets hoger mee plaatsen en hebt enige vrijheid bij het instellen. Bovendien is het een ideaal hulmiddel als je graag met je laptop op de bank zit. Je hebt een mooi tableau waar je laptop stabiel op staat. Sommige modellen hebben ook ruimte voor je muis. Verder is het de moeite waard om een laptopstandaard te overwegen met ingebouwde koeling. Dat helpt om de temperatuur van je laptop lager te houden. Hierdoor slijten onderdelen minder snel en blijft de laptop langer goed werken.

Een powerbank met zonnepaneel

Ben je veel onderweg of neem je je laptop mee op vakantie? Dan is het handig om een powerbank mee te nemen. Hierdoor zit je veel minder snel zonder stroom. Je laadt de powerbank thuis op en als de accu van je laptop (bijna) leeg is, sluit je de apparaten op elkaar aan. Helemaal handig zijn de modellen met zonnepaneel. Denk er wel aan dat het een tijd duurt voor een powerbank helemaal opgeladen is met een ingebouwd paneeltje.

☀️ + 🔋= 🧑‍💻

Solar powerbanks

Let er verder op dat de powerbank krachtig genoeg is voor je laptop en voldoende capaciteit heeft. Je hebt minimaal 20.000 mAh nodig om er echt iets aan te hebben. Hoeveel output je nodig hebt, vind je op de oplader van je laptop. Voor sommige kleine modellen is 30 watt genoeg, maar de meeste hebben minstens 60 watt nodig.

©Daisy Daisy

Een universele wandstekker

Ga je veel op reis en kom je terecht in landen met andere wandcontactdozen dan in Nederland? In zo'n geval is het erg handig om een reisadapter te kopen (ook wel universele stekker of wereldstekker genoemd). Ook hier is het weer belangrijk om erop te letten dat het wattage toereikend is voor je laptop.

Een usb-naar-internet adapter

Een wifi-verbinding is standaard voor laptops en geeft je lekker veel vrijheid. Maar het kan zijn dat je een slechte of wisselvallige draadloze verbinding met een netwerk hebt. Of misschien ben jij iemand die meer nodig heeft of het gewoon prettig vindt om via een kabel verbonden te zijn. Veel laptops hebben geen utp-poort meer om een ethernetkabel in te pluggen. Met een losse adapter los je dat probleem eenvoudig op. Ga op zoek naar een usb-naar-RJ45-adapter (ook wel ethernetadapter genoemd). Die zijn al te vinden voor minder dan 10 euro. Op veel adapters zitten ook extra usb-poorten, wat ook zeker het overwegen waard is.  

©amnarj2006

Een kaartlezer

Draadloos bestanden overzetten of gewoon al je foto's in de cloud opslaan werkt over het algemeen prima. Maar met een ouderwetse kaartlezer is ook niks mis. Het is vooral handig als je wat oudere apparatuur zonder moderne verbindingsmogelijkheden hebt, of wanneer je al je gegevens liever lokaal bewaart. Voor een paar euro koop je al een universele kaartlezer, met aansluitingen voor bijvoorbeeld microSD, SDHC en UHS-I.

©begun1983

Een externe dvd/blu-ray-speler

Laptops worden steeds platter, maar daardoor is er wel minder plek voor poorten. De utp-connectie is verdwenen en hetzelfde geldt voor de dvd/blu-ray speler. Heb je een collectie van je favoriete films en series? Dan is het aanschaffen van een externe dvd/blu-ray-speler een uitkomst. Voor rond de 15 euro haal je al een prima exemplaar in huis.

Een externe harde schijf

Staat je laptop vol met foto's, video's en andere bestanden? Dan is een externe harde schijf een uitkomst. Daarmee stel je in het gunstigste geval de aankoop van een nieuwe laptop uit. Het is sowieso geen gek idee om je belangrijkste data (dubbel) op te slaan. Dat kan in de cloud, maar misschien kies je liever voor een fysieke schijf die je zelf in bezit hebt.

Een docking station

Met een docking station creëer je een werkplek met je laptop als middelpunt. Het is een soort hub met allerlei poorten, zoals HDMI- en usb-poorten, kaartlezers en een utp-aansluiting. Vaak zijn ze uitgerust met een oplader voor je laptop.

Je hoeft je laptop alleen maar in het docking station te pluggen en je bent meteen verbonden met alle andere apparaten. Sommige docking stations hebben een ingebouwde laptopstandaard, zodat je ook meteen ergonomisch zit. Heb je meerdere werkplekken of een flexibele werklocatie? Dan is een docking station een handige toevoeging die bovendien meteen de voordelen van andere randapparatuur toevoegt.