Własne wyrażenie włączające mikrofon “Wake Word”
Home Assistant udostępnił bardzo fajną funkcjonalność - można stworzyć własne słowo aktywujące nagrywanie komendy mikrofonem. W tym wpisie pokażę jak to zrobić.
Wymagania
-
Home Assstant Supervised. Trzeba uruchomić bramkę z systemem Linux (z USB lub SD karty) tak jak to opisaliśmy tu:
🎉 Home Assistant Supervised na DEV1 DEV2 i DEV-BT -
Potrzebny będzie mikrofon USB, my zastosowaliśmy kamerę PS3 EYE , można kupić tu za 29 zł:
https://allegro.pl/oferta/ps3-eye-kamera-13980595043
-
Potrzebny będzie głośnik USB, my zastosowaliśmy głośniki USB Creative
Podłączenie urządzeń do bramki
Podłączamy mikrofon (kamerę) do USB w bramce to samo robimy z głośnikami, logujemy się do bramki po ssh i sprawdzamy czy nasze urządzenia zostały poprawnie wykryte:
ssh root@<ip-bramki>
lsusb
Instalacja dodatków w HA
Instalujemy i uruchamiamy następujące dodatki:
-
Piper
-
Whisper
-
openWakeWord
-
Samba share
-
VLC
-
Assist Microphone
Żeby zainstalować ten dodatek musimy dodać repozytorium:
https://github.com/rhasspy/hassio-addons
a następnie dodajemy dodatek:
Trenowanie słowa aktywującego
Przechodzimy na stronę:
Wpisujemy swoje słowa aktywujące mikrofon, obsługiwany jest tylko język angielski więc trzeba wpisać tak słowo żeby czytane po angielsku brzmiało w sposób w jaki chcemy je wypowiadać po polsku Np. Hej Jolka piszemy Hey Yolca
następnie przechodzimy kolejne kroki w celu wytrenowania wyrażenia aktywującego.
Na koniec pobieramy nasze wyrażenie w formacie hey_yolca.tflite
Ustawienie wyrażenia aktywującego w HA
Na swoim komputerze uzyskaj dostęp do serwera Home Assistant za pośrednictwem Samby i przejdz do folderu share
:
w folderze share
utwórz folder openwakeword
i skopiuj do niego wytrenowaną sentencję:
W aplikacji Home Assistant, przechodzimy do Ustawień → Integracji i zatwierdzamy wykryte integracje:
Piper
Whisper
openWakeWord
po ich dodaniu zostaną one zgrupowane w Wyoming Protocol:
dodajemy też integracje VLC
Przechodzimy do Ustawień → Asystenci głosowi:
i edytujemy domyślnego asystenta
Dodanie automatyzacji
Dodajemy automatyzację wyzwalaną sentencją “Która godzina”
akcja automatyzacji to powiedzenie godziny
alias: Jolka która godzina
description: ""
trigger:
- platform: conversation
command:
- która godzina
- godzina
- jaki mamy czas
condition: []
action:
- service: tts.speak
data:
cache: true
media_player_entity_id: media_player.vlc_telnet
message: Jest {{ states.sensor.time.state }}
target:
entity_id: tts.piper
mode: single
Test
Test wyrażenia aktywującego:
Wyrażenie aktywujące działa za każdym razem czyli sukces
Gotowy obraz do PRO1, z zainstalowanymi i skonfigurowanymi wszystkimi dodatkami opisanymi w tym wpisie, dostępny jest tu: