Θέλετε να δημιουργήσετε το δικό σας φωνητικό ελεγχόμενο διανομέα;  Δείτε πώς μπορείτε να χρησιμοποιήσετε το Google Assistant με το Raspberry Pi!

Πώς να οικοδομήσουμε ένα DIY Αρχική Βοηθός Google με Raspberry Pi

Διαφήμιση Οι βοηθοί με φωνητικές εντολές έχουν γίνει γρήγορα συνηθισμένοι. Πολλά σπίτια έχουν μια Alexa ή το Google Home ελέγχοντας τα πάντα, από το φωτισμό στα μέσα ενημέρωσης, ακόμα και τη χρονομέτρηση. Η τεχνολογία που χρησιμοποιούν αυτές οι συσκευές διατίθεται - τουλάχιστον εν μέρει - σε όλους. Το Assistant SDK της Google σάς επιτρέπει να χρησιμοποιεί

Διαφήμιση

Οι βοηθοί με φωνητικές εντολές έχουν γίνει γρήγορα συνηθισμένοι. Πολλά σπίτια έχουν μια Alexa ή το Google Home ελέγχοντας τα πάντα, από το φωτισμό στα μέσα ενημέρωσης, ακόμα και τη χρονομέτρηση.

Η τεχνολογία που χρησιμοποιούν αυτές οι συσκευές διατίθεται - τουλάχιστον εν μέρει - σε όλους. Το Assistant SDK της Google σάς επιτρέπει να χρησιμοποιείτε την υπηρεσία στις δικές σας συσκευές. Αυτό το σεμινάριο καλύπτει τον τρόπο ρύθμισης του Βοηθού Google στο Raspberry Pi και η φωνή σας ενεργοποιεί μια λυχνία LED μέσω ακροδεκτών GPIO.

Απαιτούμενο υλικό για έναν βοηθό σπιτιών σμέουρων Pi

Raspberry Pi Google Βοηθός Βοηθός Εξοπλισμός

Θα χρειαστείτε:

  1. Raspberry Pi με μια νέα εγκατάσταση Raspbian στην κάρτα SD Πώς να εγκαταστήσετε ένα λειτουργικό σύστημα σε ένα Raspberry Pi Πώς να εγκαταστήσετε ένα λειτουργικό σύστημα σε ένα Raspberry Pi Εδώ είναι πώς να εγκαταστήσετε ένα λειτουργικό σύστημα στο Raspberry Pi σας και πώς να κλωνοποιήσετε την τέλεια εγκατάστασή σας για γρήγορη αποκατάστασης καταστροφών. Διαβάστε περισσότερα .
  2. USB webcam ή μικρόφωνο.
  3. Εξωτερικό ηχείο.
  4. Κύκλωμα από το σεμινάριο Pi LED Πώς να προγραμματίσετε το Pi σας για να ελέγξετε τα φώτα LED Πώς να προγραμματίσετε το Pi σας για να ελέγξετε τα φώτα LED Ψάχνετε για ένα εύκολο σχέδιο Raspberry Pi για να ξεκινήσετε με την κωδικοποίηση και τα ηλεκτρονικά; Δοκιμάστε να συνδέσετε μερικά LED και να τα κωδικοποιήσετε για να ενεργοποιήσετε και να απενεργοποιήσετε! Διαβάστε περισσότερα (προαιρετικά)
  5. Ένα πρόγραμμα περιήγησης που έχετε συνδεθεί στο λογαριασμό σας στο Google.

Σημείωση: Ο εξοπλισμός για αυτό το σεμινάριο μπορεί να ποικίλει κάπως. Χρησιμοποίησα μια εφεδρική κάμερα USB αποκλειστικά για το μικρόφωνο της. Οποιαδήποτε συμβατή κάμερα web ή μικρόφωνο θα πρέπει να κάνει καλά και υπάρχουν εκτενείς λίστες συσκευών συμβατών με Pi για βοήθεια.

Επίσης, χρησιμοποιώ την έξοδο 3, 5 mm για ήχο. HDMI και άλλες πηγές εξόδου θα λειτουργήσουν επίσης, αν και θα χρειαστούν τροποποιήσεις στην παρακάτω ρύθμιση ήχου.

Συνδέστε την κάμερα web και το ηχείο USB και ρυθμίστε το κύκλωμα LED αν το χρησιμοποιείτε.

Ρύθμιση του ήχου

Αυτό το σεμινάριο μπορεί να ακολουθηθεί απευθείας στο Pi ή μέσω σύνδεσης SSH στο Pi.

Και οι δύο τρόποι αρχίζουν στο τερματικό, για να ελέγξετε τις ρυθμίσεις ήχου. Χρησιμοποιήστε τις εντολές arecord -l και aplay -l για να καταχωρίσετε τις διαθέσιμες συσκευές.

Ελέγξτε τις συσκευές αναπαραγωγής και εγγραφής

Η παραπάνω εικόνα δείχνει την κάμερα web USB ως κάρτα 1 και τη συσκευή 0 . Σημειώστε τους αριθμούς της κάρτας και της συσκευής τόσο για την έξοδο του μικροφώνου όσο και για το ηχείο.

Τώρα, βεβαιωθείτε ότι βρίσκεστε στον κατάλογο / home / pi, δημιουργήστε ένα νέο αρχείο και ανοίξτε το σε nano:

 sudo nano .asoundrc 

Τα περιεχόμενα αυτού του καταλόγου θα διαφέρουν ανάλογα με τον αριθμό των καρτών και των συσκευών που χρησιμοποιείτε. Αυτό είναι όπου μπορείτε να επιλέξετε να προτιμήσετε την έξοδο HDMI αντί 3, 5mm, αν θέλετε.

asoundrec αρχείο ρυθμίσεων για μικρόφωνο και ηχείο

Όταν έχετε εισάγει την έκδοση του παραπάνω κώδικα, πατήστε Ctrl + X για αποθήκευση και έξοδο.

Δοκιμή της ρύθμισής σας καταγράφοντας και αναπαράγοντας ένα σύντομο κλιπ:

Κάντε μια δοκιμαστική εγγραφή για να ελέγξετε τη ρύθμισή σας

Προαιρετικό βήμα: Αν θέλετε να αλλάξετε τον όγκο εισόδου του μικροφώνου σας, ανοίξτε το alsamixer και πιέστε το πλήκτρο F6 για κύκλο μεταξύ συσκευών.

Αυτό είναι! Ο ήχος έχει ρυθμιστεί.

Δημιουργία του Google Project

Ανοίξτε το πρόγραμμα περιήγησης του Pi, εναλλακτικά, αν είστε συνδεδεμένοι μέσω SSH, ανοίξτε τοπικά ένα πρόγραμμα περιήγησης. Μεταβείτε στην Κονσόλα δράσης Google και κάντε κλικ στο Νέο έργο .

Δημιουργήστε ένα νέο Google Project

Αυτό μπορεί να διαρκέσει λίγα λεπτά. Όταν τελειώσετε, αφήστε το παράθυρο ενεργό και ανοίξτε μια νέα καρτέλα-θα έρθουμε σε αυτό σε μια στιγμή.

Ενεργοποίηση του API του Google Assistant

Υπάρχουν μερικές ρυθμίσεις στο διαδίκτυο που πρέπει να κάνετε για να συνεχίσετε. Πλοηγηθείτε στον ιστότοπο API του Google Assistant API και κάντε κλικ στο Enable (Ενεργοποίηση) .

Ενεργοποιήστε το API του Google Assistant

Το έργο απαιτεί επίσης άδεια λειτουργίας. Μεταβείτε στον Πίνακα ελέγχου δραστηριότητας και βεβαιωθείτε ότι είναι ενεργοποιημένες οι ακόλουθες δραστηριότητες:

  • Δραστηριότητα ιστού και εφαρμογών ιστού (συμπεριλαμβανομένου του πλαισίου ελέγχου Ιστορικό Chrome)
  • Πληροφορίες συσκευής
  • Δραστηριότητα φωνής και ήχου

Αλλαγή των ρυθμίσεων της δραστηριότητας Google

Τώρα μπορείτε να προχωρήσετε στην εγγραφή της συσκευής.

Καταχωρίζοντας το βατόμουρο Pi

Πίσω στην κονσόλα δράσης, επιλέξτε Καταχώριση συσκευής από τον αριστερό πίνακα. Κάτω από το Προϊόν δημιουργήστε ένα όνομα εύκολο να θυμάστε για τη συσκευή σας. Το όνομα του κατασκευαστή δεν είναι σημαντικό (αλλά πρέπει να είναι εκεί) και επιλέξτε Αυτόματα για τον τύπο της συσκευής.

Καταχωρίστε το Pi ως Μοντέλο

Κάντε κλικ στην επιλογή Καταχώρηση μοντέλου και στην επόμενη οθόνη κάντε κλικ στην επιλογή Λήψη διαπιστευτηρίων OAuth 2.0 . Αυτό κάνει λήψη ενός αρχείου JSON στον υπολογιστή σας. Εάν δεν είστε εξοικειωμένοι με τα αρχεία JSON, μην ανησυχείτε, αλλά μάθετε πώς να χρησιμοποιείτε το JSON JSON Python Parsing: Ένας απλός οδηγός JSON Python Parsing: Ένας απλός οδηγός Υπάρχουν διαθέσιμες βιβλιοθήκες και κιτ εργαλείων για την ανάλυση και την παραγωγή JSON από σχεδόν κάθε γλώσσα και περιβάλλον. Αυτό το άρθρο επικεντρώνεται σε μεθόδους και ζητήματα που προκύπτουν από την ανάλυση του Python JSON. Διαβάστε περισσότερα αξίζει να κάνουμε για το μέλλον!

Ο επίσημος οδηγός Google συνιστά να μετακινήσετε το αρχείο στο / home / pi, γι 'αυτό ανοίξτε το διαχειριστή αρχείων και κάντε το τώρα.

Επιπλέον βήμα για τους χρήστες SSH:

Εάν χρησιμοποιείτε SSH, θα έχετε κατεβάσει το αρχείο JSON στο τοπικό σας μηχάνημα αντί για το Pi. Για να το μεταφέρετε, ανοίξτε ένα ξεχωριστό παράθυρο τερματικού χωρίς σύνδεση SSH. Από αυτό το παράθυρο, αντιγράψτε το κρυφό αρχείο JSON του πελάτη χρησιμοποιώντας αυτήν την εντολή:

 scp ~/Downloads/client_secret_client-id.json :/home/pi/ 

Αντικαταστήστε την διεύθυνση "raspberry-pi-ip" με την διεύθυνση IP του Pi σας και μην ξεχάσετε το παχύ έντερο πριν από τη διαδρομή. Αν κατεβάσατε το αρχείο JSON σε άλλη τοποθεσία, τροποποιήστε την τοπική σας διαδρομή για να το αντικαταστήσετε. Εισαγάγετε τον κωδικό πρόσβασής σας όταν σας ζητηθεί και το αρχείο θα αντιγραφεί στον αρχικό κατάλογο της Pi.

Αντιγράψτε το αναγνωριστικό Secret Cient στο PI

Επιστρέψτε στο τερματικό SSH και μεταβείτε στο / home / pi . Πληκτρολογήστε ls -l για να απαριθμήσετε τα αρχεία στον κατάλογο. Θα πρέπει να δείτε το αρχείο JSON που έχει μεταφερθεί στον πελάτη.

Εγκατάσταση του SDK

Η Google συνιστά να εργάζεστε σε εικονικό περιβάλλον Python. Δημιουργήστε ένα νέο εικονικό περιβάλλον που ονομάζεται env .

Εάν δεν το έχετε κάνει ποτέ πριν, αυτό το σεμινάριο θα σας βοηθήσει να μάθετε πώς να χρησιμοποιείτε εικονικά περιβάλλοντα Python.

Εγκαταστήστε τις πιο πρόσφατες εκδόσεις των Pip, Setuptools και Wheel και ενεργοποιήστε το εικονικό περιβάλλον σας:

 env/bin/python -m pip install --upgrade pip setuptools wheel source env/bin/activate 

Ο Βοηθός Google έχει κάποιες εξαρτήσεις που πρέπει να εγκαταστήσετε στο εικονικό περιβάλλον τώρα.

 sudo apt-get install portaudio19-dev libffi-dev libssl-dev libmpg123-dev 

Τέλος, εγκαταστήστε το εργαλείο Google Assistant SDK, δείγματα και OAuth.

 python -m pip install --upgrade google-assistant-library python -m pip install --upgrade google-assistant-sdk[samples] python -m pip install --upgrade google-auth-oauthlib[tool] 

Αυτά είναι όλα που χρειάζονται για να σηκωθούν και να λειτουργήσουν. Αν κάποια από τις εγκαταστάσεις αποτύχει, ελέγξτε προσεκτικά την ορθογραφία και την απόσταση.

Έλεγχος ταυτότητας του Raspberry Pi

Χρησιμοποιήστε το εργαλείο google-auth-oauthlib [ με ] το αρχείο JSON πιστοποίησης που λήφθηκε νωρίτερα για να πιστοποιήσετε το Raspberry Pi.

 google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype \ --scope https://www.googleapis.com/auth/gcm \ --save --headless --client-secrets /home/pi/YOUR_CLIENT_SECRET_ID.json 

Θα χρειαστεί να αντικαταστήσετε το YOUR_CLIENT_SECRET_ID με το ληφθέν αρχείο, οπότε αξίζει να αντιγράψετε πρώτα το όνομα αρχείου. Αυτό το αναγνωριστικό πελάτη πρέπει να είναι σωστό. Μην αλλάξετε το όνομα αρχείου!

Θα πρέπει να λάβετε ένα μήνυμα με έναν σύνδεσμο, ζητώντας σας να επικολλήσετε έναν κωδικό εξουσιοδότησης.

Δημιουργία του συνδέσμου Εξουσιοδότηση από τη γραμμή εντολών.

Κάνοντας κλικ στο σύνδεσμο ανοίγει το πρόγραμμα περιήγησης. Θα σας ζητηθεί να ενεργοποιήσετε τη συσκευή στο Λογαριασμό σας Google. Αντιγράψτε τον κωδικό εξουσιοδότησης που ακολουθεί και επικολλήστε τον ξανά στο παράθυρο τερματικού.

Θα πρέπει να λάβετε ένα πιστοποιητικό αναγνώρισης επιβεβαίωσης που έχει αποθηκευτεί: / home / pi ..., που σημαίνει ότι το Pi έχει εξουσιοδοτηθεί με επιτυχία με το λογαριασμό σας στο Google.

Δοκιμάζοντας το

Τώρα που όλα είναι στη θέση τους, ήρθε η ώρα να δοκιμάσετε τον Βοηθό του Google Pi. Εκτελέστε τον βοηθό με αυτή την εντολή:

 googlesamples-assistant-hotword --project-id my-dev-project --device-model-id my-model 

Θα χρειαστεί να αντικαταστήσετε το my-dev project με το Project ID (το οποίο βρίσκεται κάτω από το Ρυθμιζόμενο γρανάζι Ρυθμίσεις της Κονσόλας Ενέργειας). Το αναγνωριστικό μοντέλου συσκευής σας παρατίθεται στην ενότητα Εγγραφή συσκευής της Κονσόλας Action.

Δοκίμασέ το! Πείτε "OK Google" και ρωτήστε μια ερώτηση. Μπορείτε να δείτε την έξοδο του προγράμματος στο τερματικό καθώς ακούτε την απόκριση:

Έξοδος τερματικού για το Google Assistant

Αυτό είναι! Ο Βοηθός Google τρέχει τώρα στο Raspberry Pi. Σημειώστε ότι εάν η ένταση εξόδου είναι λίγο χαμηλή, μπορείτε να την αλλάξετε λέγοντας "Hey Google, μετατρέψτε την ένταση του ήχου σας στο 80%."

Μπόνους: GPIO ενεργοποιημένο με φωνή

Είναι δυνατό να ελέγχετε τα φώτα με ένα Arduino και το Siri, αλλά υπάρχει μια απλούστερη μέθοδος. Εάν ρυθμίσετε μια λυχνία LED, μπορείτε να χρησιμοποιήσετε τον Βοηθό Google για να τον ελέγξετε με τη φωνή σας.

Η εγκατάσταση του Google Assistant για εργασία με τους ακροδέκτες GPIO είναι σχετικά απλή, αλλά απαιτεί κάποια επιπλέον βήματα. Προχωρήστε στην Κονσόλα Action της Google και βρείτε τη συσκευή σας στην περιοχή Καταχώριση συσκευής. Κάντε κλικ σε αυτό και ανοίξτε το μενού χαρακτηριστικών:

Ενεργοποίηση του χαρακτηριστικού OnOff Assistant

Ενεργοποιήστε το χαρακτηριστικό OnOff και κάντε κλικ στην επιλογή Αποθήκευση.

Τώρα βεβαιωθείτε ότι βρίσκεστε μέσα στο εικονικό περιβάλλον env, κλωνοποιήστε μια έκδοση του SDK στο Pi χρησιμοποιώντας το git:

 git clone https://github.com/googlesamples/assistant-sdk-python 

Δεδομένου ότι πρόκειται για ένα εικονικό περιβάλλον, θα χρειαστεί να εγκαταστήσετε το RPi.GPIO προτού προχωρήσετε.

 pip install rpi.gpio 

Τώρα, πλοηγηθείτε στο φάκελο που περιέχει το script hotword.py .

 cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/library 

Τροποποίηση του Script

Θα χρειαστεί να προσθέσετε μερικές γραμμές στη δέσμη ενεργειών hotword.py, γι 'αυτό ανοίξτε το στο πρόγραμμα επεξεργασίας nano:

 nano hotword.py 

Σύμφωνα με τις δηλώσεις εισαγωγής, προσθέστε το δικό σας για RPi.GPIO.

 import RPi.GPIO as GPIO 

Αναζητήστε τη μέθοδο process_event . Στη γραμμή 66, αφαιρέστε ή σχολιάστε τη δήλωση εκτύπωσης και προσθέστε μια εντολή if για να ελέγξετε τη λυχνία LED.

 #print('Do command', command, 'with params', str(params)) if command == "action.devices.commands.OnOff": if params['on']: print('---------------') print('Led turned on') print('---------------') GPIO.output(18, GPIO.HIGH) else: print('---------------') print('Led turned off') print('---------------') GPIO.output(18, GPIO.LOW) 

Αυτή η λογική ελέγχει τη λυχνία LED, αλλά μέχρι στιγμής δεν έχει ρυθμιστεί να εξάγει. Ρυθμίστε το στη λειτουργία main () πριν να κληθεί η μέθοδος process_event.

 GPIO.setmode(GPIO.BCM) GPIO.setup(18, GPIO.OUT, initial=GPIO.LOW) 

Τώρα ο ακροδέκτης GPIO έχει ρυθμιστεί να εκπέμπει και αρχικοποιείται σε χαμηλή κατάσταση. Αποθήκευση και έξοδος. Μπορείτε να εκτελέσετε την τροποποιημένη δέσμη ενεργειών, μεταβιβάζοντας τον αριθμό μοντέλου σας (που βρίσκεται στην κονσόλα δράσης) ως όρισμα.

 python hotword.py --device-model-id YOUR-MODEL-ID-HERE 

Η έξοδος του τερματικού είναι ίδια με την προηγούμενη και ο βοηθός θα λειτουργεί ως πρότυπο. Τώρα όμως, όταν λέτε "OK Google, ενεργοποιήστε" θα δείτε μια νέα έξοδο:

Μήνυμα τερματικού που εμφανίζει δήλωση εκτύπωσης "Ενεργοποίηση LED"

Σημείωση: Η παραπάνω εικόνα έχει περικοπεί, δείχνοντας μόνο τον βοηθό που ακούει το αίτημα, και η δήλωση εκτύπωσης προστέθηκε στη δέσμη ενεργειών.

Θα πρέπει να δείτε την λυχνία LED σας επάνω!

LED ενεργοποιημένη με φωνή.

Το δικό σας DIY Raspberry Pi Αρχική Βοηθός Google

Αυτό το έργο είναι μια καλή εισαγωγή στη χρήση των υπηρεσιών Google API. Τώρα που διαθέτετε μια συσκευή Google Assistant, δοκιμάστε μερικές από τις καλύτερες εντολές του Google Home Οι εντολές εξαπατήσεων Google Home Commands Sheet Sheet Οι εντολές εξαναγκασμού Google Home Command Cheat Sheet Το παράθυρο εξαναγκασμού των εντολών Google Home περιέχει τόνους εύχρηστων ενεργειών, όπως ψυχαγωγία, πληροφορίες και αυτοματοποίηση. Διαβάστε περισσότερα - εξετάσαμε μερικά από τα καλύτερα μίνι παιχνίδια στο Google Home 15 Εντολές Google Home για μίνι παιχνίδια και περισσότερα 15 εντολές Home του Google για μίνι παιχνίδια και περισσότερα Μπορείτε να κάνετε πολλά πράγματα με τις εντολές του Google Home. Ακολουθούν αρκετές διασκεδαστικές εντολές του Google Home που αξίζει να δοκιμάσετε. Διαβάστε περισσότερα .

Εξερευνήστε περισσότερα σχετικά με: DIY Project Tutorials, Βοηθός Google, LED Φώτα, Raspberry Pi, Smart Hubs.