In questa guida vediamo come realizzare un Google Home con Raspberry Pi 3 o RPi 3 B+ (non compatibile con modelli inferiori).

Ci serve un Raspberry Pi 3 o RPi 3 B+: https://amzn.to/2WSeYtWhttps://amzn.to/2WSybLI

Una Cassa: https://amzn.to/2Kd7U9C

Un Microfono: https://amzn.to/2KfdLLO

Adesso installate Raspbian e installatelo.

Come prima cosa diamo i comandi “sudo apt-get update” e “sudo apt-get upgrade” e  finito prepariamo il comparto audio e microfono:

  1.  Usiamo questi comandi per vedere il numero dei dispositivi audio e microfono: [php light=”true”] arecord -l
    aplay -l
    [/php]
  2. Adesso con questo comandi nella cartella principale creiamo il per la configurazione: [php light=”true”] sudo nano /home/pi/.asoundrc
    [/php]
  3. nel file inseriamo questa configurazione:Salviamo con Ctrl+c e poi si
    pcm.!default {
      type asym
      capture.pcm "mic"
      playback.pcm "speaker"
    }
    pcm.mic {
      type plug
      slave {
        pcm "hw:<card number>,<device number>"
      }
    }
    pcm.speaker {
      type plug
      slave {
        pcm "hw:<card number>,<device number>"
      }
    }

Adesso configuriamo il progetto Google per far funzionare l’assistente:

  1. Andiamo a questo indirizzo e creiamo come in foto il progetto https://console.actions.google.com
  2. Andate in questa pagina e proseguite con le foto: https://console.developers.google.com/apis/library/embeddedassistant.googleapis.com
  3. Andate qui https://console.developers.google.com, andate nella pagina credenziali e poi schermata consenso OAuth qui dove lo chiede inserite la mail tramite il menù a tendina (serve perchè se no da problemi)

Finito questo creiamo la cartella googleassistant con questo comando sudo mkdir ~/googleassistant e dentro copiamo il file json che avete scaricato e rinominatelo credentials.json

Adesso installiamo e configuriamo Google Assistant:

  1. Installiamo python e env
  2. sudo apt-get install python3-dev python3-venv
    
    python3 -m venv env
    env/bin/python -m pip install --upgrade pip setuptools --upgrade
  3.  Entriamo in modalità env con questo comando:
    source env/bin/activate
  4. Stando in modalità env installiamo le librerie Google Assistant:
    sudo apt-get install portaudio19-dev libffi-dev libssl-dev libmpg123-dev
    python -m pip install --upgrade google-assistant-library==1.0.1
    python -m pip install --upgrade google-assistant-sdk[samples]==0.5.1
    python -m pip install --upgrade google-auth-oauthlib[tool]
  5. Adesso diamo il comando per dare l’autenticazione alle librerie:
    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

    quando  chiede accedi alla pagina con l’URL che ti da e copia il codice nella parte dove lo chiede

  6. Diamo questo comando che serve per togliere delle protezioni al browser che bloccano la procedura
    chromium-browser --disable-web-security --user-data-dir "/home/pi/"
  7. Adesso per provare se funziona diamo questo comando
    googlesamples-assistant-pushtotalk --project-id <projectid> --device-model-id <deviceid> --display

    <projectid> e <deviceid> sostituiteli con i vostri

  8. Uscite dalla shell e rientrate
  9. Entrate di nuovo in env
    source env/bin/activate
  10. Poi provate questo comando che vi permette di provare la chiave “Ok, google”
    googlesamples-assistant-pushtotalk

Adesso creiamo il servizio per avviare google assistant:

  1. Creiamo questo lo script sh con il comando
    sudo nano /home/pi/start_assistant.sh
  2. Inseriamo questo codice nel file
    #!/bin/bash
    
    source /home/pi/env/bin/activate
    googlesamples-assistant-hotword --device-model-id abcd

    al posto di abcd mettete il device model id

  3. Creiamo il file del servizio
    sudo nano /lib/systemd/system/assistant.service
  4. Inseriamo questo codice
    [Unit]
    Description=Google Assistant
    Wants=network-online.target
    After=network-online.target
    
    [Service]
    Type=simple
    ExecStart=/bin/bash /home/pi/start_assistant.sh
    Restart=on-abort
    User=pi
    Group=pi
    
    [Install]
    WantedBy=multi-user.target

    salviamo con Ctrl+x e si

  5. Abilitiamo il servizio
    sudo systemctl enable assistant.service
  6. Faciamo partire il servizio
    sudo systemctl start assistant.service
  7. Così vediamo lo stato
    sudo systemctl status assistant.service

Adesso vediamo come coem far partire in automatico il servizio in automatico:

  1. Portiamoci a questa cartella  cd /etc/xdg/lxsession/LXDE-pi
  2. Creiamo il file con sudo nano autostart se già non c’è
  3. Inseriamo il seguente codice se il file lo dobbiamo creare [php light=”true”] @lxpanel –proflie LXDE-pi
    @pcmanfm –desktop –profile LXDE-pi
    @xscreensaver -no-splash
    @point-rpi
    /home/pi/start_assistant.sh
    [/php]
  4. invece se il file c’è già inseriamo solo /home/pi/start_assistant.sh infondo al file
  5. salviamo e riavviamo

Adesso avete un google home a tutto tondo!!!!

Se non si sente l’audio basta dirglio dopo “Ok, google”, “alza il volume al 100%”!!!!