Rhasspy-LED-Service

Begonnen von JensS, 19 Januar 2021, 21:02:30

Vorheriges Thema - Nächstes Thema

JensS

Für meinen Raspberry Zero mit ReSpeaker 2-Mics Pi HAT habe ich einen Service zu Rhasspy geschrieben und möchte dies natürlich auch Euch zur Verfügung stellen.
https://github.com/jens-schiffke/Rhasspy-LED
Nach dem Wakeword wird die mittlere LED grün und anschließend bis zum Ende des Prozesses blau. Anschließend erlischt die LED wieder.
Man kann die Funktion durch einen kurzen Tastendruck auf den Button (de)aktivieren.
Drückt man 3 Sekunden, wird das Mikro aus- bzw. angeschaltet.
Hält man den Button 10 Sekunden gedrückt, leuchtet die LED für 2 Sekunden rot und der RPI wird heruntergefahren. Nach ca. 30 Sekunden kann man ihn dann vom Strom trennen.
Anregungen und Hilfen sind willkommen. Speziell habe ich noch keinen einfachen Weg gefunden, die aktuelle Capture-Lautstärke als Zahl in eine Variable zu bringen.

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

Treibhaus

Hallo Jens,

die Scripte laufen auf einem Raspi-Zero auf dem Rhasspy direct installiert wurde, oder ?
Wie verhält sich das mit einen Docker-System in dessen Rhasspy läuft ?
Funktioniert das auch ?

Gruß Jörg
Signatur:
Odroid -C2 + BSC EnOcean USB 300-TCM310 + HM485
Enocean-Taster-Fensterkontakt,-Bewegungsmelder
HM-Module über 3 Etagen + Garage/Garten
+ 1-wired Temp-Sensoren, S0-Schnittstellen + RHASSPY-Spracherkennung

JensS

#2
Hallo Jörg,

ja, der Rhasspy-LED-Service fragt den MQTT-Server direkt ab. Ggf. müsste der Profilpfad angepasst werden.

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.

Treibhaus

#3
Hallo Jens,

funktioniert super. Vielen Dank.

Das "Rhasspy-LED.py" Script ist auch recht übersichtlich. :)

Eine Frage: Wie bekomme ich den MQTT-Server direkt nach der Wakeword-Erkennung abgefragt ?
Ich würde die LEDs gerne noch eher einschalten.
Wenn ich es korrekt verfolgt habe starten diese mit der Aufzeichnung des anschliessenden Befehls.
(bei mir erst nach dem:  Intend Handling::Wake WAV ... )

Ich hätte es gerne nach dem Wakeword.

Ziel wäre es den StartTon und AufnahmeEndTon abzustellen.

Vielleicht liege ich auch falsch und das System (Rasp3 & Seeed 2Mics) ist nur lahm.

Hast Du eine Idee ? meine Versuche u.a. per hermes/dialogueManager/sessionStarted" hatten keinen Erfolg.

Ein Tip wie ich mir das MQTT-Protokoll anschauen könnte würde mir ggf. auch helfen.
Gruß Jörg
 




Signatur:
Odroid -C2 + BSC EnOcean USB 300-TCM310 + HM485
Enocean-Taster-Fensterkontakt,-Bewegungsmelder
HM-Module über 3 Etagen + Garage/Garten
+ 1-wired Temp-Sensoren, S0-Schnittstellen + RHASSPY-Spracherkennung

JensS

#4
Hallo Jörg,

mit dem installiertem Paket "mosquitto-clients" kannst du die betreffenden Topics anzeigen lassen.mosquitto_sub -h <server> -p <port> -v -t hermes/dialogueManager/# -t hermes/hotword/#

Meine Erfahrung mit den Bestätigungstönen am Satelliten ist, dass der Aufruf und die Aufbereitung sowie das Abspielen der WAV-Dateien beim Zero zu lange dauert.
Also habe ich das nervende Gepiepse abgestellt.

Die LED sollte sofort nach Erkennung des WakeWords leuchten und erst bei der Antwort auf blau wechseln.

Nun hat so ein Zero nicht allzuviel unter der Haube. Da ist es wichtig zu optimieren, wo es geht. So kann man das Zwischenspeichern von Daten auf die SD umgehen. https://forum.fhem.de/index.php/topic,113180.msg1124839.html#msg1124839

Gruß Jens
Debian auf APU2C4, HM-CFG-USB2, SIGNALduino, HM-ES-PMSw1-Pl, TFA 30.3121, TFA 30.3125, ITS-150, PIR-5000, configurable Firmata USB & LAN, 1-wire: DS-18B20, DS-18S20, DS-2408, DS-2413, diverse I2C-Komponenten, zigbee2mqtt, ESPEasy etc.