Muntant el nostre altaveu intel·ligent Google HOME en una Raspberry Pi

A la fi s'allibera el SDK del Google Assistant per poder fer servir Google Home en Castellà (o Español) entre altres nous idiomes! Així que ara és possible muntar el nostre propi Google Assistant en una Raspberry Pi, en pocs minuts, amb un micròfon i un altaveu, tindràs una Raspberry Pi llista per atendre les teves peticions!

 

 

 

Ideal per posar-la al saló o qualsevol lloc amagada, amb un bon micròfon omnidireccional, podrem fer-li consultes en el nostre propi idioma i ens les esquivarà correctament 😉 Per recordar a part de l'Espanyol, també suporta Anglès, Alemany, Francès, Italià i Japonès. El bo és que Google ho té súper ben documentat, pots seguir els seus passos o aquests més resumits per tenir-ho tot llest!

 

Usarem una Raspberry Pi amb Raspbian instal·lat i actualitzat, el primer serà verificar que l'àudio ens funciona bé, tant el del micròfon com els altaveus per on volem treure el so. Amb el següent comandament, primer veurem els dispositius de gravació d'àudio i després els de gravació:

[sourcecode]arecord -l
aplay -l[/sourcecode]

 

Editem el nostre fitxer de configuració d'àudio '~/.asoundrc’ i especifiquem el micròfon que estem fent servir, en aquest cas un USB específic, però també podríem fer servir el micro d'una webcam, així com l'àudio que me'l tregui per la:

[sourcecode]pcm.!default {
type asym
playback.pcm {
type plug
slave.pcm "hw:0,0"
}
capture.pcm {
type plug
slave.pcm "hw:1,0"
}
}[/sourcecode]

 

Si volem fer una prova de so per veure si escoltem alguna cosa…:

[sourcecode]speaker-test -t wav[/sourcecode]

 

Millor encara, gravar un exemple de com se'ns escolta pel micròfon:

[sourcecode]arecord –format = S16_LE –duration = 5 –rate = 16000 –file-type = raw out.raw[/sourcecode]

 

Per escoltar-lo a veure què tal se'ns escolta, executarem:

[sourcecode]aplay –format = S16_LE –rate = 16000 out.raw[/sourcecode]

 

Ara ja podrem anar a la consola de les Accions de Google, en https://console.actions.google.com, haurem d'aconseguir-nos amb un compte de Google i crear un nou projecte de Google Cloud Platform, per a això posem en “Add/Import project”. Amb l'API de Google Assistant instal·lada a la nostra Raspberry accedirem per realitzar consultes i el projecte ens mostrarà les dades sobre els consums.

 

Hem d'indicar el nom del Projecte i si volem canviar l'idioma per a les Accions o seleccionar el nostre País, és el moment,

 

Hem d'habilitar l'API de Google Assistant API, des de https://console.developers.google.com/apis/api/embeddedassistant.googleapis.com/overview seleccionem del combo el nostre projecte i posem en “Habilitar”,

 

Ara ja podríem anar a registrar el nostre dispositiu! Anem de nou a la Consola, en https://console.actions.google.com/
Anar a “Device registration” > “Register Model” i ho creiem!

 

Haurem de posar-li un nom o 'Product Name’ (que anotarem), un nom del fabricant o 'Manufacter Name’ i seleccionem si volem algun tipus de dispositiu, si no ho tenim clar ho deixem a 'Auto', posem en “Register Model”,

 

Ara, haurem de descarregar-nos el fitxer amb els credencials d'accés al servei de Google Assitant, posem en “Download OAuth 2.0 credentials” i els guardem per aquí,

 

Els copiam a la Raspberry Pi per exemple amb WinSCP o similar al path /home/pi,

 

Tornem a l'assistent i posem en “Skip”,

 

Gravem el dispositiu que acabem de registrar, polsant en “SAVE”,

 

Bé, ara a la Raspberry Pi configurarem l'entorn virtual de Python per aïllar el SDK i les seves dependències dels paquets Python del sistema, ens triem l'opció de Python 3:

[sourcecode]sudo apt-get install python-dev python-virtualenv
virtualenv env –no-site-packages
env/bin/python -m pip install –upgrade pip setuptools wheel
source env/bin/activate[/sourcecode]

 

Instal·lem les dependències necessàries a més de Google Assistant SDK que ens permetrà tenir Google Assistant corrent a la Raspberry Pi:

[sourcecode]sudo apt-get install portaudio19-dev libffi-dev libssl-dev libmpg123-dev[/sourcecode]

 

Mitjançant pip instal·lem l'última versió de Python a l'entorn virtual:

[sourcecode]python -m pip install –upgrade google-assistant-sdk[samples][/sourcecode]

 

Instal·lem o actualitzem l'eina d'autorització:

[sourcecode]python -m pip install –upgrade google-auth-oauthlib[tool][/sourcecode]

 

Ara generem els credencials per executar els exemples, farem servir el fitxer JSON que ens hem descarregat prèviament:

[sourcecode]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/client_secret_xxxx.apps.googleusercontent.com.json[/sourcecode]

 

Si tot és correcte, ens posarà alguna cosa com:

[sourcecode]"Please visit this URL to authorize this application: https://…"[/sourcecode]

Còpiem la URL i hi anem amb un navegador (que estigui lloat amb el nostre compte de Google), després de permetre-ho ens donarà un codi d'autenticació que hem de pegar a la shell.

 

I ara, ja estem llestos per provar un exemple! En el mateix entorn virtual, executem el següent comandament indicant el nostre ID de Projecte i el nostre ID de model, que si no els heu anat anotant, els trobareu a la Consola d'Actions de Google buscant en les opcions generals del projecte i del dispositiu. Si aquesta tot OK executem el següent comandament i quedarà llest perquè parlem amb l'Assistant, és moment de provar:

[sourcecode]googlesamples-assistant-hotword –project_id'entrada-txarlatana –device_model_id entrada-txarlatana-entrada-xxxx[/sourcecode]

 

Per cert, per canviar l'idioma del nostre Assistent, ho farem directament amb el nostre telèfon mòbil, amb l'app de l'Assistant que suposo la tindreu instal·lada (i si no us la instal·leu :P, l'obrís, posem amunt a la brúixola, i a la següent pantalla a Explorar hem d'anar a “Ajustaments”,

 

En Ajustos hem de buscar en Dispositius el dispositiu que hem registrat abans, el seleccionem, i aquí ja li podrem donar accés a més dades nostres als senyors de Google o seleccionar l'idioma que volem per interactuar amb l'Assistant!

 

Així que llest! Tenim el servei muntat sota una Raspberry Pi, si tornem a executar l'exemple anterior estarà l'Assistent en el nostre idioma, haurem de constantment polsar Enter o dir 'OK, Google’ independentment dels exemples que tenim per interactuar. Com en el meu cas no m'interessa que el micròfon estigui sempre escoltant i així també evitar la necessitat de dir 'OK Google’ tota l'estona, doncs mitjançant una solució cutrecilla he aconseguit esquivar-lo. He creat un scriptcillo per iniciar l'Assistant i un altre per aturar-lo, us ho deixo per si de casualitat a algú li és d'utilitat 🙂

 

google_assistant_para.sh

[sourcecode]cd /home/pi/
source env/bin/activate
nc -l 12345 | /home/pi/env/bin/python3 /home/pi/env/bin/googlesamples-assistant-pushtotalk –project-id txarlatana –device-model-id txarlatana-pitxarlatana-xxxx &[/sourcecode]

 

google_assistant_para.sh

[sourcecode]pkill python3
pkill google
pkill nc[/sourcecode]

Posts recomanats

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, no dubtis a contactar amb mi, us intentareu ajudar sempre que pugui, compartir és viure ;) . Gaudir dels documents!!!

Personalitzant el tema de Nextcloud

20 de September de 2018