NEWS
[Aufruf] Adapter: Snips - Offline Speak2Text
-
Werfe den hier mal noch in den raum
https://www.adafruit.com/product/3369?gclid=EAIaIQobChMIv9_4sJ2h2gIVGIezCh0OsQKgEAQYDSABEgIxgfD_BwE
-
Ich bin nicht so scharf auf einen Speaker. Bei mir gehts vorranging um die Spracheingabe. Aber schaut eich doch mal das hier an. Vielleicht ist das eine Alternative.
https://github.com/Psychokiller1888/SnipsSonosInvader
https://laurentchervet.wordpress.com/category/snips/page/2/Ich kümmere mich um das Gehäuse, aber wie bereits erwähnt... Mal sehen was beim 3d Druck rauskommt.
-
@Wal
Ich hab mal im testing Branch einen Vorschlag eingestellt. Es werden damit für jeden Satelliten eigene Datenpunkte für die Slots bei erster Benutzung des Geräts erstellt.Das Problem mit dem Ziel der Ausgabe ist aber noch nicht behoben. Weiterhin das default Gerät.
-
@unltdnetworx sagte in [Aufruf] Adapter: Snips - Offline Speak2Text:
@Wal
Ich hab mal im testing Branch einen Vorschlag eingestellt. Es werden damit für jeden Satelliten eigene Datenpunkte für die Slots bei erster Benutzung des Geräts erstellt.Das Problem mit dem Ziel der Ausgabe ist aber noch nicht behoben. Weiterhin das default Gerät.
@unltdnetworx,
ich hätte das evtl. ein wenig anders gelöst.
Wenn das Feld room leer bleibt, wird die roomid mit an t2c gesendet, dadurch bleibt die Anzahl der Slots gleich.
Lass dir das mal durch den Kopf gehen. -
Das stimmt. Das Problem ist aber, wenn zwei Satelliten etwa in ähnlicher Zeit benutzt werden, dann haben wir ein Problem mit der Ausgabe aufgrund t2c.
Beispiel:
Ich sage Snips "Gute Nacht". Dann wird bei mir einiges ausgeführt. Alle möglichen Geräte ausgeschaltet, evtl. Müllabfuhr für den nächsten Tag angekündigt, Wetterbericht für die Nacht und den nächsten Tag abgefragt. Das dauert ein klein wenig.Angenommen, es wird gleichzeitg in einen anderen Satelliten gesprochen, z.B. nur die Uhrzeit. Das geht erheblich schneller, auch wenn nur Millisekunden. Bevor aber die Ausgabe der ersten Antwort erfolgen kann, nämlich an Satellit 1, wird die Variable schon mit der ID von Satellit 2 überschrieben und beide Antworten kommen auf Gerät 2 an.
Evtl. müssen wir ein ganz anderen Weg wählen? Irgendeine Form von ID der Anfrage an t2c übergeben und auch entsprechend antworten lassen. Dann aber vermutlich nur mit eigenen Skripten in t2c.
-
@unltdnetworx ,
ich verstehe, wird nicht einfach. -
Kann man die Dialog ID auswerten/verwenden?
-
@unltdnetworx sagte in [Aufruf] Adapter: Snips - Offline Speak2Text:
Kann man die Dialog ID auswerten/verwenden?
Muss ich mir mal mit einem MQTT-Log anschauen.
-
@Wal Ich bein kein Software Experte aber in mir bekannten Client-Server Applikationen wird so etwas in einer "Session" verarbeitet. Stichwort Sessioncookie. In Node git es ein Modul Session. Vielleicht ist das dafür zu gebrauchen
-
Das Hauptproblem wird sein, dass t2c nur einen Datenpunkt als Rückgabe setzen kann.
-
@AndiM said in [Aufruf] Adapter: Snips - Offline Speak2Text:
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. `
Hatte Frank nicht auch Variante B ??Kenn die Installation von Frank net so genau, aber meine VM hat eine "virtuelle" Soundkarte und würd vermutlich auch als "Satellit" bzw. "Client" laufen.
Hab leider nicht die Hardware da um das zu testen. Ich hab den Snips ohne "Soundkarte" gar nicht installiert bekommen ..
Ich habe Probleme mit meiner Client-Server Umgebung.
Auf dem Snips Server beleiben immer wieder die Services stehen. sam status zeigt "Idle".
Habe jetzt die Services wieder am laufen. Injects gehen aber wieder nicht.Connected to device localhost OS version ................... Debian GNU/Linux 9 (stretch) Installed assistant .......... ASSI-1 Language ..................... de Hotword ...................... hey_snips ASR engine ................... snips Status ....................... Live Service status: snips-analytics .............. 0.60.12 (not running) snips-asr .................... 0.60.12 (running) snips-audio-server ........... 0.60.12 (not running) snips-dialogue ............... 0.60.12 (running) snips-hotword ................ 0.60.12 (running) snips-nlu .................... 0.60.12 (running) snips-skill-server ........... 0.60.12 (not running) snips-tts .................... 0.60.12 (running)
sam watch bei inject:
[23:02:29] Watching on 127.0.0.1:1880 (MQTT) [23:02:35] [Injection] an injection of 1 words for 1 entities has been requested
@AndiM: Bei dier ist der Master mit einer Soundkarte ausgerüstet, richtig?
gehen bei dir die Injects wenn der audio-server gestoppt ist?Ist ein Audio-Server bei injects notwendig? Die Rückmeldung kommt ja von ASR und NLU.
Edit:
Habe ein USB Headset an der VM angeschlossen und den danach audio-server starten können.
Injects gehen auch bei laufendem audio-server nicht.Ich verstehe die Funktion des Eintrags im snips.toml auf dem Master immer noch nicht richtig:
Meldet man hiermit die Satteliten am Master an? (kitchen ist ein Sattelit)
[snips-audio-server]
bind = "kitchen@mqtt"
-
@frank70 sagte in [Aufruf] Adapter: Snips - Offline Speak2Text:
Ist ein Audio-Server bei injects notwendig?
Für die injects musst du lediglich den den Dienst installieren und sollte dann normalerweise laufen:
sudo apt-get install -y snips-injection
@frank70 sagte in [Aufruf] Adapter: Snips - Offline Speak2Text:
[snips-audio-server]
bind = "kitchen@mqtt"Du musst beim Audio Server immer den Namen des Satelliten eintragen.
[snips-common] mqtt = "YOUR_BASE_IP/HOST_NAME:1883"
Bei Snips Common deinen Server. Z.B. Server.fritz. box:1883
Kann es sein, dass du das Gerät evtl. neugestartet hast und die jeweiligen Server nicht neustarten?
-
@frank70 said in [Aufruf] Adapter: Snips - Offline Speak2Text:
Habe ein USB Headset an der VM angeschlossen und den danach audio-server starten können.
Injects gehen auch bei laufendem audio-server nicht.servus,
brauchst auch nicht ...
schau mal mit "sam service log" ob er nicht versucht irgend welche Dienste zu starten, was das System ausbremst, bzw. siehst damit auch warum er die Injects net schafft.Services welche er starten will aber nicht benötigt werden kannst übrigens mit:
sudo systemctl disable/enable snips-?????????.service
de- oder aktivieren.
lg
-
Hier mal meine Config:
Snips-Server:Connected to device localhost OS version ................... Debian GNU/Linux 9 (stretch) Installed assistant .......... ioBroker Language ..................... de Hotword ...................... hey_snips ASR engine ................... snips Status ....................... Live Service status: snips-analytics .............. (not running) snips-asr .................... 0.60.8 (running) snips-audio-server ........... 0.60.8 (running) snips-dialogue ............... 0.60.8 (running) snips-hotword ................ 0.60.8 (running) snips-nlu .................... 0.60.8 (running) snips-skill-server ........... 0.60.8 (not running) snips-tts .................... 0.60.8 (running)
[snips-common] bus = "mqtt" mqtt = "localhost:1500" # audio = ["+@mqtt"] # assistant = "/usr/share/snips/assistant" # user_dir = "/var/lib/snips" [snips-audio-server] # frame = 256 bind = "livingroom@mqtt" # mike = "Built-in Microphone" # disable_playback = false [snips-hotword] # model = "/usr/share/snips/hotword" # hotword_id = "default" # sensitivity = "0.5" audio = ["livingroom@mqtt", "kitchen@mqtt"]
Satellit:
Connected to device localhost OS version ................... Raspbian GNU/Linux 9 (stretch) Installed assistant .......... Not installed Status ....................... Live (no assistant) Service status: snips-analytics .............. (not running) snips-asr .................... (not running) snips-audio-server ........... 0.60.12 (running) snips-dialogue ............... (not running) snips-hotword ................ (not running) snips-nlu .................... (not running) snips-skill-server ........... (not running) snips-tts .................... (not running)
[snips-common] # bus = "mqtt" mqtt = "192.168.111.5:1500" # audio = ["+@mqtt"] # assistant = "/usr/share/snips/assistant" # user_dir = "/var/lib/snips" [snips-audio-server] # frame = 256 bind = "kitchen@mqtt" # mike = "Built-in Microphone" # disable_playback = false # disable_capture = false
Injection geht mit dieser Config bei mir.
Edit: snips-injection ist nur auf dem Server installiert.
-
@unltdnetworx Ich habe den install cmd für den snips-injection service nochmals ausgeführt.
Jetzt funktionieren die Injects wieder! Verstaden habe ich es ehrlich gesagt nicht ganz.Wegen dem angeblich falschen Repository bei sam init habe ich die Installation auf der VM ja mit:
"apt install -y alsa-utils snips-platform-voice snips-skill-server snips-watch curl unzip"und nach der Node installation mit:
"npm install -g snips-sam" installiertSollte dabei der injection-service nicht mit installiert worden sein?
-
@AndiM
Merci! Guter Hinweis. Ich habe den Skill-Server und den Audio-Server deaktiviert. Die Errors im logfile sind jetzt weg! -
@Wal Snips-Injection war natürlich auf den Satteliten auch installiert, weil ich die Geräte ursprünglich als Standalone-Device installiert habe.
Nächste Woche bekomme ich hoffentlich meinen Gehäuse Prototypen (habe selbst noch keinen Drucker). Soll ich nochmal versuchen das Jabra mit einem PiZero im Gehäuse zu positionieren oder habt ihr das als "zu teuer" verworfen?
-
@frank70 sagte in [Aufruf] Adapter: Snips - Offline Speak2Text:
@Wal Snips-Injection war natürlich auf den Satteliten auch installiert, weil ich die Geräte ursprünglich als Standalone-Device installiert habe.
Nächste Woche bekomme ich hoffentlich meinen Gehäuse Prototypen (habe selbst noch keinen Drucker). Soll ich nochmal versuchen das Jabra mit einem PiZero im Gehäuse zu positionieren oder habt ihr das als "zu teuer" verworfen?
Lass es erst mal gut sein, wenn es mal gut funktioniert sprechen wir nochmal darüber.
-
Hallo,
zwei kurze Fragen:-
Wenn ich einen Satelliten installiere, kann ich dann in Iobroker dafür eine extra Text2Command Instanz verwenden, oder läuft der Satellit über die Text2Command des Main?
-
Wäre es eine Idee/ist es möglich Snips nur für Sprachausgabe zu verwenden? Bzw. eine Sprachausgabe synchron auf allen Snips Instanzen auszugeben?
-
-
Ok, ich habe jetzt ausprobiert:
einen Master + ein Satellite
Beide Eingabe gehen über eine Iobroker-Snips Instanz zu einem Text2Command Adapter, logisch - keine Überraschung.zwei Master
Jeder Snips geht auf eine Iobroker_Snips Instanz, aber es bringt nichts, dass man 2 Text2Command Adapter installiert, die verhalten sich wie einerHintergrund meiner Fragen:
2 Zimmer: zb: Bad und Küche
Wie mache ich es, dass, wenn ich in der Küche "Licht an" sage, in der Küche das Licht an geht und wenn ich im Bad "Licht an" sage, das Licht im Bad an geht, bzw auch im richtigen Raum die Antwort erfolgt?