- Hardwarevereisten
- De Google API instellen voor Raspberry Pi Google Assistant
- Google Assistant instellen voor Raspberry Pi Google Home
- Raspberry Pi autoriseren voor de Google Assistent
- Google Assistant gebruiken op Raspberry Pi
Heb je ooit nagedacht over een speaker die je met je stem kunt bedienen !!! Ja, Amazon Echo is een van de meest populaire spraakgestuurde luidsprekers, maar in concurrentie daarmee wordt Google Home ook populair. Stemassistenten worden steeds populairder nu we afstevenen op een tijdperk van op AI gebaseerde systemen. Je hebt gehoord van Google Assistant, Apple Siri en Amazon Alexa. Dit zijn allemaal op spraak gebaseerde AI-systemen, wat deze van elkaar onderscheidt, zijn hun ecosystemen, en dit is waar Google Assistant het meest opvalt. Google, Apple en Amazon, al deze bedrijven hebben hun slimme luidsprekers al op de markt gebracht. Slimme luidsprekers van Google zijn ook op de markt verkrijgbaar. We hebben al op Raspberry Pi gebaseerde Amazon Echo besproken, deze keer zullen we Raspberry Pi in een Google Home-luidspreker veranderen.
Google biedt de API voor het gebruik van zijn spraakservice, die open source is en beschikbaar is op Github. Met de spraakservice van Google kunnen we muziek afspelen, informatie over het weer krijgen, tickets boeken en nog veel meer. Het enige wat u hoeft te doen is vragen. Laten we in deze zelfstudie zien hoe we een spraakgestuurde slimme luidspreker kunnen bouwen met Google-assistent en Raspberry Pi.
Hardwarevereisten
- Raspberry Pi 3 of Raspberry Pi 2 Model B en SD-kaart (8 GB of meer)
- Externe luidspreker met 3,5 mm AUX-kabel
- Elke webcam of USB 2.0-microfoon
We gaan er ook van uit dat uw Raspberry pi al is ingesteld met een Raspbian-besturingssysteem en is verbonden met internet. Nu deze op hun plaats zijn, gaan we verder met de zelfstudie. Als Raspberry Pi nieuw voor je is, ga dan eerst door Aan de slag met Raspberry Pi.
Opmerking: de webcam heeft een ingebouwde microfoon, dus we zullen deze gebruiken in plaats van een USB 2.0-microfoon.
Je hebt ook een toetsenbord, muis en een monitor nodig om de Raspberry Pi met een HDMI-kabel aan te sluiten.
Webcammicrofoon controleren met Raspberry Pi:
1. Open de Raspberry Pi-terminal en typ het commando arecord -l. Hierdoor worden de hardwareapparaten weergegeven die op de Raspberry Pi zijn aangesloten, zoals hieronder weergegeven:
Kaart 1 is de microfoon van uw webcam die we gaan gebruiken. Als het niet wordt weergegeven, is uw webcam mogelijk defect.
2. Controleer nu of de microfoon werkt door het commando audio opnemen uit te voeren als:
arecord /home/pi/Desktop/test.wav -D sysdefault: CARD = 1
3. Om de opgenomen audio af te spelen, typt u deze opdracht:
omxplayer -p -o lokaal /home/pi/Desktop/test.wav
Als je Raspberry Pi met een monitor hebt verbonden met een HDMI-kabel, dan is de audio-uitvoer standaard via de luidspreker van je monitor (als er een ingebouwde luidspreker in zit). Dus om het in 3,5 mm te veranderen, moet je de volgende opdracht typen:
sudo raspi-config en ga naar de geavanceerde optie.
Selecteer Audio in de lijst -> selecteer Force 3,5 mm -> selecteer Ok en start je Raspberry Pi opnieuw op.
Nu zou u het geluid van een 3,5 mm-aansluiting moeten horen.
OPMERKING: Als u de luidheid van de ingevoerde stem voor de microfoon wilt verhogen of verlagen, type alsamixer in de terminal. Selecteer geluidskaart van de terminal door op F6 te drukken.
Druk op F4 om de Mic dB-versterking te wijzigen en stel deze in zoals u wilt.
Als u een USB 2.0-microfoon heeft, zijn de gevolgde stappen hetzelfde om de microfoon te controleren. Hier hebben we Webcam voor USB-microcphone gebruikt.
De Google API instellen voor Raspberry Pi Google Assistant
1. Eerst moeten we ons registreren en een project opzetten op het Google Console Actions-dashboard.
2. Nadat u zich heeft aangemeld bij uw Google-account, ziet u het volgende venster.
Klik op Project toevoegen / importeren .
3. Op het volgende scherm moet u de projectnaam invoeren en op Project maken klikken .
4. Ga nu naar de Google-ontwikkelaarsconsole op het nieuwe tabblad en zoek naar Google Assistant API. Voordat u verder gaat en op de knop Inschakelen drukt, moet u ervoor zorgen dat uw project is geselecteerd. Klik vervolgens op Inschakelen.
5. Open nu het vorige tabblad van de Google-console en scrol omlaag naar de onderkant van het scherm.
U vindt een optie Apparaatregistratie , klik erop.
6. Klik in het volgende scherm op Model registreren. Hierna moet u een productnaam, fabrikantnaam en een apparaattype instellen. Deze namen kunnen van alles zijn zoals u wilt.
Noteer de Device Model Id, want we hebben deze later in het proces nodig.
Klik nu op Registreer model .
7. Het volgende scherm is voor downloadreferenties. Om dit inloggegevensbestand op te halen, klikt u op OAuth 2.0-inloggegevens downloaden . Dit bestand is erg belangrijk, dus bewaar het op een veilige plaats.
Klik nu op Volgende.
8. Je kunt alle eigenschappen selecteren die je nodig hebt, maar in ons geval hebben we deze niet nodig, dus hebben we gewoon op de knop Overslaan geklikt, zoals hieronder wordt weergegeven .
9. Als alles klaar is, heb je het volgende scherm.
10. Ga nu naar de pagina Activity Controls. Hier moet u de volgende activiteitsopties activeren om ervoor te zorgen dat de Google Assistant API goed werkt.
Web- en app-activiteit, locatiegeschiedenis, apparaatinformatie, spraak- en audioactiviteit
11. Nogmaals, ga naar de Google-ontwikkelaarsconsole. Klik op Inloggegevens aan de linkerkant van het dashboard. Klik op het OAuth-toestemmingsscherm.
12. Vul uw Gmail-ID en een willekeurige naam in bij de productnaam en sla deze op.
Nu zijn we klaar met de Google API-instellingen.
Google Assistant instellen voor Raspberry Pi Google Home
Let op: vanaf dit deel moet u de tutorial rechtstreeks op de Raspbian-desktop voltooien en niet via SSH, dit is omdat u de ingebouwde webbrowser moet gebruiken.
1. Werk eerst de pakketlijst van de Raspberry Pi bij met de volgende opdracht
sudo apt-get update
2. Nu gaan we een bestand maken waarin we de referenties kunnen opslaan die we eerder hebben gedownload. Voer hiervoor de volgende twee opdrachten uit
mkdir ~/googleassistant
nano ~/googleassistant/credentials.json
3. In dit bestand moet u de inhoud kopiëren van het inloggegevensbestand dat we hebben gedownload. Open het.json-bestand in uw favoriete teksteditor en druk op ctrl + A en vervolgens op ctrl + C om de inhoud te kopiëren.
Nadat u de inhoud hebt gekopieerd, slaat u het bestand op door op Ctrl + X en vervolgens op Y te drukken en tenslotte op Enter te drukken .
4. Nadat we het inloggegevensbestand hebben opgeslagen, beginnen we met het installeren van enkele van de afhankelijkheden die nodig zijn om de Google Assistant uit te voeren.
Voer de volgende opdracht uit om Python3 en de Python 3 virtuele omgeving op onze RPi te installeren.
sudo apt-get install python3-dev python3-venv
5. Schakel nu python3 in als onze virtuele omgeving met de volgende opdracht
python3 -m venv env
6. Installeer de nieuwste versies van pip en de setuptools. Voer de volgende opdracht uit om de update op te halen
env/bin/python -m pip install --upgrade pip setuptools --upgrade
7. Om in de python-omgeving te komen, moeten we dit commando uitvoeren
source env/bin/activate
8. Nu gaan we de Google Assistent-bibliotheek installeren. Voer de volgende opdrachten een voor een uit om de bijgewerkte bibliotheek op te halen
python -m pip install --upgrade google-assistant-library
python -m pip install --upgrade google-assistant-sdk
Nu zijn we klaar met het installeren van alle vereiste afhankelijkheden en bibliotheken.
Raspberry Pi autoriseren voor de Google Assistent
1. We zullen eerst de Google-autorisatietool op onze Raspberry pi installeren door de volgende opdracht uit te voeren
python -m pip install --upgrade google-auth-oauthlib
2. Nu moeten we de Google Authentication-bibliotheek uitvoeren. Voer deze opdracht uit om de bibliotheek uit te voeren.
google-oauthlib-tool --client-secrets ~ / googleassistant / credentials.json \ --scope https://www.googleapis.com/auth/assistant-sdk-prototype \ --scope https: //www.googleapis. com / auth / gcm \ --save –headless
Deze opdracht genereert een URL, kopieert deze URL en plakt deze in uw webbrowser.
3. Log in de browser in op uw Google-account. Als u meerdere accounts heeft, selecteert u alleen het account waarmee u uw API-sleutel heeft ingesteld.
Na het inloggen ziet u een lange authenticatiecode. Kopieer deze code en plak deze in uw terminalvenster en druk op enter. Als de authenticatie is geverifieerd, zou u de volgende regel op de opdrachtregel moeten zien verschijnen, zoals weergegeven in bovenstaande afbeelding:
inloggegevens opgeslagen: /home/pi/.config/google-oauthlib-tool/credentials.json
4. Onze authenticatiegegevens zijn nu geverifieerd, maar Google wil dit nog steeds verifiëren via een pop-display. Maar onze pop-up wordt geblokkeerd door de CORS (Cross-origin resource sharing), dus schakel dit eerst uit met de onderstaande opdracht.
Om deze opdracht te gebruiken, moet u ervoor zorgen dat uw Chromium-browser gesloten is en nu een nieuw terminalvenster opent en de opdracht typt. Met deze opdracht wordt de Chromium-browser gestart met de CORS-beveiliging uitgeschakeld, surf niet op internet als deze uitgeschakeld is.
chromium-browser --disable-web-security --user-data-dir "/home/pi/
Ga na het openen van de browser naar het vorige terminalvenster waarin u het Google Assistant-voorbeeld hebt ingesteld.
5. Voer nu de volgende opdracht uit om Google Assistant voor de eerste keer te starten. Vervang in dit commando
Als je de project-ID bent vergeten, ga dan naar Actions Console op Google, klik op het project dat je hebt gemaakt en klik vervolgens op het tandwielpictogram in de linkerbovenhoek en vervolgens op Projectinstellingen.
Vervang ook
googlesamples-assistant-pushtotalk --project-id
Met deze opdracht wordt een nieuw tabblad geopend in de Chromium-browser.
6. Druk nu op Enter in het terminalvenster om het te activeren en een vraag te stellen.
Toen u de eerste vraag stelde, kan het onderstaande scherm in de browser verschijnen. Klik op Doorgaan -> Ik begrijp het -> Toestaan.
Als dit Doorgaan- scherm niet verschijnt, is er geen probleem.
7. Nu kunnen we push-to-talk Google Assistant-voorbeeld gebruiken en een uitvoerantwoord krijgen.
Wanneer u op Enter drukt in de terminal en een actie uitspreekt, hoort u een mondeling antwoord en wordt er ook een ander tabblad geopend met de actie die u zojuist hebt gebeld.
U kunt het openen van een tabblad uitschakelen door het argument –display uit de opdracht te verwijderen. We hadden dit nodig om het autorisatiescherm te krijgen.
Google Assistant gebruiken op Raspberry Pi
We hebben onze Raspberry Pi geautoriseerd. Wanneer u Google Assistant wilt starten, gaat u gewoon naar de omgeving en volgt u de onderstaande stappen.
1. Voer de volgende opdracht uit om in de omgeving te komen
source env / bin / activeren
U ziet (env) verschijnen aan de voorkant van elke regel.
2. Voer de volgende opdracht uit om het push-to-talk-voorbeeld te starten
googlesamples-assistant-pushtotalk
Deze keer hebben we geen product-ID en apparaat-ID nodig.
3. Naast de push-to-talk-functie kunt u de Google-assistent ook activeren door Ok Google te zeggen. Hiervoor moet u een ongeldig apparaat-ID invoeren om het te laten werken. Onjuiste apparaat-ID kan zoiets zijn als aaaa, abcd.
Voer nu de volgende opdracht uit.
googlesamples-assistant-hotword --device-model-id
Nu kun je alles vragen met de eigen Google-assistent, zeg gewoon Ok Google.
Dit is dus hoe we Google Assistant op Raspberry Pi kunnen installeren en er een Google Home van kunnen maken door er een luidspreker en microfoon op aan te sluiten.