Start a new topic

Gate HTTP + raspberry Pi = sterowanie głosowe i trendy z czujników

Witam,


piszę tutaj, bo żona nie do końca to rozumie, a dzieci też za małe żeby to ogarnąć :). Dzisiaj udało mi się uruchomić sterowanie głosowe Grentonem oraz serwer, na którym mogę podejrzeć odczyty z różnych czujników (1wire, modbus, analog in).


Potrzebny sprzęt:

- moduł Gate HTTP,

- raspberry PI 3B,

- macierz mikrofonowa ReSpeaker (http://wiki.seeedstudio.com/ReSpeaker_Mic_Array_v2.0/) + obudowa ReSpeaker,

- głośniki komputerowe.


Instalacja:

Malina i głośniki ukryte w suficie podwieszanym, mikrofon w salonie pod sufitem.


Jak to działa:

Wszystko jest zainstalowane na raspberry pi, który przesyła zapytania / żądania do Gate HTTP. W Gate HTTP są zaprogramowane skrypty, które obsługują zapytania / żądania.


1. Sterowanie głosowe

Do detekcji słowa kluczowego (hotword detection) wykorzystuję silnik porcupine (https://github.com/Picovoice/Porcupine), po wykryciu słowa kluczowego (bumblebee - niestety ilość hotwordów jest dość ograniczona, ale działa to lepiej niż Snowboy), nagrywane są 3 sekundy i przesyłane na chmurę Google Cloud (https://cloud.google.com/sdk/), dokładniej do silnika zamiany mowę na tekst (obsługa języka polskiego, https://cloud.google.com/speech-to-text/). Nie ma sensu korzystać z google STT do wykrywania słów kluczowych, bo jest to płatne i ma trochę opóźnienia w przetwarzaniu. Porcupine może działać offline i nie obciąża procesorów maliny. Po odebraniu przetworzonej mowy, w łańcuchu znaków wyszukuję słów kluczowych, np. akcja = zapal / włącz / opuść, zasłoń, podnieś itp, urządzenie = światło, rolety itd, pokój = salon / kuchnia itp. W zależności od wykrytych słów kluczowych, do Gate HTTP jest wysyłanie odpowiednie żądanie (parametry żądania), które steruje odpowiednim urządzeniem Grentona (relay, roller itd).

Dodatkowo, wykorzystuję silnik google zamiany teksu na mowę (obsługuje język polski, https://cloud.google.com/text-to-speech/), który np czyta wartość temperatury z danego pomieszczenia, czy np prognozę pogody na dziś (np. z openweathermap).

Uruchomienie tego zajęło mi tydzień wieczorów (w zależności od tego, jak dzieci szły spać), ale nie jest to żaden rocket science (w Internecie można znaleźć informacje, jak to wszystko zainstalować na malinie). Zaczynam teraz optymalizację mikrofonu i kodu na malinie, ale już teraz czułość wykrywania słów kluczowych jest zadowalająca (nawet przy włączonym telewizorze).


Dodatkowo, jest też możliwość integracji z asystentem google (https://developers.google.com/assistant/sdk/), ale biblioteki nie obsługują jeszcze języka polskiego.


2. Trendy z czujników

Do tego również wykorzystuję mailnę, która odpytuje Gate HTTP co 20 minut o stan wszystkich czujników. Dane te są zapisywane w bazie danych influxdb (https://www.influxdata.com/). Na raspberry jest zainstalowany i uruchomiony serwer Grafana (https://grafana.com/), który pobiera dane z bazy influxdb i wyświetla w przyjazny sposób.


Koszty

Poza zakupem sprzętu, korzystanie z chmury google jest płatne i wynosi w przypadku STT $0.006 / 15 sekund po przekroczeniu bezpłatnych 60 minut miesięcznie (zapytanie 3 sekundowe jest zaokrąglane do 15 sekund) oraz TTS $4.00 USD / 1 milion przeczytanych znaków po przekroczeniu 4 milionów bezpłatnych znaków miesięcznie. Jak widać koszty nie są duże, a możliwości integracji jest pewnie więcej niż przez samo google home, i nie trzeba co chwila mówić hey / ok google. Grafana i influxdb jest bezpłatne do użytku domowego.


Przesyłam zrzut ekranu z działania Grafany.


image



Pozdrawiam


Super rozwiązanie. Jak będę miał czas to spróbuję u siebie. Na razie czekam na asystenta googla po polsku i wtedy na poważnie podejdę do tematu.  

Co do czujników też mam grafanę, fajne narządko, u mnie tylko ta drobna różnica, że gate wypycha dane do bazy.


Co do sterowania głosowego właśnie wczoraj kupiłem asystenta google, i podłączyłem to oczywiście też z wykorzystaniem GATE, pośredniego serwera i Google'wego Dialog flow i Actions tylko wlasnie tu mam pytanie. Czy ktoś ma to jeszcze tak zintegrowane? Moja wątpliwości dotyczy Google Actions, bo mam wrażenie że jako domowy, prywatny użytkownik mogę korzystać tylko "z trybu testowego", na szybko nie znalazłem opcji jakiegoś prywatnego opublikowania Google Actions do własnych celów. Może ktoś już to rozczajał...

Login or Signup to post a comment