Vuoi costruire il tuo hub di casa intelligente a comando vocale?  Ecco come utilizzare Google Assistant con un Raspberry Pi!

Come costruire un Google Home Assistant fai-da-te con Raspberry Pi

Annuncio pubblicitario Gli assistenti a comando vocale sono diventati rapidamente all'ordine del giorno. Molte case hanno una casa Alexa o Google che controlla tutto, dall'illuminazione ai media e persino il cronometraggio. La tecnologia su cui funzionano questi dispositivi è disponibile, almeno in parte, a tutti.

Annuncio pubblicitario

Gli assistenti a comando vocale sono diventati rapidamente all'ordine del giorno. Molte case hanno una casa Alexa o Google che controlla tutto, dall'illuminazione ai media e persino il cronometraggio.

La tecnologia su cui funzionano questi dispositivi è disponibile, almeno in parte, a tutti. L'Assistente SDK di Google ti consente di utilizzare il servizio sui tuoi dispositivi. Questo tutorial spiega come configurare l'Assistente Google sul tuo Raspberry Pi e attivare la voce di un LED tramite pin GPIO.

Hardware richiesto per un assistente domestico Raspberry Pi

Raspberry Pi Google Assistant Attrezzatura necessaria

Avrai bisogno:

  1. Raspberry Pi con una nuova installazione di Raspbian sulla scheda SD Come installare un sistema operativo su un Raspberry Pi Come installare un sistema operativo su un Raspberry Pi Ecco come installare un sistema operativo su Raspberry Pi e come clonare la configurazione perfetta per una rapida ripristino di emergenza. Leggi di più .
  2. Webcam o microfono USB.
  3. Altoparlante esterno
  4. Circuito dal tutorial Pi LED Come programmare il tuo Raspberry Pi per controllare le luci a LED Come programmare il tuo Raspberry Pi per controllare le luci a LED Stai cercando un progetto Raspberry Pi facile per iniziare con la codifica e l'elettronica? Prova a collegare alcuni LED e codificali per accenderli e spegnerli! Maggiori informazioni (facoltativo)
  5. Un browser collegato al tuo account Google.

Nota: l'attrezzatura per questo tutorial può variare leggermente. Ho usato una webcam USB di riserva esclusivamente per il suo microfono. Qualsiasi webcam o microfono compatibile dovrebbe andare bene, e ci sono lunghi elenchi di dispositivi compatibili Pi per aiutare.

Inoltre, sto usando l'uscita da 3, 5 mm per l'audio. Funzioneranno anche HDMI e altre fonti di uscita, anche se richiederà modifiche alla configurazione del suono di seguito.

Collegare la webcam e l'altoparlante USB e configurare il circuito LED se lo si utilizza.

Impostazione del suono

Questo tutorial può essere seguito direttamente sul Pi o tramite una connessione SSH nel Pi.

Entrambe le modalità iniziano nel terminale, per verificare le impostazioni audio. Utilizzare i comandi arecord -l e aplay -l per elencare i dispositivi disponibili.

Controllare i dispositivi di riproduzione e registrazione

L'immagine sopra mostra la webcam USB come scheda 1 e dispositivo 0 . Prendi nota della scheda e dei numeri di dispositivo per l'uscita del microfono e degli altoparlanti.

Ora, assicurandoti di essere nella directory / home / pi, crea un nuovo file e aprilo in nano:

 sudo nano .asoundrc 

Il contenuto di questa directory differirà a seconda della carta e dei numeri di dispositivo che stai utilizzando. Qui è possibile scegliere di preferire l'uscita HDMI anziché 3, 5 mm, se lo si desidera.

file di configurazione asoundrec per microfono e altoparlante

Dopo aver inserito la versione del codice precedente, premi Ctrl + X per salvare ed uscire.

Prova la tua configurazione registrando e riproducendo una breve clip:

Effettuare una registrazione di prova per verificare la configurazione

Passaggio facoltativo: se si desidera modificare il volume di ingresso del microfono, aprire alsamixer e premere F6 per passare da un dispositivo all'altro.

Questo è tutto! Il suono è impostato.

Creazione del progetto Google

Apri il browser Pi, in alternativa, se sei connesso tramite SSH, apri un browser localmente. Vai a Google Action Console e fai clic su Nuovo progetto .

Crea un nuovo progetto Google

Questo potrebbe richiedere alcuni minuti. Al termine, lascia la finestra attiva e apri una nuova scheda — ci arriveremo tra un momento.

Abilitazione dell'API di Google Assistant

Ci sono alcune modifiche online che dovrai fare per continuare. Vai al sito Web dell'API di Google Assistant e fai clic su Abilita .

Abilita l'API di Google Assistant

Il progetto richiede anche autorizzazioni di attività. Vai al pannello di controllo delle attività e assicurati che le seguenti attività siano attivate:

  • Attività Web e app (inclusa la casella di controllo Cronologia Chrome)
  • Informazioni sul dispositivo
  • Attività vocale e audio

Modifica delle impostazioni delle attività di Google

Ora puoi passare alla registrazione del dispositivo.

Registrazione di Raspberry Pi

Di nuovo in Action Console, seleziona Registrazione dispositivo dal pannello di sinistra. Sotto Prodotto crea un nome facile da ricordare per il tuo dispositivo. Il nome del produttore non è importante (ma deve essere presente) e selezionare Auto per il tipo di dispositivo.

Registra il tuo Pi come modello

Fai clic su Registra modello e nella schermata successiva fai clic su Scarica credenziali OAuth 2.0 . Questo scarica un file JSON sul tuo computer. Se non hai familiarità con i file JSON, non ti preoccupare, ma impara come utilizzare JSON JSON Python Parsing: una guida semplice JSON Python Parsing: una guida semplice Ci sono librerie e kit di strumenti disponibili per l'analisi e la generazione di JSON da quasi qualsiasi lingua e ambiente. Questo articolo si concentra su metodi e problemi derivanti dall'analisi di Python JSON. Leggi di più vale la pena fare per il futuro!

La guida ufficiale di Google consiglia di spostare il file in / home / pi, quindi apri il file manager e fallo ora.

Passaggio aggiuntivo per gli utenti SSH:

Se stai usando SSH avrai scaricato il file JSON sul tuo computer locale invece che sul Pi. Per trasferirlo, aprire una finestra terminale separata senza connessione SSH. Da questa finestra, copia sul file JSON segreto del client usando questo comando:

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

Sostituisci "raspberry-pi-ip-address" con l'indirizzo IP del tuo Pi e non dimenticare i due punti prima del percorso. Se hai scaricato il file JSON in un'altra posizione, modifica il percorso locale per riflettere questo. Inserisci la tua password quando richiesto e il file verrà copiato nella home directory del Pi.

Copia l'ID del Cient segreto nell'IP

Torna al terminale SSH e vai a / home / pi . Immettere ls -l per elencare i file nella directory. Dovresti vedere il file JSON segreto del client trasferito.

Installazione dell'SDK

Google consiglia di lavorare in un ambiente virtuale Python. Crea un nuovo ambiente virtuale chiamato env .

Se non l'hai mai fatto prima, questo tutorial ti aiuterà a imparare come usare gli ambienti virtuali Python.

Installa le ultime versioni di Pip, Setuptools e Wheel e attiva il tuo ambiente virtuale:

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

Google Assistant ha alcune dipendenze che dovresti installare ora nell'ambiente virtuale.

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

Infine, installa Google Assistant SDK, Samples e lo strumento 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] 

Questo è tutto il necessario per iniziare a correre. Se una delle installazioni non riesce, controllare l'ortografia e la spaziatura accuratamente.

Autenticazione di Raspberry Pi

Utilizzare google-auth-oauthlib [strumento] con il file JSON delle credenziali scaricato in precedenza per autenticare 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 

Dovrai sostituire YOUR_CLIENT_SECRET_ID con il file scaricato, quindi vale la pena copiare prima il nome file. Questo ID client deve essere corretto. Non modificare il nome file!

Dovresti ricevere un messaggio con un link che ti chiede di incollare un codice di autorizzazione.

Generazione del collegamento di autorizzazione dalla riga di comando.

Facendo clic sul collegamento si apre il browser. Ti verrà richiesto di abilitare il dispositivo sul tuo account Google. Copia il codice di autorizzazione che segue e incollalo nuovamente nella finestra del tuo terminale.

Dovresti ricevere una conferma leggendo Credenziali salvate: / home / pi ..., il che significa che Pi è stato autorizzato con successo con il tuo account Google.

Provandolo

Ora che tutto è a posto, è il momento di testare il tuo Pi Google Assistant. Esegui l'assistente con questo comando:

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

Dovrai sostituire my-dev-project con il tuo ID progetto (che si trova nella ruota dentata Impostazioni di Action Console). L' ID modello del dispositivo è elencato nella sezione Registrazione dispositivo di Action Console.

Provalo! Dì "OK Google" e fai una domanda. Puoi vedere l'output del programma nel terminale mentre senti la risposta:

Uscita terminale per Google Assistant

Questo è tutto! Google Assistant è ora in esecuzione sul tuo Raspberry Pi. Nota che se il volume di uscita è un po 'basso, puoi cambiarlo dicendo "Ehi Google, alza il volume all'80%".

Bonus: Voice Activated GPIO

È possibile controllare le luci con un Arduino e Siri, ma esiste un metodo più semplice. Se imposti un LED, puoi utilizzare l'Assistente Google per controllarlo con la tua voce.

La configurazione di Google Assistant per funzionare con i pin GPIO è relativamente semplice, ma richiede alcuni passaggi aggiuntivi. Vai a Google Action Console e trova il tuo dispositivo in Registrazione dispositivo. Cliccaci sopra e apri il menu dei tratti:

Attivazione della caratteristica Assistente OnOff

Attiva il tratto OnOff e fai clic su Salva.

Ora assicurandoti di essere all'interno dell'ambiente virtuale env, clona una versione dell'SDK sul tuo Pi usando git:

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

Poiché si tratta di un ambiente virtuale, dovrai installare RPi.GPIO prima di andare avanti.

 pip install rpi.gpio 

Ora, vai alla cartella contenente lo script hotword.py .

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

Modifica dello script

Dovrai aggiungere alcune righe allo script hotword.py, quindi aprilo nell'editor nano:

 nano hotword.py 

Sotto le dichiarazioni di importazione, aggiungi il tuo per RPi.GPIO.

 import RPi.GPIO as GPIO 

Cerca il metodo process_event . Alla riga 66, rimuovere o commentare l'istruzione print e aggiungere un'istruzione if per controllare il 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) 

Questa logica controlla il LED, ma finora non è configurato per l'output. Impostalo nella funzione main () prima di chiamare il metodo process_event.

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

Ora il pin GPIO è impostato su output e inizializza in uno stato basso. Salva ed esci. È possibile eseguire lo script modificato passando il numero ID modello (disponibile in Action Console) come argomento.

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

L'uscita del terminale è la stessa di prima e l'assistente funzionerà come standard. Ora però, quando dici "OK Google, attiva" vedrai un nuovo output:

Messaggio terminale che mostra la dichiarazione di stampa "LED acceso"

Nota: l'immagine sopra è stata ritagliata, mostrando solo l'assistente che ascolta la richiesta e l'istruzione print aggiunta allo script.

Dovresti vedere anche il tuo LED acceso!

LED ad attivazione vocale.

Il tuo assistente Google Home Raspberry Pi fai-da-te

Questo progetto è una buona introduzione all'uso dei servizi API di Google. Ora che hai un dispositivo Google Assistant, prova alcuni dei migliori comandi di Google Home I cheat sheet dei comandi di Google Home I cheat sheet dei comandi di Google Home Il nostro cheat sheet dei comandi di Google Home contiene tonnellate di azioni utili, tra cui intrattenimento, informazioni e automazione. Ulteriori informazioni — abbiamo esaminato alcuni fantastici mini giochi di Google Home 15 Comandi di Google Home per i mini giochi e Altro 15 Comandi di Google Home per i mini giochi e altro Puoi fare tante cose con i comandi di Google Home. Ecco alcuni comandi divertenti di Google Home che vale la pena provare. Leggi di più .

Ulteriori informazioni su: Tutorial per progetti fai-da-te, Assistente Google, Luci a LED, Raspberry Pi, Smart Hub.