🗣 Hey Yolca - “Wake Word”, własne wyrażenie włączające mikrofon

:speaking_head: 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

  1. 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

  2. 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

  3. Potrzebny będzie głośnik USB, my zastosowaliśmy głośniki USB Creative
    image

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:

  1. Piper

  2. Whisper

  3. openWakeWord

  4. Samba share

  5. VLC

  6. 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 :slight_smile: 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 openwakewordi 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 :slight_smile: czyli sukces :tada:


Gotowy obraz do PRO1, z zainstalowanymi i skonfigurowanymi wszystkimi dodatkami opisanymi w tym wpisie, dostępny jest tu:

6 polubień

Sprawdzałeś może do jakiej odległości łapie ten mikrofon? Przy moim mems INMP441 jest to jakieś 2m max (bez podnoszenia głosu :grin: ). O ile wake word rozpoznawalny jest nawet z większej odległości to STT już nie jest rozumiany.