SNIPS: Sprachsteuerung (mittlerweile auch per Textcommands) über snips.ai

Begonnen von Thyraz, 21 Juli 2018, 20:28:48

Vorheriges Thema - Nächstes Thema

GuidoS

Hi ,

habe gerade mit der Installation angefangen .. Snips Server läuft nur das FHEM Modul bekomme ich nicht zum laufen

FHEM LOG:
reload: Error:Modul 10_SNIPS deactivated:
Excessively long <> operator at ./FHEM/10_SNIPS.pm line 21.

2018.08.24 13:32:55 0: Excessively long <> operator at ./FHEM/10_SNIPS.pm line 21.

2018.08.24 13:33:09 1: reload: Error:Modul 10_SNIPS deactivated:
Excessively long <> operator at ./FHEM/10_SNIPS.pm line 21.

2018.08.24 13:38:44 0: Excessively long <> operator at ./FHEM/10_SNIPS.pm line 21

Beim Versuch :
define Snips SNIPS SnipsMQTT Wohnzimmer
--> Cannot load module SNIPS

Hat jemand ein ähnliches Problem ?

Danke & VG


ChrisK

Zitat von: Thyraz am 24 August 2018, 13:26:01
Einfach die gepackte Datei auf den Linux Rechner schieben und dort an den Zielort extrahieren.
In der Snips Doku löblicherweise sogar beschrieben wie ich eben gesehen habe:
https://snips.gitbook.io/documentation/console/deploy-your-assistant#deploy-your-assistant-manually-without-sam
Danke für den Hinweis.
Ich habe gestern ziemlich lange damit verbracht, herauszufinden wie man ohne SAM den Assistenten rüber kriegt. Wenn ich Deinen Link jetzt so sehe, frage ich mich, was ich gemacht habe  ::)  ;)

Hat eigentlich jemand schon ein eigenes WakeWord probiert/umgesetzt? Gibt es dazu Erfahrungen?
Das wird vermutlich einer der nächsten Punkte bei mir sein, sobald einige Devices funktionieren.

Die Doku hierzu habe ich zumindest gefunden ;)
https://snips.gitbook.io/documentation/advanced-configuration/wakeword/personal-wakeword

eurolift

Hallo Thyraz

root@PI3:~# sudo systemctl status snips-nlu
● snips-nlu.service - Snips NLU
   Loaded: loaded (/lib/systemd/system/snips-nlu.service; enabled; vendor preset
   Active: activating (auto-restart) (Result: exit-code) since Fri 2018-08-24 13
  Process: 5199 ExecStart=/usr/bin/snips-nlu (code=exited, status=1/FAILURE)
Main PID: 5199 (code=exited, status=1/FAILURE)

Aug 24 13:59:40 PI3 systemd[1]: snips-nlu.service: Unit entered failed state.
Aug 24 13:59:40 PI3 systemd[1]: snips-nlu.service: Failed with result 'exit-code

Eurolift

Thyraz

Ok, läuft also nicht.
Damit ist auch klar, warum nichts funktioniert. ;)

Dann wie oben beschrieben händisch starten und schauen ob hier was hilfreicheres ausgespuckt wird.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

eurolift

Hey Snips Hallo Thyraz

mit
sudo systemctl stop snips-nlu
sudo snips-nlu -v

kommt das im Terminal



[14:03:38.478515] DEBUG:snips_nlu_hermes::billing: Received Response { status: Created, version: Http11, headers: {"Content-Length": "0", "Date": "Fri, 24 Aug 2018 12:03:38 GMT"} }
[14:03:39.686207] ERROR:snips_nlu                : Cannot open slot filler metadata file '"/usr/share/snips/assistant/nlu_engine/probabilistic_intent_parser/slot_filler_Thyraz:GetNumeric/metadata.json"'
-> caused by: No such file or directory (os error 2)

[14:03:39.686320] ERROR:rumqtt::client           : 081d5e26dfc840adb523f414268d8351 Disconnected: (Error(SyncMpsc(Disconnected), State { next_error: None, backtrace: None }))

ChrisK

Zitat von: eurolift am 24 August 2018, 14:09:43
[14:03:38.478515] DEBUG:snips_nlu_hermes::billing: Received Response { status: Created, version: Http11, headers: {"Content-Length": "0", "Date": "Fri, 24 Aug 2018 12:03:38 GMT"} }
[14:03:39.686207] ERROR:snips_nlu                : Cannot open slot filler metadata file '"/usr/share/snips/assistant/nlu_engine/probabilistic_intent_parser/slot_filler_Thyraz:GetNumeric/metadata.json"'
-> caused by: No such file or directory (os error 2)

[14:03:39.686320] ERROR:rumqtt::client           : 081d5e26dfc840adb523f414268d8351 Disconnected: (Error(SyncMpsc(Disconnected), State { next_error: None, backtrace: None }))
Das war die Meldung, die ich in diesem Fall bekommen habe:
Zitat von: ChrisK am 24 August 2018, 12:56:06
Ein Hinweis für den Fall, dass es jemand anderes auch betrifft:
Ich arbeite nicht mit sam, lade den Assistenten also manuell herunter und kopiere ihn auf den Pi.
Beim Entpacken (mit WinRar unter Windows 10) wird aus dem ":" in den Ordner-Namen ein "_" (also z.B. slot_filler_Thyraz_GetNumeric und slot_filler_Thyraz_GetOnOff). Das hat erstmal dazu geführt, dass snips nichts machen wollte. Aber im log stand, dass der Ordner nicht gefunden werden konnte, deswegen war die Lösungssuche relativ einfach.

Vielleicht guckst Du also mal, ob die Verzeichnisse bei Dir korrekt heißen bzw. existieren.

Thyraz

Er findet eine Datei in einem Ordner mit einem Doppelpunkt im Namen nicht. ;)

Das hört sich ein wenig an wie das Problem, das ChrisK ein paar Posts weiter oben beschrieben hat.
Evtl. das Zip File auch unter Windows anstatt unter Linux entpackt?

Wenn ja dann auch mal so versuchen:
https://snips.gitbook.io/documentation/console/deploy-your-assistant#deploy-your-assistant-manually-without-sam


edit: zu langsam. ;)
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

eurolift

OK ich versuch es. Erstmal DANKE an alle.Meld mich dann  :)

eurolift

Hurra es funktioniert.Entpacken muss ich wohl noch üben ;D
Danke nochmal Eurolift

jowe

Hi Thyraz,
das Modul läuft weiterhin super bei mir, die neue Status Funktion ist auch top!
Ich hätte noch einen Wunsch: Ich möchte gerne per Dummy für meinen Satelliten die hotword-detection ein- und ausschalten können, dafür müsste ich laut Snips Doku
hermes/hotword/<hotwordId>/toggleOff publishen. Könntest du in deinem Modul ermöglichen, benutzerdefinierte Kommandos durchzureichen? Also z.B. per set SNIPS publish hermes/hotword/<hotwordId>/toggleOff oder so ähnlich?
Hintergrund: Da ich immernoch sehr viele fehlerhafte Hotword-Erkennungen habe, möchte ich gerne z.B. bei Besuch die gesamte Erkennung abschalten können.

Thyraz

Du kannst das heute schon über das MQTT Modul machen, welches du ja zusätzlich zum Snips Device anlegen musstest.
Da hat es einen set Befehl zum publishen drin.

Aber da das  mit der Hotword Detection eine gute Idee ist, kommt das auf die Todo Liste.
Also ein set Befehl, der dann set <snipsDevice> microphone off bzw. on heißen könnte.

Könnte man auch einen Intent dafür machen nach dem Schema:
- Hey Snips, hör mal weg
- Hey Snips, halt dir mal 5 Minuten die Ohren zu
- Hey Snips, Mikrofon im Wohnzimmer für 6 Stunden abschalten

oder so ähnlich. :P

Ist nur noch die Frage wie ich die hotwordId rausbekomme, ohne dass der User davor erstmal Snips ansprechen muss.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

bennebartsch

Nutzt ihr auch die snips-asr-google? Verstehe ich das richtig, das die "normale" asr kein Deutsch kann? Bekomme immer folgenden Fehler:

Aug 24 22:56:21 pi snips-asr-google[5725]: thread '<unnamed>' panicked at 'missing field `access_token` at line 4 column 1', snips-asr-google/snips-asr-google-lib/src/google_auth.rs:410:22

Wal

Nein, die snips-asr kann deutsch. Wenn ich möchte das Amazon oder Google Daten von mir bekommen sollen, würde ich nicht mit Snips arbeiten.
Kaum macht man es richtig, funktioniert es auch !

Gruß
Walter

shilbert

Läuft  :)

Zumindest was den Status des Rasenmähers angeht. Mit dem alten Modul liefen auch die Jalousien. Die tun es aktuell nicht mehr. Scheint irgendwie an den Räumen zu liegen.

Injection müsste geklappt haben ...

Zitathermes/asr/inject {"operations":[["add",{"de.fhem.Device":["Rasenmäher","Jalousie","Markise"]}],["add",{"de.fhem.Room":["Wohnzimmer","Garten","Küche"]}]]}
hermes/asr/reload (null)

Allerdings scheint bei den Slots Standardraum und Standarddevice übermittelt zu werden.

Das zugehörige Device wäre

ZitatIODev
   
ZWAVE1
alias                   Rollo Küche
room                  Küche,LichtRollo,Snips
snipsMapping     SetOnOff:cmdOn=on,cmdOff=off
snipsName         Jalousie
snipsRoom         Küche

Zitat[09:02:15] [Asr] captured text "jalousie küche runter" in 2.0s
[09:02:15] [Asr] was asked to stop listening on site wohnzimmer
[09:02:15] [AudioServer] was asked to play a wav of 93.1 kB with id 'b92e878d-a674-4f51-aeea-88da0227e288' on site wohnzimmer
[09:02:16] [AudioServer] finished playing wav with id 'b92e878d-a674-4f51-aeea-88da0227e288'
[09:02:16] [Nlu] was asked to parse input "jalousie küche runter"
[09:02:16] [Nlu] detected intent Thyraz:SetNumeric with probability 0.910 for input "jalousie küche runter"
              Slots ->
                 Change -> runter
[09:02:16] [Dialogue] New intent detected Thyraz:SetNumeric with probability 0.910
              Slots ->
                 Change -> runter
[09:02:17] [Nlu] was asked to parse input "'standardgerät' 'standardraum' runter"
[09:02:17] [Nlu] detected intent Thyraz:SetNumeric with probability 0.783 for input "'standardgerät' 'standardraum' runter"
              Slots ->
                 Device -> Standardgerät
                   Room -> Standardraum
                 Change -> runter
[09:02:17] [Dialogue] was ask to end session with id 65a791cc-ed8f-463f-b4b4-a7bf44b3b845 by saying 'Da ist etwas schief gegangen.'
[09:02:17] [Tts] was asked to say "Da ist etwas schief gegangen."

jowe

@Thyraz: Danke für den Hinweis, ich dachte ich bräuchte noch ein zusätzliches Snips-device um die MQTT Befehle zu publishen. Hotword Erkennung ein- und ausschalten funktioniert einwandfrei mit
set SnipsMQTT publish hermes/hotword/default/toggleOff und
set SnipsMQTT publish hermes/hotword/default/toggleOn

Perfekt!
Kleiner Nachtrag: oben Beschriebenes Vorgehen funktioniert wohl leider doch nicht, Snips reagiert doch weiterhin auf das Hotword

Zum Thema PS3 Eye und Respeaker: Ich habe beide Varianten. Ich habe das Gefühl, dass der Respeaker etwas besser funktioniert. Aber ein großer Unterschied ist es nicht. Ich habe den Respeaker mit einem PI0 und dem Adafruit Speaker (der gleiche wie im Makers Kit) als Satellite laufen und bin begeistert über die geringe Größe. Allerdings bekomme ich einige Sachen noch nicht hin, leider ist die Doku zum Makers Kit nicht wirklich umfangreich:
Lautstärke des Lautsprechers stellt sich nach Reboot wieder auf Maximum, trotz sudo alsactl store.
Den Button auf dem Board kann ich noch nicht nutzen, da ich es noch nicht hinbekomme bei Tastendruck ein mqtt-publish auszulösen
Die drei LEDs bekomme ich auch noch nicht gezielt angesteuert

Übrigens braucht der Respeaker keine eigene Stromversorgung, funktioniert super mit Stromversorgung über den Pi.
Alles in Allem würde ich aber trotzdem eher den Respeaker anstatt das Eye3 empfehlen. Zumal die o.g. Themen lösbar sein sollten. Vielleicht hilft das ja jemandem bei der Wahl eines geeigneten Micros.