FHEM > Sprachsteuerung

[läuft soweit] - Rhasspy ohne Zusatzhardware

(1/12) > >>

Beta-User:
Hallo zusammen,

Rhasspy bietet vom Ansatz her eine Sprachsteuerung ohne Cloudanbindung - finde ich super.
Die Standard-Anleitung dazu beginnt aber mit: Man nehme einen Raspberry und ein Aufsatzmodul dazu oder schließe Mikro+Lautsprecher an - paßt nicht zu meinen Vorstellungen und Gegebenheiten, mal abgesehen davon, dass es zunächst ja mal ums Kennenlernen und Testen ging...

JensS hat dankenswerter Weise darauf hingewiesen, dass es auch eine App für Androiden gibt, die man als Interface einsetzen kann: https://github.com/razzo04/rhasspy-mobile-app.
Soweit so gut - das Problem ist dann "nur", dass man als noob in dem Thema dann erst mal praktisch keine Info hat, welche Einstellungen dann unter Rhasspy und der App vorzunehmen sind, damit das ganze funktioniert.

Habe daher etwas geraten und rumgespielt, und am Ende hat mir mein Handy dann die Zeit angesagt - "hello world" war geschafft...
Also falls jemand das  interessiert,  hier die Zusammenfassung:

Vorbereitung:
- Installation via deb-Paket auf einer sowieso laufenden x86_64-Ubuntu-Maschine. Ich war unsicher, ob das ganze Zugriff auf Soundhardware braucht und/oder große Systemlast erzeugt. Beides ist/scheint nicht der Fall zu sein. Vermutlich werde ich das ganze am Ende dann direkt auf den (x86_64)-FHEM-Server umziehen. (Für den Pi  gibt es auch ein docker-Image). Da die Audiodaten via MQTT ausgetauscht werden ( >:( ), läuft jetzt noch ein mosquitto auf der Ubuntu-Maschine, vermutlich werde ich das dann bei einem Umzug auch so machen (aber auf einem anderen Port, damit es nicht mit dem für "normale Zwecke" reservierten MQTT2_SERVER kollidiert).
- Da rhasspy als normales deb-Paket installiert wurde, wird das Progrämmchen nicht automatisch gestartet, bis auf weiteres habe ich einfach in der user-Sphäre einen autostart angelegt: "rhasspy --profile de".
- In FHEM unsere aktuelle (0.4.4-) Version von hier, angebunden über einen MQTT2_CLIENT mit "subscriptions setByTheProgram". (siehe cref zu M2C)
- Auf dem Andorid-Handy die o.g. App.

Einstellungen:
- Rhasspy (zu erreichen über ein Web-Interface auf Port 12101 - hier das json aus dem backup):

--- Code: ---{
    "dialogue": {
        "satellite_site_ids": "mobile1",
        "system": "rhasspy"
    },
    "intent": {
        "satellite_site_ids": "mobile1",
        "system": "fsticuffs"
    },
    "microphone": {
        "system": "hermes"
    },
    "mqtt": {
        "enabled": "true",
        "site_id": "wohnzimmer"
    },
    "sounds": {
        "system": "hermes"
    },
    "speech_to_text": {
        "satellite_site_ids": "mobile1",
        "system": "kaldi"
    },
    "text_to_speech": {
        "satellite_site_ids": "mobile1",
        "system": "espeak"
    },
    "wake": {
        "system": "hermes"
    }
}
--- Ende Code ---

App:
- IP => die von der Ubuntu-Maschine
- kein SSL
- enable MQTT (an)
- host / port: IP von der Ubuntu-Maschine, Port vorerst auf 1883
- Username+Passwort (gesetzt, aber nicht in mosquitto)
- Siteid: "mobile1" (wie oben in den Rhasspy-Einstellungen!)
- Wake word (an)

Wie gesagt: Das reichte, um eine Antwort auf die Frage nach der Uhrzeit von FHEM zu erhalten, alles noch nicht schön und etwas verwirrend, aber ein Anfang.

Die weiteren Schritte werden jetzt sein, diverse Einstellungen in FHEM vorzunehmen und ggf. auch das eine oder andere auf der Rhasspy-Seite auszutesten, aber dazu ggf. ein andermal mehr.

Falls jemand Anregungen und Verbesserungsvorschläge hat: Her damit - die Stimme ist nämlich z.B. bei längeren Sätzchen schon überfordert...

Danke an JensS und drhirn für die Schubser in diese Richtung!  :)

drhirn:
Auf der Base brauchst du keine Audio-Hardware. "Audio Recording", "Wake Word", "Audio Playing" und "Intent Handling" kannst du auf disabled setzen.

Im Screenshot sind die Einstellungen meiner Base und eines Satelliten.

JensS:
Um richtig testen zu können, solltest Du auch die WakeWord-Engine nutzen.

Beta-User:

--- Zitat von: JensS am 19 März 2021, 18:00:24 ---Um richtig testen zu können, solltest Du auch die WakeWord-Engine nutzen.

--- Ende Zitat ---
Danke für den Tipp.
Rückfrage dazu: Bisher habe ich die App so genutzt, dass ich das Gerät in die Hand genommen habe, und dann eben auf den "shortcut" gedrückt habe, den das zur App gehörende widget bereitstellt. Das war erst mal ok.

Wenn jetzt ein Wakeword zum Einsatz kommt: Lauscht das Ding dann immer? Inwieweit geht das auf den Akku?
Ich werd's so oder so mal Testen, welche Engine ist dann die beste Wahl? Wie üblich, das, was mit recommended angemarkert ist, oder doch in der Konstellation was anderes?

Der Vollständigkeit halber hier noch was aus dem anderen Thread, das eigentlich besser hierher gehört - damit es zusammen ist...

systemd-file (ungetestet):

--- Code: ---[Unit]
Description=Rhasspy Service
After=syslog.target network.target

[Service]
Type=simple
ExecStart=/bin/bash -o pipefail -c ‘{ /usr/bin/rhasspy -p de 2>&1 | cat >&2 3>&-; } 3>&1’
WorkingDirectory=/opt/rhasspy
User=rhasspy
Group=audio
RestartSec=1
Restart=on-failure
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rhasspy

[Install]
WantedBy=multi-user.target
--- Ende Code ---

Und ein paar interessante Videos für eventuelle interessierte Mitleser, eine super Einführung zu Rhasspy an sich finde ich ist: https://www.youtube.com/watch?v=IsAlz76PXJQ
Zu den "sentences" das hier: https://www.youtube.com/watch?v=sWVl0ZoXZEo

Und dann gab es da noch was auf Französisch zu Satelliten:
https://www.youtube.com/watch?v=oTYpTYo2re8

JensS:

--- Zitat von: Beta-User am 19 März 2021, 18:14:04 ---Wenn jetzt ein Wakeword zum Einsatz kommt: Lauscht das Ding dann immer? Inwieweit geht das auf den Akku?

Und dann gab es da noch was auf Französisch zu Satelliten:
https://www.youtube.com/watch?v=oTYpTYo2re8

--- Ende Zitat ---
Das Wakeword kann man auch ausstellen. Wenn es an ist, läuft es natürlich immer - ähnlich wie "Hey Google", nur halt ohne Datenverarbeitung Dritter.
Nachteilig dabei ist, dass ein Datenstrom bei Audioerkennung zur WWE fließt, egal ob WW oder sonstige Geräusche. Die Datenrate ist nicht hoch und behindert im AC_Mode auch nicht das WLAN. Wenn WWE und Mikro auf einer Maschine sind, wird das Netzwerk geschont.

Gruß Jens

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln