Forse non tutti sanno che Google, insieme al rilascio dell’SDK di Google Assistant ha rilasciato anche le API per quanto riguarda la Raspberry Pi 3, la piccola scheda di sviluppo diventata molto popolare pure fra gli amatori. Ciò significa che, con un po’ di modifiche al codice, è possibile trasformare la Raspberry Pi 3 in uno smart speaker dotato di Google Assistant.
Gli unici requisiti hardware sono i seguenti:
- 1 Raspberry Pi 3
- 1 microSD
- 1 speaker con jack audio da 3,5 mm
- 1 microfono USB (basta anche una webcam)
- 1 tasto a molla da poter connettere alla sezione GPIO della board
Per quanto riguarda il software, invece, l’unica cosa da dover scaricare e copiare all’interno della microSD è il “Voice Kit” pubblicato da Google, il cui download può essere effettuato da questo link. Per copiare il file sulla microSD avrete bisogno di un tool chiamato Etcher.io, disponibile sia per Windows che per macOS e Linux.
Prime configurazioni
Una volta collegati monitor, mouse e tastiera alla Raspberry Pi 3 (vi serviranno solo per la configurazione iniziale), dovrete:
- Avviare la Raspberry Pi 3
- Cliccare sul simbolo della scheda nella schermata in alto a sinistra e assicurarsi, nelle preferenze, che il protocollo SSH sia abilitato
- Configurare la connessione WiFi cliccando sul simbolo in alto a destra e immettendo le credenziali della propria rete
- Doppio click sull’icona “Start dev terminal” presente sul desktop e digitare sudo leafpad /boot/config.txt
- Dal file, rimuovere # dalla stringa dtparam=audio=on e inserirlo all’inizio delle due righe successive
- Salvare il tutto e uscire
- Collegare speaker e microfono (o webcam) alla Raspberry Pi 3
- Doppio click sull’icona “Start dev terminal” presente sul desktop e digitare sudo leafpad /etc/asound.conf
- Cancellare tutto il codice e sostituirlo con il seguente
pcm.!default { type asym capture.pcm "mic" playback.pcm "speaker" } pcm.mic { type plug slave { pcm "hw:1,0" } } pcm.speaker { type plug slave { pcm "hw:0,0" } }
- Salvare e uscire
- Riavviare la scheda
- Doppio click sull’icona “Start dev terminal” presente sul desktop e digitare leafpad /home/pi/voice-recognizer-raspi/checkpoints/check_audio.py
- Modificare la stringa VOICEHAT_ID = ‘googlevoicehat’ in VOICEHAT_ID = ‘bcm2835’ e salvare il file
- Doppio click sull’icona “Check audio” presente sul desktop e seguire le istruzioni a video per la verifica della corretta configurazione
Creare un nuovo progetto nella Cloud Console
Queste sono le istruzioni da effettuare all’interno della Raspberry Pi 3. Per far sì che Google Assistant sia supportato, però, è necessario che la scheda funzioni con i server di Google. Per fare ciò, basta recarsi, sempre mediante la scheda, sulla Cloud Console e:
- Creare un nuovo progetto
- Nella Cloud Console, abilitare le Google Assistant API
- Nella Cloud Console, recarsi in API Manager e poi Credentials e creare un client OAuth 2.0
- Sul client appena creato, configurare delle nuove credenziali impostando il nome dell’app (quello che volete)
- Scaricare tutte le credenziali (c’e un’icona apposita sulla destra)
- Dalla lista, trovare il file client_secrets_XXXX.json e rinominarlo assistant.json
- Spostare il file assistant.json in home/pi/assistant.json
- Doppio click sull’icona “Start dev terminal” presente sul desktop e digitare systemctl stop voice-recognizer
- Recarsi sull’attività di controllo e attivare le seguenti funzionalità: Web and app activity, Location history, Device information, Voice and audio activity
Collegare il tasto a molla alla Raspberry Pi 3
A questo punto bisognerà collegare il tasto a molla che servirà da interruttore di avvio alla conversazione. Esso deve essere collegato da un lato al PIN GPIO 23 e dall’altro al PIN accanto (come mostrato in foto).
A questo punto tutto è pronto per l’utilizzo. Il primo test lo si può fare digitando da terminale la stringa src/main.py e incominciando a chiedere le cose più disparate (in lingua inglese). La prima volta vi si aprirà la finestra del browser dove dovrete accedere all’account Google e fornire i permessi alla Raspberry Pi 3 di accedere alle Google Assistant API.