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.
Świetny blog i poradnik :)
OdpowiedzUsuń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ńTen komentarz został usunięty przez autora.
OdpowiedzUsuń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ń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ńnie działa. Assitant przez SDK jescze nie po naszemu
Usuńcześć, mam problem z instalacją GH na malince :(
OdpowiedzUsuń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?
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ń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ńjakby można było jeszcze zmienić głos na HAL 9000 ? ;)
OdpowiedzUsuńJak wpisuję: sudo chmod +x /home/pi/GassistPi/scripts/gassist-installer-pi3.sh
OdpowiedzUsuńsudo /home/pi/GassistPi/scripts/gassist-installer-pi3.sh
To piszę że: Nie ma takiego pliku ani katalogu
Co robić?
wylistuj pliki w /home/pi/GassistPi/scripts/ u mnie byl plik bez "-pi3" trzeba było to skasowac
Usuńmam problem po całej konfiguracji i uruchomieniu testów mam komunikat:
OdpowiedzUsuń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
Poczytaj na stronie GassistPi, może od czasu tego opisu coś się zmieniło https://github.com/shivasiddharth/GassistPi
UsuńWitam mam problem trochę odkopałem ale mam nadzieje że mi ktoś pomoże .
OdpowiedzUsuń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
Jaki to dokładnie adres strony?
Usuń403. That's an error
UsuńOAuth2 Error
Musisz nadać uprawnienia do tej akcji na stronie console.developers.google.com w zakładce ekran akceptacji oAuth.
Usuń