Sterowanie Suplą za pomocą Google Assistant'a na Raspberry

Post Reply
Neavvy
Posts: 64
Joined: Thu May 11, 2017 8:19 pm

Sun Dec 31, 2017 3:50 pm

Prezentacja działania: https://www.youtube.com/watch?v=Ckmq42eHWvY

Do wykonania będzie potrzebne: Raspberry Pi, głośniki, mikrofon na usb. Można także podłączyć diodę led na pinie 25, aby wizualizować aktualny status asystenta.

1. Zaktualizuj system komendą sudo apt-get update.
2. Skonfiguruj swojego asystenta za pomocą instrukcji (krok 4 jest zbędny, więc możesz go bez obaw ominąć): https://developers.google.com/assistant ... nd-account
3. Skopiuj pobrany plik JSON do katalogu /home/pi na swoim raspberry oraz zmień jego nazwę na assistant.json
4. Otwórz terminal i wykonaj poniższe komendy (ostatnie dwie komendy ustawiają automatyczny start aplikacji asystenta, kiedy Raspberry się włącza):

Code: Select all

git clone -b voicekit https://github.com/google/aiyprojects-raspbian.git ~/voice-recognizer-raspi
cd ~/voice-recognizer-raspi
scripts/install-deps.sh
sudo scripts/install-services.sh
cp src/assistant_library_with_local_commands_demo.py src/main.py
sudo systemctl enable voice-recognizer.service
5. Skonfiguruj mikrofon oraz głośniki za pomocą tej instrukcji: https://developers.google.com/assistant ... mbed/audio
6. Otwórz terminal i wykonaj poniższe komendy:

Code: Select all

cd ~/voice-recognizer-raspi
source env/bin/activate
python3 src/main.py
Powinien pojawić się link, kliknij w niego, aby nadać asystentowi odpowiednie uprawnienia.
7. Możesz teraz wywołać asystenta za pomocą zdania „Ok Google” a następnie powiedzieć coś do niego. Po restarcie raspberry asystent powinien sam się uruchomić.

Własne akcje
1. Do wykonania akcji posłużymy się adresami publicznymi do naszych scen w Supla Scripts (instrukcja do scen: https://www.youtube.com/watch?v=m9JipPYhm6I&t=288s).
2. Otwórz nowe okno terminala i wykonaj komendy

Code: Select all

pip install requests
sudo nano /home/pi/voice-recognizer-raspi/src/main.py
3. Na górze pliku, który otwarliśmy, znajdują się załączone biblioteki (wszystkie nazwy które poprzedza hasło import). Musimy także dodać naszą, w tym celu dopisujemy

Code: Select all

import requests
.
4. Możemy zauważyć, że plik ma już zaimplementowane dwie akcje, są to:

Code: Select all

def power_off_pi():
	aiy.audio.say('Good bye!')
	subprocess.call('sudo shutdown now', shell=True)

def reboot_pi():
	aiy.audio.say('See you in a bit!')
	subprocess.call('sudo reboot', shell=True)
Pod nimi możemy dopisać własne funkcje, które będą naszymi akcjami. W moim przypadku akcja włącza lampkę:

Code: Select all

def light_on():
        on = requests.get('TUTAJ WKLEJ PUBLICZNY URL DO TWOJEJ SCENY Z SUPLA SCRIPTS')
        on.json()
5. Musimy dodać jeszcze hasło, na które nasza scena się wykona. W tym celu znajdź w pliku taki fragment:

Code: Select all

elif event.type == EventType.ON_RECOGNIZING_SPEECH_FINISHED and event.args:
        text = event.args['text']
        print('You said:', text)
        if text == 'power off':
            assistant.stop_conversation()
            power_off_pi()
        elif text == 'reboot':
            assistant.stop_conversation()
            reboot_pi()
Jak widać znajdują się tu wywołania do akcji znajdujących się już wcześniej w pliku. Musimy dopisać pod nimi wywołanie do naszej akcji:

Code: Select all

elif text == 'turn on the lamp':
	assistant.stop_conversation()
	light_on()
Zapisz plik i zrestartuj Raspberry. Teraz nasza scena powinna się wywołać po powiedzeniu "turn on the lamp"

Jak można było zauważyć na filmiku, ja wywołuję mojego asystenta frazą "Supla" jednak z tym jest więcej roboty, więc jak wyrazicie chęć to mogę przygotować do tego osobny poradnik ;)


Źródła:
https://supla.fracz.com/login
https://www.raspberrypi.org/forums/view ... p?t=188958
https://github.com/google/aiyprojects-raspbian
User avatar
maffiu
Posts: 466
Joined: Wed Nov 30, 2016 9:30 pm
Location: Kraków/Skawina

Sun Dec 31, 2017 4:16 pm

Domyślam sie ze nie jest na tyle ogarnięta zeby po naszemu gadać
Neavvy
Posts: 64
Joined: Thu May 11, 2017 8:19 pm

Sun Dec 31, 2017 4:18 pm

Niestety nie, na razie w grę wchodzi tylko angielski
ibs
Posts: 6
Joined: Tue Jan 16, 2018 7:22 am

Tue Nov 20, 2018 5:27 pm

Witam.
Też zrobiłem coś takiego, jak zrobiłeś że do assistant google mówisz supla zamiast ok google?
User avatar
michael
Posts: 918
Joined: Wed Nov 09, 2016 8:00 am
Location: Wojkowice

Wed Nov 21, 2018 6:50 am

ibs wrote:
Tue Nov 20, 2018 5:27 pm
Witam.
Też zrobiłem coś takiego, jak zrobiłeś że do assistant google mówisz supla zamiast ok google?
Tutaj jest szczegółowa dokumentacja jak to zrobić :)

http://docs.kitt.ai/snowboy/
Kabel ucięty na miarę zawsze jest za krótki...
ibs
Posts: 6
Joined: Tue Jan 16, 2018 7:22 am

Wed Nov 21, 2018 8:25 am

Tutaj jest szczegółowa dokumentacja jak to zrobić :)

http://docs.kitt.ai/snowboy/
Wielkie dzięki michael.
Post Reply