NEWS
[Aufruf] Adapter: Snips - Offline Speak2Text
-
Hallo Hanni,
das mit den Räumen ist komisch. Kann es sein, dass du injects gemacht hast (neue Wörter angelernt) und die nicht einzeln, sondern mit Kommata getrennt eingeben hast? Man muss defintiv jedes Wort im richtigen Slot extra anlernen.
Zahlen sollten eigentlich erkannt und in echte Zahlen konvertiert werden. z.B. zwei –> 2. Kannst du mal einen Beispielsatz oder Sätze angeben, welche du verwenden willst. Dann schau ich nach, ob es den richtigen Intent verwendet und pflege zur Not noch ein.
Dimmen geht z.B. über den text2command Adapter. Momentan muss man aber "an" dazu sagen. Also z.B. "Schalte das Licht in der Küche auf 50% an". `
Hallo,
also ich bin durch deinen Kommentar schonmal einen Schritt weiter gekommen. Zumindest im verstehen wie alles Funktioniert.
Ich vermute das der Satz als ganzes in "Received text" und der Adapter schlüsselt den Satz dann auf oder?
Leider funktioniert das nicht. Ich bekomme immer nur in "received text" und in "text" das selbe angezeigt, alle anderen felder bleiben leer!
Ich hab die IO Broker app aber auch geforked da Snips viele dinge dich ich gesagt habe nicht verstanden hat. Kann es daran liegen?
Habe hier den nur Stall genommen das er nicht anfängt einen Raum zu saugen während ich teste.
Also ich will z.B. sagen . "Snips reinige das Büro drei mal"
Mein Sauger heist Olga deswegen soll er eben auch reagieren wenn ich sage: "Snips schicke Olga nach Hause"
Und dann waren da noch ein paar andere Worte die er nicht verstanden hat.
Danke
17844_snips2.jpg -
Die Felder bleiben leer, weil du nicht mit dem iobroker Assistenten von Michael arbeitest, sondern mit dem ioBroker-Snips Assistenten von Equilora
-
Hallo Gemeinde,
irgendwie blick ich hier nicht mehr so wirklich durch.
Gibt es hier 2 parallele Entwicklungen, die nicht miteinander können? Wenn ja, kann das mal einer aufdröseln wer mit wem spielt und evtl. wo die Unterschiede sind.
Hab den Thread komplett gelesen, aber so ganz komm ich nicht mit.
-
Nein, gibt es nicht. Du musst nur die readme des Adapters lesen. Mit den anderen Assistenten kann man auch arbeiten, aber nicht mit den Slots.
-
@Wal:Die Felder bleiben leer, weil du nicht mit dem iobroker Assistenten von Michael arbeitest, sondern mit dem ioBroker-Snips Assistenten von Equilora `
Hallo Vielen Dank für deine Antwort. Ich habe das readme des Adapters auch gelesen und bin mir sicher das ich gestern bei den Apps nur den IoBroker-Snips gefunden habe. Naja seis drum ich werde gleich mal testen wie das mit dem anderen läuft.
Vielleicht im Readme das Symbol der App mit aufnehmen? Dann würde man sofort merken das es die falsche app ist.
Habt ihr dann eigentlich nur die IObroker App auf den Snips laufen oder auch noch andere Sachen wie "Wetter" oder "Bring"?
-
Ich habe ausschließlich die ioBroker App laufen. Den Rest lasse ich mir mittels ioBroker zurückgeben. z.B. Wetter mit der WeatherUnderground. Wenn ich z.B. "Gute Nacht" zu Snips sage, dann macht er mit alles im Wohnzimmer aus, sagt mir evtl. ob der Müll morgen abgeholt wird und eben auch die Wettervorhersage.
Wenn zu viel auf Snips läuft, dann erkennt er evtl. die falschen Intents und ioBorker geht leer aus.
-
Hallo Frank,
in Sachen Snips würde ich definitv auf die Satelliten-Lösung setzen. Wird bei mir auch demnächst passieren. Dazu reicht dann ja schon ein Raspberry Pi Zero und ein kleineres Mikro, da der Satellit nur die Aufnahme und Ausgabe machen muss. Das spart Performance und du musst die Apps und Skills nur einmal installieren, auf dem Hauptgerät. Hatte sogar schon überlegt, mein Hauptgerät auf den Server des ioBroker (Docker auf Synology) zu verlagern und mein derzeitiges Hauptgerät als Satellit einzurichten. Mal schauen wie das Thema weitergeht.
Bzgl. der Kennzeichenerfassung würde ich einen Thread eröffnen, ob daran Interesse besteht. Könnten bestimmt gut Ideen aufkommen. Es gibt ja schon im Entwicklungsbereich eine ähnliche Umfrage: "[UMFRAGE] Besteht Interesse an einem Octoprint Adapter". Wenn Interesse besteht, ist eine Vereinfachung mittels Adapter bestimmt nicht schlecht. `
Hallo,
ich bekomme die Satteliten Konfig nicht an Laufen. Kennt jemand die Meldung : "error happened: Event not supported: Response { waiting: Either<"AsrPartialPayload","AsrPayload"> "
…..oder sieht einen Fehler in meine Konfiguration?
Hier die Master Konfig:
[snips-common]
bus = "mqtt"
mqtt = "127.0.0.1:1885"
audio = ["+@mqtt"]
assistant = "/usr/share/snips/assistant"
user_dir = "/var/lib/snips"
[snips-audio-server]
bind = "kitchen@mqtt"
[snips-hotword]
audio = ["kitchen@mqtt"]
Hier die Slave Konfig:
[snips-common]
bus = "mqtt"
mqtt = "192.168.xxx.xxx:1885"
audio = ["+@mqtt"]
assistant = "/usr/share/snips/assistant"
user_dir = "/var/lib/snips"
[snips-audio-server]
bind = "kitchen@mqtt"
[snips-hotword]
model = "/usr/share/snips/hotword"
audio = ["kitchen@mqtt"]
hier sam watch vom master:
[18:59:08] Watching on 127.0.0.1:1885 (MQTT)
[18:59:15] [Asr] was asked to reload its model
[18:59:16] [Nlu] was asked to reload its engine
[18:59:25] [Hotword] detected on site kitchen, for model default
[18:59:25] [Asr] was asked to stop listening on site kitchen
[18:59:26] [Hotword] was asked to toggle itself 'off' on site kitchen
[18:59:26] [Dialogue] session with id '1dd82bc2-87b0-43bd-8d4e-4f1811211405' was started on site kitchen
[18:59:26] [AudioServer] was asked to play a wav of 41.1 kB with id '449f2242-3287-4615-a594-e939f852c090' on site kitchen
[18:59:26] [AudioServer] finished playing wav with id '449f2242-3287-4615-a594-e939f852c090'
[18:59:26] [Asr] was asked to listen on site kitchen
[18:59:26] [AudioServer] finished playing wav with id '449f2242-3287-4615-a594-e939f852c090'
[18:59:26] [AudioServer] was asked to play a wav of 61.1 kB with id 'db10ae50-3dbd-437f-bd5b-858b7992948e' on site kitchen
[18:59:27] [AudioServer] finished playing wav with id 'db10ae50-3dbd-437f-bd5b-858b7992948e'
[18:59:27] [Dialogue] session with id '1dd82bc2-87b0-43bd-8d4e-4f1811211405' was ended on site kitchen. The session was ended because an error happened: Event not supported: Response { waiting: Either<"AsrPartialPayload","AsrPayload"> }, with response: AudioPlayFinished(AudioFinishedPayload)
[18:59:27] [Asr] was asked to stop listening on site kitchen
[18:59:27] [Hotword] was asked to toggle itself 'on' on site kitchen
[18:59:27] [AudioServer] finished playing wav with id 'db10ae50-3dbd-437f-bd5b-858b7992948e'
[18:59:31] [Asr] captured text "" in 4.0s
[18:59:33] [Asr] was asked to reload its model
[18:59:33] [Nlu] was asked to reload its engine
[18:59:33] [Asr] captured text "" in 7.0s
[19:00:09] [Hotword] detected on site kitchen, for model default
[19:00:09] [Asr] was asked to stop listening on site kitchen
[19:00:09] [Hotword] was asked to toggle itself 'off' on site kitchen
[19:00:09] [Dialogue] session with id '96bc20eb-3431-4721-9114-754197c31bc3' was started on site kitchen
[19:00:10] [AudioServer] was asked to play a wav of 41.1 kB with id '4f7516fc-73e6-432e-94e6-4081bb3f84ce' on site kitchen
[19:00:10] [AudioServer] finished playing wav with id '4f7516fc-73e6-432e-94e6-4081bb3f84ce'
[19:00:10] [Asr] was asked to listen on site kitchen
[19:00:10] [AudioServer] finished playing wav with id '4f7516fc-73e6-432e-94e6-4081bb3f84ce'
[19:00:10] [AudioServer] was asked to play a wav of 61.1 kB with id '986d9d5b-0027-419f-b64d-4bd3712d8e66' on site kitchen
[19:00:11] [AudioServer] finished playing wav with id '986d9d5b-0027-419f-b64d-4bd3712d8e66'
[19:00:11] [Dialogue] session with id '96bc20eb-3431-4721-9114-754197c31bc3' was ended on site kitchen. The session was ended because an error happened: Event not supported: Response { waiting: Either<"AsrPartialPayload","AsrPayload"> }, with response: AudioPlayFinished(AudioFinishedPayload)
"mein Hauptgerät auf den Server des ioBroker (Docker auf Synology) zu verlagern und mein derzeitiges Hauptgerät als Satellit einzurichten"
Ich glaube das mache ich auch erst mal als VM. dann kann ich zumindest mal Snapshots vom Master machen und muss nicht ständig die SD Karte als .img sichern. Mit den Synology Geräten habe ich die Erfahrung gemacht, dass wenn die cpu zu schwach ist und zu viele Apps parallel laufen, manche Ding ins Stocken geraten. Mit Docker auf Synology habe ich aber nicht viel Erfahrung.
-
Hallo zusammen,
eine kleine Neuerung, die den Adapter aber nicht direkt betrifft.
Nachdem ich mit Felix (Hanni1312) bzgl. eines neuen Intents zur Steuerung von Staubsaugern gesprochen habe, habe ich mir überlegt, dass man ja setBoolean nicht unbedingt braucht. Ich habe den Intent setBoolean daher umgebaut auf setDevice. Damit lassen sich jetzt nach wie vor true/false-Werte steuern, z.B. "Schalte den Fernseher an/aus", aber eben auch andere Werte, z.B. "Sauge die Zone Wohnzimmer", "Fahre den Staubsauger in die Garage", "Lade den Staubsauger" oder "Mähe den Rasen".
Felix hat speziell für die Zonenreinigung von Staubsaugern ein Skript geschrieben und stellt dieses evtl. hier kurz vor incl. Export. Die rückgemeldeten Werte sind übrigens jetzt "clean" für saugen, "move" für fahren, "charge" für laden oder "mow" für mähen.
Ich hoffe das ist einigermaßen verständlich und beim Updaten der App für den Assistenten klappt alles. Beim meinem Testaccount wurden alle Slots einwandfrei übernommen.
-
Welche Version der Konfiguration in der Anleitung hast du denn verwendet? A oder B. Sieht nach B aus.
Welche Hardware verwendest du denn? Variante A würde weniger Leistung brauchen. Das ist zwar nicht der Grund, aber zum Nachvollziehen wäre es nicht schlecht. Kitchen ist dein Master-Gerät, oder?
-
Ja, Kitchen ist der Master. Ich habe 2 baugleiche PI3 mit dem 6MIC RESpeaker. Ich habe beide Varianten versucht. Die gepostete Konfig ist von der Variante B.
Ich habe mich gestern an einem virtualisierten Snips Server (Master) versucht. Raspbian auf einer VM. Lief straight forward bei der Installation. Beim Aufruf von sam status kam die Meldung "Snips voice control not installed". Benötigt bei der Variante B der Master eine Soundkarte als HW passthrough?
Habe mir das mit dem Docker auch angesehen. Ich wollte dann alternativ das mit einer XPEnology VM 6.1.2 und Docker probieren. Habe ich das richtig verstanden, dass Snips Docker erst kompiliert werden muss?
-
Snips auf Docker habe ich noch nicht getestet, war nur eine Idee, da ich (noch) keinen VM-Server habe. Wird aber wohl der nächste Schritt werden. ioBroker und Snips je als eigene VM.
Wo hast du denn eingesprochen? In den Main oder den Satelliten? In kitchen, den Main, oder?
-
Nach ein paar Tests musste ich den Adapter jetzt leider doch noch anpassen und die App nochmal aktualisieren.
"Schalte" wurde als Befehl erkannt, was ja wenig aussagekräftig ist.
-
hi, kann mich mal kurz jemand aufschlauen, was es mit den slots auf sich hat. Warum benötige ich das, wenn ich den Text im Text to command ohnehin eintragen muss . Welchen Vorteil bringt das…Warum wird zum Beispiel aus an true und der Text to command verabeitet trotzdem an..Was bringt die aufteilung in slots im zusammenhang mit text to command?
Mal ein Beispiel siehe Bilder...
-
noch ne frage, warum dauert es solabge bis snips wieder auf das hotword reagiert, wenn ein Befehl nicht umgesetzt wurde, weil : ich verstehe die und das nicht…kann man das verkürzen, damit snips wieder schneller das hotword annimmt?
Fehlerbild snips siehe unten...
-
Hallo zusammen,
eine kleine Neuerung, die den Adapter aber nicht direkt betrifft.
Nachdem ich mit Felix (Hanni1312) bzgl. eines neuen Intents zur Steuerung von Staubsaugern gesprochen habe, habe ich mir überlegt, dass man ja setBoolean nicht unbedingt braucht. Ich habe den Intent setBoolean daher umgebaut auf setDevice. Damit lassen sich jetzt nach wie vor true/false-Werte steuern, z.B. "Schalte den Fernseher an/aus", aber eben auch andere Werte, z.B. "Sauge die Zone Wohnzimmer", "Fahre den Staubsauger in die Garage", "Lade den Staubsauger" oder "Mähe den Rasen".
Felix hat speziell für die Zonenreinigung von Staubsaugern ein Skript geschrieben und stellt dieses evtl. hier kurz vor incl. Export. Die rückgemeldeten Werte sind übrigens jetzt "clean" für saugen, "move" für fahren, "charge" für laden oder "mow" für mähen.
Ich hoffe das ist einigermaßen verständlich und beim Updaten der App für den Assistenten klappt alles. Beim meinem Testaccount wurden alle Slots einwandfrei übernommen. `
kannst du lauter und leiser noch mit rein nehmen in deinen Assistant?
programm weiter und zurück schalten funktioniert auch nicht..
und warum wir next und previous erkannt? Wis soll ich das verstehen…Wasist der grund dafür? Funktioniert aber auch nicht wenn ich previous oder next im text to command eingebe...
-
Hi smartboart,
ich versuche mal etwas Licht ins Dunkel zu bringen, soweit ich etwas dazu sagen kann.
> Warum benötige ich das, wenn ich den Text im Text to command ohnehin eintragen muss
Momentan werden die Slots noch nicht benötigt. Ausgenommen der Nummern-Slot, da sonst keine Zahlen verarbeitet werden können. Mit "fünfzig" kann der ioBroker nicht arbeiten, mit 50 hingegen schon. Warum gibt es trotzdem Slots die ausgewertet werden? Das soll schon eine Vorarbeit werden, ob später evtl. mit Regeln in Text2Command arbeiten zu können. Aber wir sind uns noch nicht schlüssig, wie das gehen wird.> warum dauert es solabge bis snips wieder auf das hotword reagiert
Das kann ich dir leider nicht beantworten, ist mir aber auch schon aufgefallen. Sollte aber nicht am Adapter oder der App liegen; ist wohl eher Snips spezifisch.> kannst du lauter und leiser noch mit rein nehmen in deinen Assistant
Habe ich integriert, werde wohl heute Abend nochmal ein Update veröffentlichen, dann ist es mit drin. Rückgegebn wird dann "volume up" und "volume down". true und false wird übrigens auch schon mal als Vorarbeit umgewandelt. Denke, dass es später mit true und false einfacher geht Regeln zu erstellen. Genauso previous und next. Das ist meist bei Adaptern ein Datenpunkt und so vllt. später ansprechbar.Warum nochmal ein Update der App? Werde die App versuchsweise mal in 2 Intents aufteilen. setValues zum Befehle geben und getValues um Fragen zu stellen. Die Aufteilung in verschiedene Slots für Befehle stößt sonst an ihre Grenzen, wenn z.B. "Reinige das Wohnzimmer zweimal" gesagt wird. Erkennt er momentan setDevice und nicht setNumeric, wandelt also keine Zahlen um.
Bin aber für Vorschläge offen.
-
Danke fuer die Aufklärung.. Kann es sein dass die Befehle in Text to command besser umgesetzt werde wenn ich diese auch mit Infos aus den slots fuelle also z. B. Device / room / command also fernseher im Wohnzimmer einschalten… Als nur Fernseher einschalten.... Und manchmal uebergibt snips das einschalten als true und manchmal als einschalten...
Gesendet von meinem CLT-L09 mit Tapatalk
-
Genau das war der Gedanke, dass man später z.B. Regeln für text2command erstellt, etwa so wie bei den Rollos und dann nur noch eine Zeile für jede Gerätetyp brauchen würde.
Bei receivedText wird der erkannte Text zurückgegeben, bei compiledText dann der Text bei dem die Wörter durch die erkannten Slots ersetzt werden.
Ich schau mal nach, ob einschalten als Synonym für true in der App hinterlegt ist. Falls nicht, wird es ergänzt. Gerne weitere Beispiele für Worte oder Sätze die nicht erkannt wurden melden.
-
Einschalten war bereits hinterlegt.
Was natürlich auch sein kann, dass er einmal setDevice und einmal einen anderen Intent erkennt und daher nicht auf true abändert sondern einschalten belässt. Daher im nächsten Update nur noch 2 Intents zum Lesen bzw Schreiben und den Smalltalk zum einpflegen von Wörtern die nicht erkannt werden aber eigentlich kein Kommando sind. Wie z.B. Guten Morgen.
-
Genau das war der Gedanke, dass man später z.B. Regeln für text2command erstellt, etwa so wie bei den Rollos und dann nur noch eine Zeile für jede Gerätetyp brauchen würde.
Bei receivedText wird der erkannte Text zurückgegeben, bei compiledText dann der Text bei dem die Wörter durch die erkannten Slots ersetzt werden. `
Kannst du noch stumm schalten mit rein nehmen / mute..
und vlt. auf und zu / auf 100 und zu 0
Danke