@Hhjung16
Moin,
mittlerweile bin ich deutlich weiter. Status:
- Rhasspy (neueste Version 2.4.16) läuft auf Raspberry PI3 mit Buster im Docker mit deutschem Profil und einem Matrix Voice als Mikrofon
- die gesamte Installation lief problemlos, Konfiguration von Rhasspy zunächst so wie standardmäßig vorgesehen
- wichtig: Mikro und Ausgabe richtig konfigurieren
- Übergabe an ioBroker über MQTT. Auf ioBroker muss hierzu ein MQTT-Adapter als Server eingerichtet werden (ohne User). In Rhasspy die Konfiguration für MQTT entsprechend anpassen und die IP des MQTT-Servers eintragen
- Trainieren von Rhasspy: Hier muss man sich von vorne herein eine saubere Arbeitsweise angewöhnen
- Im Reiter "Words" die Worte für die Devices/Slots (zB Esszimmerlampe) anlegen und die Aussprache (Pronounciation) testen und ggf anpassen. Die Ausgabe muss auf "Word" nicht auf "Phonemes" stehen. Wort übernehmen und speichern. Achtung: Zwischen dem neuen Eintrag und der bisherigen Wortliste darf sich keine Leerzeile befinden.
- Im Reiter "Slots" für genau diese angelegten Worte die Slots anlegen. Ich habe zB im Slot "lights" hinter der Esszimmelampe den Datenpunkt von ioBroker eingetragen (hm-rpc.0.ABC1234567.1.STATE) eingetragen. Ob dies so richtig und überhaupt relevant ist, weiß ich noch nicht. Auf die weitere Funktion hat es jedoch bislang keinen Einfluss.
Speichern nicht vergessen! - Im Reiter "Sentences" kann nun die Datei sentences.ini editiert werden. Es gibt dort unter [ChangeLightState] bereits ein Template für Sätze zum Schalten von Lampe. Unter "light_name" müssen vollständig alle Worte/Devices, die angelegt wurden, aufgeführt werden. Fehlt eines, funktioniert für dies fehlende Device die Sprachsteuerung nicht.
Speichern nicht vergessen! - Nun kann Rhasspy durch Betätigen des grünen Knopfes "Train" trainiert werden. Je nach Umfang der Konfiguration kann das N x 10 sec. dauern. "Train" kann man auch ruhig jeweils nach Schritt 1 bis 3 ausführen, so dass immer nur die Differenz aktualisiert wird.
- Testen: Im Reiter "Speech" kann die Konfiguration nun getestet werden. Hierzu den blauen Button "Hold to Record" betätigen, ein konfiguriertes Kommando sprechen (zB schalte die Esszimmerlampe ein) und loslassen. (Der gelbe Wake-Button braucht hierzu zuvor nicht betätigt zu werden Auch braucht das Wake-Word "Okay Rhasspy" nicht gesprochen zu werden). Ist alles korrekt, sieht man anschließend die vollständige Raw Intent JSON. Bei unvollständiger Konfiguration erscheint hier nur Unsinniges.
Wenn das bis hierher alles klappt, kann man nun mit Mikro und Lautsprecher testen. Hierzu vor Eingabe des Sprachkommandos einfach den gelben Wake-Button betätigen und unmittelbar nach dem hellen Quittungston das vollständige Sprachkommando mit Wake-Word eingeben. Ist alles OK, hört man einen etwas niedrigeren Quittungston, its etwas falsch einen tiefen Quittungston.
Soweit Rhasspy. Nun zurück zu ioBroker. Sofern der MQTT-Adapter während der Testerei bereits lief, wurde unter den Objekten unter mqtt.0 das Verzeichnis rhasspy, darunter das Verzeichnis intent und dort die intents selbst (zB ChangeLightState) angelegt. Am besten nun in zwei Fenstern arbeiten und in dem einen (Rhasspy) erneut ein Sprachkommando mit Wake-Word eingeben. In dem anderen (ioBroker) die Ausgabe des Objekts "ChangeLightState" beobachten. Dies müsste sich in Abhängigkeit von dem eingegebenen Sprachkommando jeweils ändern.
Der weiteren Verarbeitung dieses Objektes mit ioBroker steht also nun nichts mehr im Wege. Ich selbst habe mir hierzu den node-red Adapter installiert und einen kleinen Flow zum Testen angelegt. Die Übernahme der daten aus dem Objekt "ChangeLightState" kann man mit dem Eingabe-Node "ioBroker in" vornehmen. Erste per Sprachkommando eingegebene Schaltbefehle habe ich bereits bis zu einer Lampe durchgebracht. Die Lampe kehrt jedoch nach einem Sekundenbruchteil wieder in den Aus-Zustand zurück. Hier weiß ich noch nicht, woran das liegen könnte. Vielleicht hat ja jemand eine Idee? Vielleicht Rechte zwischen Rhasspy und ioBroker?
Fazit: Einfache und bislang zuverlässige Installation, relativ aufwändige Konfiguration, die aber beherrschbar ist, wenn man sich an das von mir vorgeschlagene Vorgehen hält. Gute Spracherkennung mit dem Matrix Voice Mikro. Für jeden, der wirklich vollständig autonom bleiben will, also eine wirklich gute Lösung - auch als Ersatz für das abgemeldete Snips. Vielleicht kann sich ja jemand aus der Snips-Gruppe dem Thema mal zuwenden und seine Erfahrung mit einfließen lassen.
Und sonst: Wer Details wissen möchte, kann auf mich zukommen.
Gruß in die Runde