poniedziałek, 18 czerwca 2018

Instalacja Google Assistant na Rasberry Pi 3 i Zero

Od moich ostatnich wpisów o Google Assistant na Rasberry Pi upłynęło już trochę czasu.

Dzisiaj opiszę jak zainstalować Google Assistant na Rasberry Pi Zero i Pi 3 na Raspbianie Stretch z dnia 18 kwietnia 2018.

Do budowy będą potrzebne:

1. Rasberry Pi Zero W lub Pi 3 z kartą micro SD
2. Karta dźwiękowa USB
3. Mikrofon z wtykiem mały jack
4. Układ wzmacniacza PAM8403 z małym głośnikiem
5. Wtyk mały jack stereo z przewodem
6. Zasilacz do Rasberry Pi
7. Przejściówka wtyk micro USB - gniazdo USB



Schemat podłączenia.


Wyjścia Rasberry Pi Zero.


Na czas konfiguracji będą jeszcze potrzebne klawiatura, myszka USB, przewód HDMI.

Obraz systemu pobieramy z tej strony -> Link

Po pobraniu rozpakowujemy go i będziemy mieć obraz systemu: 2018-04-18-raspbian-stretch.img

Wgrywamy go na kartę programem Win32 Disk Imager, który jest dostępny pod tym linkiem -> Link

Po uruchomieniu Win32 Disk Imager w Plik obrazu wybieramy pobrany obraz 2018-04-18-raspbian-stretch.img


Klikamy Zapisz.


Wybieramy Yes i rozpocznie się zapis obrazu na kartę SD.


Po zakończeniu zapisu powinien wyświetlić się Zapis pomyślny, klikamy OK i wkładamy kartę SD do Raspberry Pi.

Podłączamy Raspberry Pi do telewizora lub monitora przewodem HDMI, podłączamy myszkę i klawiaturę na USB, kartę dźwiękową USB i na końcu zasilanie.

Uruchomi się Raspbian Stretch.

Pierwszą rzeczą jaką zrobimy, to połączmy się po Wifi z domową siecią.

U góry po prawej stronie znajduje się ikonka połączeń sieciowych, klikamy Turn On Wi-Fi, aby włączyć Wifi w Raspberry Pi.

Powinno wykryć naszą domową sieć Wifi, wpisujemy hasło i powinniśmy mieć połączenie z Wifi.


Możemy ustawić ustawienia regionalne jak język, klawiatura itd... w Raspberry Pi Configuration


Dokonujemy aktualizację systemu, otwieramy terminal.


Wpisujemy:

sudo apt-get update

oraz

sudo apt-get upgrade

restartujemy Raspberry Pi poleceniem:

sudo reboot

Gdy mamy już zaktualizowany system, możemy przystąpić do instalacji Google Assistant.

Jest to opisane po angielsku na stronie -> Link

Najpierw kopiujemy pliki ze strony, która podałem wcześniej, w terminalu wpisujemy:

sudo apt-get install git
git clone https://github.com/shivasiddharth/GassistPi

Ustawiamy odpowiednia kartę dźwiękową, klikamy w ikonkę głośnika u góry po prawej prawym klawiszem myszy i zaznaczamy elementy sterujące dla odtwarzania i nagrywania.


Instalujemy obsługę karty dźwiękowej USB i robimy test:

sudo chmod +x /home/pi/GassistPi/audio-drivers/USB-DAC/scripts/install-usb-dac.sh
sudo /home/pi/GassistPi/audio-drivers/USB-DAC/scripts/install-usb-dac.sh
speaker-test

Jeżeli wszystko przebiegnie dobrze to będziemy słyszeć szum z głośnika.

Teraz otwieramy przeglądarkę internetową, wpisujemy adres www.google.pl i logujemy się do naszego konta google


Następnie wpisujemy adres w przeglądarce:

https://console.actions.google.com/?pli=1



Klikamy Add/import project

Zmieniamy kraj na Polskę, wpisujemy nazwę i klikamy Create project


Wybieramy Device registration


Teraz otwieramy stronę:

https://console.developers.google.com/apis/api/embeddedassistant.googleapis.com/overview

Klikamy Włącz


Teraz otwieramy stronę:

https://myaccount.google.com/activitycontrols

Włączamy wszystkie opcje


Teraz otwieramy:

https://console.actions.google.com/

Wybieramy nasz projekt, przechodzimy do Advanced Options i klikamy Device registration


Klikamy Register Model


Wpisujemy nazwę dowolną i wybieramy rodzaj dowolny.


Teraz klikamy Download.


Klikamy Next i dalej Skip.

Teraz otwieramy terminal i wpisujemy:

scp ~/Downloads/credentials.json pi@raspberry-pi-ip-address:/home/pi/

gdzie: raspberry-pi-ip-address jest adres ip raspberry pi

U mnie będzie to:

scp ~/Downloads/credentials.json pi@192.168.3.14:/home/pi/



Wpisujemy: yes


Następnie wpisujemy hasło do Raspberry Pi


Teraz w terminalu wpisujemy:

Dla Raspberry Pi 3:
sudo chmod +x /home/pi/GassistPi/scripts/gassist-installer-pi3.sh
sudo /home/pi/GassistPi/scripts/gassist-installer-pi3.sh

Dla Raspberry Pi Zero:
sudo chmod +x /home/pi/GassistPi/scripts/gassist-installer-pi-zero.sh
sudo /home/pi/GassistPi/scripts/gassist-installer-pi-zero.sh

Wpisujemy pełną nazwę pliku json i ścieżkę: /home/pi/credentials.json

Dalej nazwę naszego projektu i Id model, jest to widoczne po wybraniu naszego wcześniej utworzonego projektu na stronie:

https://console.actions.google.com/

Klikamy w nasz projekt i w menu po lewej Device registration


Po wybraniu projektu mamy nazwę i Id model


Jak widać u mnie nazwa to Voice i model id: voice-166811-voice-pws8rb


Instalacja trochę potrwa i na końcu instalacji wyświetli się adres strony internetowej https:// , kopiujemy do przegladarki

Wybieramy nasze konto Google i klikamy Zezwól, wyświetli się kod, kopiujemy go do terminala i wciskamy Enter.

Na końcu powinien uruchomić się asystent

U mnie pojawił się błąd i było wymagane skopiowanie danych z Spotify.

Możemy przeprowadzić test działania wpisując w terminalu:

/home/pi/env/bin/python -u /home/pi/GassistPi/src/main.py --device_model_id 'model id"

gdzie w miejsce 'model id' wpisujemy Id model

czyli u mnie to będzie:

/home/pi/env/bin/python -u /home/pi/GassistPi/src/main.py --device_model_id voice-166811-voice-pws8rb

Po pojawieniu się błędu logujemy się na stronie Spotify -> Link

Jeżeli nie mamy konta na Spotify, to zakładamy go.

Po zalogowaniu klikamy CREATE A CLIENT ID , wpisujemy nazwę i wybieramy np. Voice, wybieramy NO, zaznaczamy wszystkie ptaszki i klikamy SUBMIT.

Na stronie będą: Client ID i Client Secret, dane te oraz login kopiujemy do pliku config.yaml w katalogu /home/pi/GassistPi/src

Wpisujemy je w miejsce:

#Spotify credentials. Register for a spotify developer and get the credentials.
Spotify:
client_id: 'ENTER YOUR SPOTIFY CLIENT ID HERE'
client_secret: 'ENTER YOUR SPOTIFY CLIENT SECRET HERE'
username: 'ENTER YOUR SPOTIFY USERNAME HERE'

Po zapisaniu pliku test przebiegł pomyślnie.

Teraz konfigurujemy, aby Assistant uruchamiał się przy starcie.

W terminalu wpisujemy kolejno:

sudo chmod +x /home/pi/GassistPi/scripts/service-installer.sh
sudo /home/pi/GassistPi/scripts/service-installer.sh
sudo systemctl enable gassistpi-ok-google.service
sudo systemctl start gassistpi-ok-google.service

Po restarcie Google Assistant powinien uruchomić się automatycznie.

Działanie pokazano na filmie.



Można jeszcze dodać diody led na piny GPIO 5 i 6, informują one kiedy możemy mówić, a kiedy mówi Google Assistant, widać to na poniższym filmie.


18 komentarzy:

  1. Tak się zastanawiałem, jak zrobić by google załączało przekaźnik głośnika w czasie gdy do mnie przemawia, a tu widzę, że używa gpio 5 i 6 :] więc po problemie :)

    OdpowiedzUsuń
  2. Ten komentarz został usunięty przez autora.

    OdpowiedzUsuń
  3. A da się go już w tym momencie po tych wszystkich konferencjach i po uruchomieniu asystenta na telefonach zmusic do używania języka polskiego?

    OdpowiedzUsuń
    Odpowiedzi
    1. Po wejściu na stronę https://console.actions.google.com/ i wybraniu naszego projektu po prawej stronie jest Modify Languages i jest do wyboru Polski, ale nie testowałem tego

      Usuń
    2. nie działa. Assitant przez SDK jescze nie po naszemu

      Usuń
  4. cześć, mam problem z instalacją GH na malince :(
    po instalacji kopiuje link do przeglądarki i pojawia mi się ekran "Error 401 OAuth2 Error)!!1
    Co za k???? spotkałeś się może z czymś takim?

    OdpowiedzUsuń
    Odpowiedzi
    1. na stronie masz link trzaba wejsc i skonfigurowac zeby dac dostep stronie do nadawania uprawnieni, ja chyba tylko maila podałem i zadziałaó.

      Usuń
  5. jet jakaś modyfikacja lub samemu można zrobic by ziałało to na Raspberry 1 lub 2, czy sprzętowo im coś brakuje?

    OdpowiedzUsuń
  6. jakby można było jeszcze zmienić głos na HAL 9000 ? ;)

    OdpowiedzUsuń
  7. Jak wpisuję: sudo chmod +x /home/pi/GassistPi/scripts/gassist-installer-pi3.sh
    sudo /home/pi/GassistPi/scripts/gassist-installer-pi3.sh
    To piszę że: Nie ma takiego pliku ani katalogu
    Co robić?

    OdpowiedzUsuń
    Odpowiedzi
    1. wylistuj pliki w /home/pi/GassistPi/scripts/ u mnie byl plik bez "-pi3" trzeba było to skasowac

      Usuń
  8. mam problem po całej konfiguracji i uruchomieniu testów mam komunikat:
    WARNING:gmusicapi.Mobileclient1:could not retrieve oauth credentials from ''/home/pi/.local/share/gmusicapi/mobileclient.cred''
    INFO:gmusicapi.Mobileclient1:failed to authenticate
    [025461b0] vlcpulse audio output error: PulseAudio server connection failure: Connection refused
    [0256f658] vlcpulse audio output error: PulseAudio server connection failure: Connection refused
    USB-MIC-JACK

    OdpowiedzUsuń
    Odpowiedzi
    1. Poczytaj na stronie GassistPi, może od czasu tego opisu coś się zmieniło https://github.com/shivasiddharth/GassistPi

      Usuń
  9. Witam mam problem trochę odkopałem ale mam nadzieje że mi ktoś pomoże .
    Zainstalowałem wszystko na malince na końcu instalacji oczywiście link do strony lecz jak do niej przechodzę dostaje error 404 nie znaleziono strony miał może ktoś coś takiego

    OdpowiedzUsuń
    Odpowiedzi
    1. Jaki to dokładnie adres strony?

      Usuń
    2. 403. That's an error
      OAuth2 Error

      Usuń
    3. Musisz nadać uprawnienia do tej akcji na stronie console.developers.google.com w zakładce ekran akceptacji oAuth.

      Usuń