NEWS
[Aufruf] Adapter: Snips - Offline Speak2Text
-
Hallo zusammen,
ich habe den Adapter für den Kompakt-Modus in der zukünftigen JS-Controller Version 2.0.0 angepasst. Soll heißen, dass in Zukunft wesentlich weniger RAM verbraucht werden soll, sofern man das aktiviert. Dadurch wird aber Stabilität eingebüßt. Das hat nur Auswirkungen, wenn später einmal diese Version des JS-Controllers erscheint und man diese Funktion aktiviert. Das Ganze ist schwächere Systeme mit weniger Arbeitsspeicher gedacht, etwa einem Raspberry Pi. Wer es später nicht in diesem Modus betreiben will, ist nach momentanem Plan wohl nicht dazu gezwungen. Nähere Infos für Interessierte gibts im https://forum.iobroker.net/viewtopic.php?f=24&t=20387#p213466.
In meiner Umgebung läuft der Adapter momentan stabil. Ich würde aber darum bitten, mal über GitHub ein Update zu machen und kurz zu berichten, ob noch alles wie gewünscht läuft.
Vielen Dank schon mal.
Bitte kurz den Request annehmen und dann kurz Bescheid geben, dass alle testen können.
-
Bitte kurz den Request annehmen und dann kurz Bescheid geben, dass alle testen können. `
Ich habe einen testing-Branch erstellt, kannst du für diesen Branch evtl. den Pull request senden ?
Ich möchte erstmal ungern ohne Testzeitraum wechseln :? .
Oder was denkst du ?
-
Da hast du grundsätzlich Recht. Nur sind es keine wirklich großen Änderungen und ich bin mir nicht sicher, ob alle wissen, wie sie einen Branch wechseln. :?:
Bin grad unterwegs. Werde nachher pushen.
-
erledigt
Ok, danke für deine Arbeit.
-
Guten Morgen.
Also rein vom kurzen Überfliegen auf dem Handy könnte es funktionieren. Aber zuverlässig sehen kannst du es, wenn du das Einspeisen mit Sam überwachst. Der Befehl lautet "Sam watch".
Beim Einspielen muss pro Wort bzw. pro Inject eine Zeile in Sam auftauchen. Da steht dann auf englisch etwa sowas wie "Aufnahme von 1 Wort in 1 Kategorie angestoßen". Der Satz jetzt mal nur rein vom Sinn her und aus dem Kopf.
Danach müssen zwingend, etwa eine bis wenige Sekunden später noch zwei weitere Zeilen erscheinen, dass der Neustart von zwei Servern? erbeten wurde. Erst dann hat es geklappt.
Ich würde das pro Inject-Gruppe testen. Wenn du z.B. nen Buchstabendreher in der Bezeichnung hast, kommt die erste Zeile nämlich trotzdem. Die Server starten aber nicht neu. `
Hi Michael,
habe einige injects getestet. Es scheint zu funktionieren. Gibt es eine Möglichkeit existierende injects per sam cmd auszugeben? Mit sam -h habe ich nichts gesehen.
Hier noch eine Frage zum Adapter:
Sollten die Worte wenn ich sie in der Spracheingabe verwende nicht auch im jeweiligen Datenpunkt unter snips.0.receive.slotxxx angezeigt werden?
Ich sehe nur werte im feld snips.0.recieve.text und snips.0.recieve.compiledText
Erste Info zum Thema Mirkrofon:
Ich habe eben eine PS3 EYE webcam an den PI angeschlossen und verwende das MIC der webcam. Die Audioqualität ist um einiges besser als beim Respeaker (sam test microphone) . Dennoch muss ich immer noch in Richtung des MICs sprechen.
-
Hi Frank,
ich kenne keine Möglichkeit die Inhalte/bereits angelernte Slots mittels SAM auszulesen. Gerade bei Farben oder den Sendern wäre das eine ziemlich lange Liste. Du kannst dir aber die App auf console.snips.com forken, also einen Ableger erstellen. Dann werden alle Slots mitkopiert und du kannst sehen, was von Anfang an schon dabei ist. Gerne kannst du hier eine Liste anhängen, wenn du fehlende Wörter oder nicht erkannte Sätze hast, dann füge ich die noch hinzu.
Zu den Slot-Datenpunkten:
Genau richtig erkannt, die sollten befüllt werden. Ich denke, das passiert auch, jedoch verfallen die Werte momentan nach 10 Sekunden. Die Idee dahinter war, dass die Datenpunkte später mal ausgewertet werden sollen und dann keine alten Werte verwendet werden dürfen.
Beispiel: schalte das Licht auf 50 Prozent im Wohnzimmer. –> Licht, 50, %, Wohnzimmer
Neuer Satz schlecht erkannt o.ä.: schalte das Licht auf 80 Prozent in nicht erkannter Raum. Dann würde das Licht im Wohnzimmer geändert.
Schau am Besten direkt beim einsprechen mal auf die Objekte. Da sollten die Datenpunkte kurz gefüllt sein und nach 10 Sekunden wieder verfallen.
-
Hi Michael,
leider werden bei mir keine Werte in den slots angezeigt. Hier die logs:
sam watch:
__[17:53:56] Watching on localhost:1885 (MQTT)
[17:53:59] [Hotword] detected on site default, for model hey_snips
[17:53:59] [Asr] was asked to stop listening on site default
[17:53:59] [Hotword] was asked to toggle itself 'off' on site default
[17:53:59] [Dialogue] session with id '501b9e08-bf97-4ae5-8669-6c2a56285c20' was started on site default
[17:53:59] [Asr] was asked to listen on site default
[17:54:02] [Asr] captured text "big fm" in 2.0s
[17:54:02] [Asr] was asked to stop listening on site default
[17:54:02] [Nlu] was asked to parse input "big fm"
[17:54:02] [Nlu] detected intent manalishi:setMedia with probability 0.986 for input "big fm"
Slots ->
broadcast -> big fm (confidence: 0.864)
[17:54:02] [Dialogue] New intent detected manalishi:setMedia with probability 0.986
Slots ->
broadcast -> big fm (confidence: 0.864)__ Snips Adapter:
__snips.0 2019-01-22 17:51:31.015 info big fm
snips.0 2019-01-22 17:51:28.093 debug stateChange snips.0.hotword.detected: {"val":false,"ack":true,"ts":1548175888091,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1548175888091}
snips.0 2019-01-22 17:51:28.093 debug stateChange snips.0.hotword.wait: {"val":false,"ack":true,"ts":1548175888090,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1548175888090}
snips.0 2019-01-22 17:51:28.030 debug stateChange snips.0.hotword.detected: {"val":true,"ack":true,"ts":1548175888028,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1548175888028}
snips.0 2019-01-22 17:45:57.451 debug stateChange snips.0.hotword.wait: {"val":true,"ack":true,"ts":1548175557448,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1548175557448}
snips.0 2019-01-22 17:45:51.831 debug stateChange snips.0.receive.text: {"val":"h er drei","ack":false,"ts":1548175551827,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1548175551827}
snips.0 2019-01-22 17:45:51.828 debug stateChange snips.0.receive.compiledText: {"val":"h er drei","ack":false,"ts":1548175551825,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1548175551825}__
Logfile Auszug von einem vorherigen Aufruf:
__2019-01-22 17:40:41.429 - [34mdebug[39m: snips.0 stateChange snips.0.hotword.wait: {"val":true,"ack":true,"ts":1548175241427,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1548175241427}
2019-01-22 17:40:43.452 - [34mdebug[39m: snips.0 stateChange snips.0.receive.slotTime: {"val":null,"ack":false,"ts":1548175243450,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1548175243450}
2019-01-22 17:40:43.454 - [34mdebug[39m: snips.0 stateChange snips.0.receive.slotDuration: {"val":null,"ack":false,"ts":1548175243451,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1547988345850}
2019-01-22 17:40:43.454 - [34mdebug[39m: snips.0 stateChange snips.0.receive.slotStatus: {"val":null,"ack":false,"ts":1548175243451,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1548144597260}
2019-01-22 17:40:43.455 - [34mdebug[39m: snips.0 stateChange snips.0.receive.slotRoom: {"val":null,"ack":false,"ts":1548175243451,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1548174657387}
2019-01-22 17:40:43.455 - [34mdebug[39m: snips.0 stateChange snips.0.receive.slotDevice: {"val":null,"ack":false,"ts":1548175243451,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1548144597261}[/i]__ _Ich kann hier leider nichts Konkretes ableiten. Auf console.snips.ai habe ich die iOBroker App in eine leere App hinzugefügt und dann direkt deployed. Macht es sinn den Adapter neu zu installieren oder siehst du hier einen möglichen Fehler?
Es scheint ein Problem mit meinen importieren Werten für die Slots zu geben. Wenn ich die Werte manuell eintrage, werden die Werte im jeweiligen Slot kurz angezeigt. ….wie von dir beschrieben._
-
Hi Frank.
Du hast nicht meinen Adapter installiert oder zusätzlich einen anderen. Es wird momentan nur der Adapter ioBroker von unltdnetworx verarbeitet. Snips erkennt aber setMedia von manalishi. Somit kann es nicht funktionieren. Sry.
Ich update immer über "Sam update-assistant" und habe im Assistenten unter console.Snips.ai nur die ioBroker App installiert. Ich glaube aber, dass er dabei alte Skills und Apps in den Ordnern belässt und nicht bereinigt. Habe diese dann manuell gelöscht. Die Pfade weiß ich leider nicht mehr.
-
Stimmt!
ich hatte noch Reste in diesem Verzeichnis:
/usr/share/snips/assistant
alle Ordner gelöscht und die json Dateien dort belassen. Dort stehen die Assistant Infos .
dann sam update-assistant.
Vielen Dank! Das war der entscheidend Hinweis.
-
Hallo Frank,
heute ist ein Update für den Skill zur Steuerung der LEDs herausgekommen. Funktinioniert bei mir einwandfrei, nachdem ich ich es manuell installiert habe, siehe https://github.com/snipsco/snips-skill-respeaker.
Vorher noch deine andere Steuerung deaktivieren.
cd ~ sudo rm -r snipsLedControl_v1.6.1 sudo systemctl disable snipsledcontrol sudo systemctl stop snipsledcontrol oder direkt löschen sudo rm /etc/systemd/system/snipsledcontrol.service sudo systemctl daemon-reload
-
Hi Michael,
danke für die Info. Psychokiller1880 hat auch eine neue Version seines snipsledcontroller's. Lief aber bei mir nicht.
Ich habe es auch manuell installiert. Läuft auch mit dem 6Mic Respeaker.
Hier ein kurzes Update zu meinen bisherigen MIC Tests:
RESpeaker4Mic: Gute Spracherkennung, mäßig bei Abstand >2m.
Sony PS3Eye (Playstation Webcam mit Mic): Gute Spracherkennung, gut auch bei Abstand 2m-4m
RESpeaker6Mic: Gute Spracherkennung, gut auch bei Abstand 2m-4m
Fazit. Die Mics mit DAC chip können bei grösseren Entfernungen besser auflösen. Dennoch muss man relativ laut sprechen. Wenn Musik läuft ist es bei allen ähnlich schlecht. Ich probiere ab heute mal mit "Mute" wenn das Hotword erkannt wird.
-
Mute mache ich auch funktioniert soweit gut.. Aber nervig ist halt das beim fernschauen immer mal wieder gemuted wird…
Wenn du das ohne hinbekommst kannst bei mir zum hot word vorsprechen vorbei kommen [emoji23]
Gesendet von meinem CLT-L09 mit Tapatalk
-
hi,
erstmal danke für diesen genialen Adapter, ich hab zwar eine gefühlte Ewigkeit gebraucht bis ich die Injects hinbekommen habe (hundert mal überlesen das mir ein Package gefehlt hat) aber jetzt lauft das Ding
Kleiner Bug dürft jedoch im Adapter sein wenn man Interpreten hinzufügen will …
Danke
Andi
-
Danke wird geändert.
-
Kann es sein, dass du nicht die aktuellste Version der App auf dem Snips hast? Der Slot wurde nämlich vor längerem, um die Konformität zu wahren Listen in Plural zu benennen, in interprets umbenannt. Der Adapter versucht auch diesen Slot zu befüllen. Kann er aber nicht, weil noch die Singular-Bennenung vorhanden ist.
Du kannst den Assistenten updaten mit "Sam update-assistant". Dann sind die Slots leider wieder weg. Aber die solltest du ohnehin mit einem Skript einpflegen. Wie schon erwähnt, kannst du gerne auch eine Liste posten. Dann pflege ich die noch ein. (Sofern es sinnige Inhalte sind.)
-
hallo,
Kann es sein, dass du nicht die aktuellste Version der App auf dem Snips hast? `
hmm, hätte gerade die APP auf console.snips.ai entfernt, neu hinzugefügt und auch am Raspi das Assistant-Verzeichnis gekübelt und neu deployed ..
"interprets" & "generes" will nicht … "colors" geht übrigens sofern dies auch von "color" unbenannt wurde.
Adapter ebenfalls neu installiert von Github.
lg
Andi
-
Hmm. Ich mach immer nur "Sam update-assistant". Da wird der ganze Assistent neu eingerichtet. Da geht es wunderbar.
-
sorry das ich da jetzt jetzt so rum-mülle … (darf noch keine PN schreiben)
Hmm. Ich mach immer nur "Sam update-assistant". Da wird der ganze Assistent neu eingerichtet. Da geht es wunderbar. `
egal wie oft ich den Assi update oder neu deploye .. es wird nix mit meinen Interpreten oder Genres …
ich hab leider keine Ahnung welche Datei für was zuständig ist, aber seh ich mir die folgenden Datein an, steht dort auch interpret/genre ohne (s)
pi@raspberrypi:/usr/share/snips/assistant/custom_asr $ cat config.json { "entityNameToFilename": { "snips/duration": "e_5.snips", "de.iobroker.expletive": "e_3.snips", "de.iobroker.interpret": "e_12.snips", "de.iobroker.broadcaster": "e_9.snips", "snips/number": "e_11.snips", "de.iobroker.genre": "e_10.snips", "de.iobroker.boolean": "e_6.snips", "de.iobroker.devices": "e_1.snips", "de.iobroker.colors": "e_0.snips", "de.iobroker.mediacommands": "e_2.snips", "de.iobroker.rooms": "e_4.snips", "de.iobroker.unit": "e_8.snips", "snips/datetime": "e_7.snips" },
ebenso in
pi@raspberrypi:/usr/share/snips/assistant/custom_asr/inj_v2 $ cat config_inj_v2.json { "snips/duration": { "vanilla": "e82acd23-b24a-4ebe-af07-5b013a22add2.vanilla", "ngram": false, "added": "e82acd23-b24a-4ebe-af07-5b013a22add2.added", "pruningThresholds": [], "order": 0 }, .... .... .... "de.iobroker.interpret": { "vanilla": "2c8815bf-be42-4d23-b1f7-3ec3063db76d.vanilla", "ngram": true, "added": "2c8815bf-be42-4d23-b1f7-3ec3063db76d.added", "pruningThresholds": [], "order": 3 }, "de.iobroker.genre": { "vanilla": "c1a032ec-6b26-446f-a417-ef2d64838896.vanilla", "ngram": true, "added": "c1a032ec-6b26-446f-a417-ef2d64838896.added", "pruningThresholds": [], "order": 3 },
der Adapter würd zwar gerne in "de.iobroker.genres" injecten, aber der Assi weiss scheinbar nicht das es den gibt.
Fehlermeldung:
Jan 31 17:57:33 raspberrypi snips-injection[1839]: INFO:snips_asr_injection : ASR Injections started Jan 31 17:57:34 raspberrypi snips-injection[1839]: ERROR:snips_injection_hermes : injection failed for injection: Injection { root_dir: "/var/lib/snips/injections/20190131T155545781415112/inj_20190131T165733733272227.Vo5pUsuc2TWr", date: 2019-01-31T16:57:33.733272227Z } Jan 31 17:57:34 raspberrypi snips-injection[1839]: -> caused by: Entity de.iobroker.genres doesn't exist. The entities available in the assistant are: ["de.iobroker.expletive", "de.iobroker.colors", "de.iobroker.boolean", "de.iobroker.unit", "de.iobroker.mediacommands", "de.iobroker.rooms", "de.iobroker.genre", "snips/duration", "snips/number", "de.iobroker.devices", "de.iobroker.interpret", "de.iobroker.broadcaster", "snips/datetime"]
assi is übrigens der
hab ich da irgendwo wieder eine Kleinigkeit übersehen ??
lg
Andi
-
Adapter passt und Fehler ist auch nachvollziehbar. Ich denke, dass es evtl. mit dem manuellen Update irgendwie nicht geht. Hast du Sam auf dem Rechner? Damit klappt es bei mir.
-
Adapter passt und Fehler ist auch nachvollziehbar. Ich denke, dass es evtl. mit dem manuellen Update irgendwie nicht geht. Hast du Sam auf dem Rechner? Damit klappt es bei mir. `
pi@raspberrypi:~ $ sudo rm /usr/share/snips/assistant/ -R pi@raspberrypi:~ $ sam login ? Enter email used on the console: xxx.xxx@gmail.com ? Enter password used on the console: [hidden] ✔ Logged in pi@raspberrypi:~ $ sam install assistant Fetching assistants done Found 1 assistant named Iobroker Downloading assistant Fetching assistants done NLU training done ASR training done ✔ Deploying assistant to raspberrypi.local... Checking for actions ✔ Snips assistant is now running. Say hey_snips to start! i Run sam watch to see the logs pi@raspberrypi:~ $ sam update-assistant Updating assistant NLU training done ASR training done ✔ Deploying assistant to raspberrypi.local... Checking for actions ✔ Snips assistant is now running. Say hey_snips to start! i Run sam watch to see the logs pi@raspberrypi:~ $ sam watch [09:27:06] Watching on localhost:1883 (MQTT) [09:27:30] [Injection] an injection of 1 words for 1 entities has been requested
Syslog dazu
pi@raspberrypi:/usr/share/snips $ tail -f /var/log/syslog Feb 1 09:27:30 raspberrypi snips-injection[1055]: INFO:snips_asr_injection : ASR Injections started Feb 1 09:27:31 raspberrypi snips-injection[1055]: ERROR:snips_injection_hermes: injection failed for injection: Injection { root_dir: "/var/lib/snips/injections/20190201T082649543507869/inj_20190201T082730721263859.FF2Q6il1ZDBw", date: 2019-02-01T08:27:30.721263859Z } Feb 1 09:27:31 raspberrypi snips-injection[1055]: -> caused by: Entity de.iobroker.genres doesn't exist. The entities available in the assistant are: ["de.iobroker.colors", "de.iobroker.boolean", "de.iobroker.devices", "snips/datetime", "de.iobroker.broadcaster", "snips/duration", "de.iobroker.genre", "de.iobroker.expletive", "de.iobroker.interpret", "snips/number", "de.iobroker.rooms", "de.iobroker.unit", "de.iobroker.mediacommands"]
mqtt am Snips
{"operations":[["add",{"de.iobroker.genres":["TestGenres"]}]]}
ich mach den Raspi jetzt nochmal platt …. die Hoffnung stirbt zuletzt -> erledigt ... selbes Ergebniss :?