NEWS
[Aufruf] Adapter: Snips - Offline Speak2Text
-
0.3.1 wäre die richtige Version. `
Hey Michael,
0.3.1 ist die richtige Version!
Läuft bei mir jetzt mit dem Snips Server (Debian VM) und den 2 Raspbis als Satteliten in der "B-Konfiguration"
Edit:
zu früh gefreut….
Michael, kann es sein dass der adapter hardcoded "site default" verwendet?
hier sam watch von einem Standalone-Snips. In der Konfigurationr wird der snips0.recieve.text geschrieben
[AudioServer] was asked to play a wav of 93.1 kB with id 'cef5b63c-589e-4b9e-8634-437a5e1c94ea' on site default
In der Satteliten Konfiguration ist die SiteId nicht mehr default, da jeder Sattelit eine eigene ID hat. Hier im Bsp. "living"
sam watch von meinem Snips-Server. der snips0.recieve.text wird nicht geschrieben
[AudioServer] was asked to play a wav of 61.1 kB with id '1c7f7c1a-832b-48d1-a2ac-aa099fbdab10' on site living
-
Ich habs befürchtet. Schaus mir an.
Zusammengefasst:
Standardinstallation funktioniert
Satelliten (noch) nicht
-
genau!
wobei ich es nicht ganz nachvollziehen kann weshalb beim ersten mal nach Installation der 0.3.1 Version es lief.
Vielleicht habe ich bei den 3 consolen und 3 snips.toml files auch den Überblick verloren und eine Standalone config aktiv gehabt
-
hi Frank,
Hab gestern auch ein Satellitensystem aufgesetzt (Proxmox VM, Debian-Stretch als Snipsserver), lauft auch soweit bis auf die Rückmeldungen.
Ohne deinen Beitrag vorher gelesen zu haben hat es mich auch bei dem "on site default" aufgestossen, snipes.toml sollten aber nach kurzen drüberschauen in der Früh passen.
der snips0.recieve.text wird bei mir geschrieben …
Adapter-V = 0.3.1, Assistant nur auf Server und upgedatet
[AudioServer] was asked to play a wav of 93.1 kB with id 'cef5b63c-589e-4b9e-8634-437a5e1c94ea' on site default
In der Satteliten Konfiguration ist die SiteId nicht mehr default, da jeder Sattelit eine eigene ID hat. Hier im Bsp. "living"
sam watch von meinem Snips-Server. der snips0.recieve.text wird nicht geschrieben `
lg
Andi
-
Das war auch meine Vermutung. Im Adapter wird die Site nicht extra ausgewertet. Darum hatte ich ja nach Variante A oder B gefragt. Muss ich mich noch genauer informieren, aber ich denke, dass die Verarbeitung bei Variante A über die VM läuft. Bei B auf den jeweiligen Satelliten.
Evtl. kannst du mal zwei Ausgaben aus Sam Posten. Einmal mit einer Auswertung vom Single und dann Satelliten. Ich denke, dass beim Satelliten keine ASR und NLU Ausgaben auftauchen dürften.
-
Kurz OT dazwischen:
Worauf habt ihr eure VMs laufen? Also Hardware und evtl. ungefähre Anschaffungskosten.
Hab momentan alles in Docker auf einer Synology und bin mittelmäßig zufrieden. Gerade, wenn Updates o.ä. für die Syno kommen muss ich neustarten und hab dann ab und an Probleme.
-
Die Auswertung der Sites wäre natürlich auch noch interessant. Dann könnte man evtl. den Snips Geräten Räume zuweisen und diese dann als Standardraum hinterlegen, falls kein Raum gesagt wurde.
Beispiel:
Snips im Wohnzimmer: "Schalte den Fernseher ein"
Snips im Schlafzimmer: "Schalte den Fernseher im Wohnzimmer ein"
Die Frage wäre nur, was passiert, wenn auf zwei Geräten gleichzeitig eingesprochen wird.
Bei dir klappt es mit Satelliten und einer Instanz des Adapters? Könntest du evtl. eine Sam Ausgabe posten, wenn auf zwei Geräten in etwa gleichzeitig eingesprochen wird?
Ich glaube, dass Du für deine Variante eine Instanz des Adapters pro Snips Gerät brauchst.
-
Kurz OT dazwischen:
Worauf habt ihr eure VMs laufen? Also Hardware und evtl. ungefähre Anschaffungskosten.
Hab momentan alles in Docker auf einer Synology und bin mittelmäßig zufrieden. Gerade, wenn Updates o.ä. für die Syno kommen muss ich neustarten und hab dann ab und an Probleme. `
Hi Michael,
Nur meine Meinung: Ich finde Docker, VM u.s.w für überbewertet. Ich habe mir letztes Jahr 3 Teile von diesen https://www.mydealz.de/deals/vorke-v1-p … pc-1233933 geordert und betreibe meinen ioBroker, TestioBroker und div. andere Serveranwendungen drauf. Ich kann mir nicht vorstellen, das man mit VM's ein besseres Preis/Leistungs - Verhältnis hinbekommt. Wie gesagt nur meine Meinung.
-
Kurz OT dazwischen:
Worauf habt ihr eure VMs laufen? Also Hardware und evtl. ungefähre Anschaffungskosten.
Hab momentan alles in Docker auf einer Synology und bin mittelmäßig zufrieden. Gerade, wenn Updates o.ä. für die Syno kommen muss ich neustarten und hab dann ab und an Probleme. `
Hallo Michael,
Habe einen HP DL 380 G6 Server, 64GB RAM 2X QuadCore XEON 2,8GHZ als ESXi.
Datastore ist ein Synology Eigenbau (XPENOLOGY DS3615 Image mit DSM 6.1.7) mit Intel i3 CPU, Asus Serverboard und SSD Storage für virtualisierte Clients. Server laufen bei mir auf WD oder Seagate NAS Platten.
Erfahrungswerte: Anschaffungskosten sind nicht so entscheidend. Der Betrieb kostet…..
NAS: 800€
HP Server damals 300€ (3 Jahre alt nach Leasing Ablauf direkt aus einem Rechenuzentrum) kostet heute bei eBay 200€-ohne teure SAS Platten.
Vielleicht ist ein NUC als ESXi für dich geeignet. Ich habe die NFS Datastores auf der Syno für den ESXi direkt mit CAT6Kabel in eigenen Subnets ohne Switch angeschlossen. ESXi VM's laufen auf der Syno auf eigen Platten.
-
Die Auswertung der Sites wäre natürlich auch noch interessant. Dann könnte man evtl. den Snips Geräten Räume zuweisen und diese dann als Standardraum hinterlegen, falls kein Raum gesagt wurde.
Beispiel:
Snips im Wohnzimmer: "Schalte den Fernseher ein"
Snips im Schlafzimmer: "Schalte den Fernseher im Wohnzimmer ein"
Die Frage wäre nur, was passiert, wenn auf zwei Geräten gleichzeitig eingesprochen wird.
Bei dir klappt es mit Satelliten und einer Instanz des Adapters? Könntest du evtl. eine Sam Ausgabe posten, wenn auf zwei Geräten in etwa gleichzeitig eingesprochen wird?
Ich glaube, dass Du für deine Variante eine Instanz des Adapters pro Snips Gerät brauchst. `
also ganz ohne Snips-Server?
-
Da bin ich mir eben nicht sicher. Ich würde auch so etwas planen, wie bei dir. Also einen Snips-Server und Satelliten dazu. Aber ich würde wohl die andere Variante wählen. Damit die Auswertung etc. auf dem Server läuft. Nur das Hotword und die Ausgabe auf dem jeweiligen Satelliten.
Muss mich aber noch genauer einlesen.
Edit: Sieht so aus, als wäre der Hotword Server der einzige Unterschied der Satellit Varianten. Also ist Variante B wohl doch besser. Weniger Traffic zwischen Host und Satellit.
-
melde dich wenn du was testen möchtest. Ich stelle meine Umgebung dazu gerne zur Verfügung oder willst du meine Debian VM haben?
-
Am Besten wäre, wen du mal die Debug Ausgabe postest. (mit Code-Tags). Möchte nur sehen, ob dort ASR und NLU ankommt und wenn ja, in welcher Form.
-
Da die Version jetzt stabil läuft und der Grund, warum es beim Satelliten nicht läuft wohl eher in der Installation zu suchen ist, würde doch eine Versionshebung in npm und Github auf 1.0.0 gerechtfertigt erscheinen. Was meinst du?
Dann könnten wir die Version ins Stable repository stellen und die Funktion für die Erkennung von Satelliten im Test-branch testen.
-
Ok, können wir machen.
-
Antrag auf Aufnahme im Repo wäre soweit. Sobald du die Version gehoben hast, schicke ich ab.
-
Am Besten wäre, wen du mal die Debug Ausgabe postest. (mit Code-Tags). Möchte nur sehen, ob dort ASR und NLU ankommt und wenn ja, in welcher Form. `
so?
sam watch:
[22:09:57] Watching on 192.168.90.44:1880 (MQTT)
[22:10:05] [Hotword] detected on site living, for model default
[22:10:05] [Asr] was asked to stop listening on site living
[22:10:05] [Asr] was asked to stop listening on site living
[22:10:05] [Hotword] was asked to toggle itself 'off' on site living
[22:10:05] [Dialogue] session with id 'b95aecaa-131c-4651-844d-28293823a97a' was started on site living
[22:10:05] [AudioServer] was asked to play a wav of 41.1 kB with id '599a6845-afda-4268-8d13-47660eda5632' on site living
[22:10:05] [Hotword] was asked to toggle itself 'off' on site living
[22:10:05] [Dialogue] session with id 'e74f4918-52fb-4eed-9ffc-40355cc301b3' was started on site living
[22:10:05] [AudioServer] was asked to play a wav of 41.1 kB with id 'f71f6e53-ea16-4d20-a889-40c9a0929c0c' on site living
[22:10:05] [AudioServer] finished playing wav with id '599a6845-afda-4268-8d13-47660eda5632'
[22:10:05] [Asr] was asked to listen on site living
[22:10:06] [AudioServer] finished playing wav with id 'f71f6e53-ea16-4d20-a889-40c9a0929c0c'
[22:10:06] [Asr] was asked to listen on site living
[22:10:10] [Asr] captured text "" in 4.0s
[22:10:10] [Asr] was asked to stop listening on site living
[22:10:10] [Asr] captured text "" in 4.0s
[22:10:10] [AudioServer] was asked to play a wav of 93.1 kB with id 'f08b0071-cfac-4b4e-976b-63f41e02cd71' on site living
[22:10:10] [AudioServer] was asked to play a wav of 61.1 kB with id '34524288-4ff7-404c-b309-3fb9570aecc3' on site living
[22:10:11] [AudioServer] finished playing wav with id 'f08b0071-cfac-4b4e-976b-63f41e02cd71'
[22:10:12] [AudioServer] finished playing wav with id '34524288-4ff7-404c-b309-3fb9570aecc3'
[22:10:12] [Dialogue] session with id 'b95aecaa-131c-4651-844d-28293823a97a' was ended on site living. The session was ended because an error happened: Event not supported: Response { waiting: AudioFinishedPayload }, with response: AsrCapture(AsrPayload { text: "", tokens: Some([]), likelihood: 0.0, seconds: 4.0 })
[22:10:12] [Asr] was asked to stop listening on site living
[22:10:12] [Hotword] was asked to toggle itself 'on' on site living
adapter debug:
snips.0 2019-02-08 22:07:45.624 debug stateChange snips.0.hotword.wait: {"val":true,"ack":true,"ts":1549660065621,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1549660055938}
snips.0 2019-02-08 22:07:35.941 debug stateChange snips.0.hotword.detected: {"val":false,"ack":true,"ts":1549660055940,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1549660055940}
snips.0 2019-02-08 22:07:35.940 debug stateChange snips.0.hotword.wait: {"val":true,"ack":true,"ts":1549660055938,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1549660055938}
snips.0 2019-02-08 22:07:28.852 debug stateChange snips.0.hotword.detected: {"val":true,"ack":true,"ts":1549660048850,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1549660048849}
snips.0 2019-02-08 22:07:28.851 debug stateChange snips.0.hotword.wait: {"val":false,"ack":true,"ts":1549660048850,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1549660048845}
snips.0 2019-02-08 22:07:28.850 debug stateChange snips.0.hotword.detected: {"val":true,"ack":true,"ts":1549660048849,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1549660048849}
snips.0 2019-02-08 22:07:28.849 debug stateChange snips.0.hotword.wait: {"val":false,"ack":true,"ts":1549660048845,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1549660048845}
snips.0 2019-02-08 22:07:28.801 debug stateChange snips.0.hotword.detected: {"val":false,"ack":true,"ts":1549660048800,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1549641709759}
snips.0 2019-02-08 22:05:03.994 debug stateChange snips.0.info.connection: {"val":true,"ack":true,"ts":1549659903989,"q":0,"from":"system.adapter.snips.0","user":"system.user.admin","lc":1549619662167}
snips.0 2019-02-08 22:05:03.973 info Connected to 192.168.90.44
snips.0 2019-02-08 22:05:03.908 info Try to connect to mqtt://192.168.90.44:1880?clientId=0
snips.0 2019-02-08 22:05:03.826 info starting. Version 0.3.1 in C:/ioBroker/node_modules/iobroker.snips, node: v8.12.0
snips.0 2019-02-08 22:05:03.817 debug statesDB connected
snips.0 2019-02-08 22:05:03.800 debug objectDB connected
Edit: die unterschiedlichen Zeiten kommen daher, weil ich den Snips-Server nicht in der Domain habe. Die Snips-Zeit kommt nicht vom NTP, die des ioBrokers schon.
-
Vermutung bestätigt. NLU wird bei dir wohl auf dem Satelliten ausgeführt und nicht auf dem Server. Falls das der Server ist. Wenn es der Satellit war sieht es gut aus. Dann bitte nochmal vom Server.
Kannst du bitte im Forum um den Code noch Code Tags setzen? [ code] Ist einfacher zu lesen
-
Die Auswertung der Sites wäre natürlich auch noch interessant. Dann könnte man evtl. den Snips Geräten Räume zuweisen und diese dann als Standardraum hinterlegen, falls kein Raum gesagt wurde.
Beispiel:
Snips im Wohnzimmer: "Schalte den Fernseher ein"
Snips im Schlafzimmer: "Schalte den Fernseher im Wohnzimmer ein"
Die Frage wäre nur, was passiert, wenn auf zwei Geräten gleichzeitig eingesprochen wird.
Bei dir klappt es mit Satelliten und einer Instanz des Adapters? Könntest du evtl. eine Sam Ausgabe posten, wenn auf zwei Geräten in etwa gleichzeitig eingesprochen wird? `
moin,
ja, ich hab nur 1 Instanz vom Adapter am laufen …. hab leider noch keinen zweiten Satelliten zum Testen.
die Identifizierung der Satelliten dürfte nicht schwer sein, bekommst ja bei MQTT/Hermes des Servers die SiteId des Clients und auch eine SessionId mit
{"siteId":"snipswz.local.net","sessionId":"0c485175-f7a8-416f-99fb-6edef375a338"}
und wenn ich mir eure client.js ansehe
function send2Server(id, state, cn) { if (!client) return; switch (cn) { case 'say': client.publish(id, JSON.stringify({"siteId":"default","text":state,"lang":"de"}), ....
so stellt der kleine Andi sich das vor
edit:
@ unltdnetworx
ich denke die Verarbeitung bei Variante B läuft nur am Server, da ich am Satelliten keinen Assi instaliert habe … wobei da raunzt snips-dialogue dann irgenwas rum
offTop: hab einen Nuc bei einer Büroauflösung vor 2 Jahren bekommen und der macht Proxmox, da läuft schon ewig ein VPN-Server, ein TV-Headend inkl Oscam und nun auch IoBroker drauf. Snips-Server ist am VPN-Server drauf da der extrem gelangweilt ist. Wichtig ist glaub ich eine schnelle Platte (SSD) und RAM. Prozessorlast ist schwindend gering.
-
Die Verarbeitung läuft auf dem Server und genau da greifen wir die Daten von NLU ab. Bei Frank scheint das nicht so zu sein.