Modulentwicklung für Rhasspy Sprachassistent

Begonnen von drhirn, 11 März 2021, 15:59:50

Vorheriges Thema - Nächstes Thema

drhirn

Zitat von: Beta-User am 05 April 2022, 11:55:44
Von daher: Es war nach Meinung gefragt, und das klingt jetzt doch etwas skeptischer, als ich es zunächst wahrgenommen hatte...

Falsch verstanden. autoTraining find ich super. Daran wird sich auch nichts ändern. Wir diskutieren hier doch nur, ob Tweak oder Attribut ;)

Beta-User

 ;D dann eindeutig (!) Tweak. Da ist doch schon jetzt manches beieinander, das in eine ähnliche Richtung geht (v.a. updateSlots, intentFilter, mappingOverwrite)...

Notiz an mich selbst: Die commandref sollte an der Stelle mal überarbeitet werden, der Einleitungssatz ist schon länger nicht mehr up-to-date, und die Gruppierung ein wenig willkürlich... ::)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Haha, nein. Eindeutig Attribut ;D
"updateSlots", "intentFilter", "mappingOverwrite" geht immer davon aus, dass schon Daten in Rhasspy da sind, hat aber keinen Einfluss auf die Grundfunktionen von RHASSPY. Bei autoTraining ist das umgekehrt.

Aber - wie immer - ich nehm's, wie's kommt.

Beta-User

Hehe, ich glaube, wir lassen es einfach als key in der DEF, drehen aber den default um ::) .

Das Problem: "Tweaks" finden sich in der Regel irgendwo im "helper" wieder, das meiste aus DEF (sei es implizit, sei es explizit) kommt als direkt sichtbares Internal. Das da zu lassen, ist zum einen "prominenter", und zum anderen innerhalb der sonst üblichen Logik...

Da wir grad beim "Kleben von Etiketten" sind: "rhasspySpeechDialog" statt "rhasspySTT"? (Analog zu "rhasspyMsgDialog").
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Zitat von: Beta-User am 05 April 2022, 12:54:04
Das Problem: "Tweaks" finden sich in der Regel irgendwo im "helper" wieder, das meiste aus DEF (sei es implizit, sei es explizit) kommt als direkt sichtbares Internal. Das da zu lassen, ist zum einen "prominenter", und zum anderen innerhalb der sonst üblichen Logik...

Jetzt bin ich verwirrt...
Ja, eh in der DEF. Dachte es ging nur darum, ob man in Tweaks oder als Attribut das in der DEF konfigurierte Verhalten ändern kann.

ZitatDa wir grad beim "Kleben von Etiketten" sind: "rhasspySpeechDialog" statt "rhasspySTT"? (Analog zu "rhasspyMsgDialog").
Kann ich nicht sagen. Weiß wieder mal nicht, was das ist ;D
STT heißt für mich in dem Kontext aber SpeechToText

Beta-User

Zitat von: drhirn am 05 April 2022, 12:59:15
Ja, eh in der DEF. Dachte es ging nur darum, ob man in Tweaks oder als Attribut das in der DEF konfigurierte Verhalten ändern kann.
"Eh" war die Frage. Ich war nahe dran, das da komplett rauszunehmen und eventuelle Abweichungen zum default rein auf Basis von einem Attribut-Wert zuzulassen. Aber in der DEF ist es eh' einfacher, auch, wenn man das zur Definitionszeit eigentlich noch nicht wissen muss...

Zitat
Kann ich nicht sagen. Weiß wieder mal nicht, was das ist ;D
STT heißt für mich in dem Kontext aber SpeechToText
Muss wohl etwas weiter ausholen:
Es gab "früher mal" zwei Attribute für STT und TTS (für die AMAD.*-Integration und "Babble"-Umleitung). "Irgendwann" ist dann "TTS" überflüssig geworden, weil eigentlich nur eine einzige Abgabe "zwingend" war, um das ganze in beide Richtungen (halbwegs) funktional zu bekommen (allowed). Da aber STT im allgemeinen nur für die eine Richtung steht, war die Bezeichnung eben "falsch" geworden, was jetzt in der Frage mündet, wie man das Kind denn umtaufen möchte....

(Prinzipiell funktioniert das, und die Sprachausgabe ist auch etwas angenehmer als bei Rhasspy-direkt; offen ist da aber ein Problem im Zusammenhang mit Dialogen bzw. Rückfragen, da puzzelt RHASSPY die (nacheinander kommenden) Teile wohl was noch nicht ganz korrekt zusammen bzw. baut ggf. manches auch nicht wieder korrekt ab, wenn ein "logischer Abschnitt" erledigt ist.)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Zitat von: Beta-User am 05 April 2022, 13:27:39
Es gab "früher mal" zwei Attribute für STT und TTS (für die AMAD.*-Integration und "Babble"-Umleitung). "Irgendwann" ist dann "TTS" überflüssig geworden, weil eigentlich nur eine einzige Abgabe "zwingend" war, um das ganze in beide Richtungen (halbwegs) funktional zu bekommen (allowed). Da aber STT im allgemeinen nur für die eine Richtung steht, war die Bezeichnung eben "falsch" geworden, was jetzt in der Frage mündet, wie man das Kind denn umtaufen möchte....
Ach so. Dann ist "rhasspySpeechDialog" eh ok.

Zitatdie Sprachausgabe ist auch etwas angenehmer als bei Rhasspy-direkt
Ach, mit Google WaveNet ist sie schon gut ;D

drhirn

Kannst du mir bitte mal schreiben, wie die DEF ausschauen muss, wenn ich autoTraining verwenden will? Kapier's wiedermal nicht.
Und, was ist denn z.B. eine Aktion, die ein autoTraining auslösen würde?

Btw. wenn du beim Thema Version das Internal "FVERSION" gemeint hast, damit kann ich gut leben.

Beta-User

Wenn irgendwo in der DEF dann ein "autoTraining=30" auftaucht, bedeutet das, dass RHASSPY 30 Sekunden wartet, z.B. nachdem du das letzte rhasspyMapping- oder rhasspyName-Attribut angefaßt hast.

Ob alles klappt, siehst du im list, da taucht dann (mindestens) "global" in NOTIFYDEF auf, und nach einer relevanten Änderung gibt's dann einen Eintrag unter "TIMER" (bis der ausgeführt wurde).

Was das Internal FVERSION angeht: das gibt's afaik nur, wenn der Installer aktiv ist - aber eine ähnliche Ausgabe erhält man auf jedem System via "version RHASSPY". Damit ist das manuell gepflegte MODULE_VERSION wohl Geschichte...?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Zitat von: Beta-User am 05 April 2022, 14:58:21
Wenn irgendwo in der DEF dann ein "autoTraining=30" auftaucht, bedeutet das, dass RHASSPY 30 Sekunden wartet, z.B. nachdem du das letzte rhasspyMapping- oder rhasspyName-Attribut angefaßt hast.

Ob alles klappt, siehst du im list, da taucht dann (mindestens) "global" in NOTIFYDEF auf, und nach einer relevanten Änderung gibt's dann einen Eintrag unter "TIMER" (bis der ausgeführt wurde).
Hmm, bei mir tut sich nichts.

ZitatDamit ist das manuell gepflegte MODULE_VERSION wohl Geschichte...?
Keine Einwände

Beta-User

version = 25920?

Das funktioniert erst mit dem letzten update.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

25920 2022-04-05 05:38:54Z Beta-User


defmod Rhasspy RHASSPY baseUrl=http://rhasspy:12101 defaultRoom=wohnzimmer language=de autoTraining=30
attr Rhasspy languageFile ./FHEM/rhasspy-de.cfg
attr Rhasspy room System
attr Rhasspy verbose 5


bzw.


Internals:
   CONFIGFILE ./FHEM/rhasspy-de.cfg
   DEF        baseUrl=http://rhasspy:12101 defaultRoom=wohnzimmer language=de autoTraining=30
   FUUID      60a4f0b5-f33f-b353-61c1-92d87e5ee0719dd3
   FVERSION   10_RHASSPY.pm:0.259200/2022-04-05
   IODev      rhasspyMQTT2
   LANGUAGE   de
   NAME       Rhasspy
   NR         39
   NTFY_ORDER 50-Rhasspy
   STATE      online
   TYPE       RHASSPY
   autoTraining 30
   baseUrl    http://rhasspy:12101
   defaultRoom wohnzimmer
   devspec    genericDeviceType=.+
   disableNotifyFn 1
   encoding   utf8
   fhemId     fhem
   prefix     rhasspy
   siteId     defhem
   useGenericAttrs 1
   TIMER:
   helper:
     devicemap:
       devices:

Beta-User

#1332
Hmm, komisch...

Auf meiner Hauptinstanz ist noch AMAD&Co aktiv, da sieht das NOTIFYDEV nochmal anders aus, und auf der Testinstanz ist schon wieder was geändert. Na ja, dann versuch's halt nochmal mit der, bitte...

(Die sollte den Key schon nicht mehr nicht brauchen).

EDIT:
Habe eben nochmal die svn-Version "pur" runtergeladen. Da wird auf meinem Testsystem NOTIFYDEV ordnungsgemäß ermittelt. Schräg...
DEF        baseUrl=http://192.168.33.1:12101 language=de autoTraining=20
IODev      m2client
LANGUAGE   de
NAME       RHASSPY
NOTIFYDEV  global


Hab' grad keine Idee, wo das Problem liegen könnte :-[ .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

drhirn

Bei meiner Docker-Installation zuhause hat's auch nicht geklappt.

In meinem produktiven System (DEB-Installation) allerdings auf Anhieb:


   TIMER:
     Rhasspy_autoTraining:
       HASH       Rhasspy
       MODIFIER   autoTraining
       NAME       Rhasspy_autoTraining


Das ist etwas merkwürdig

drhirn

Unterschied Docker <-> Prod:

disableNotifyFn 1

Kann das ein Grund sein? Und wie bekomm ich das weg?