Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. [Aufruf] Adapter: Snips - Offline Speak2Text

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Aufruf] Adapter: Snips - Offline Speak2Text

    This topic has been deleted. Only users with topic management privileges can see it.
    • Wal
      Wal Developer last edited by

      Die Felder bleiben leer, weil du nicht mit dem iobroker Assistenten von Michael arbeitest, sondern mit dem ioBroker-Snips Assistenten von Equilora

      1 Reply Last reply Reply Quote 0
      • L
        Linedancer last edited by

        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.

        1 Reply Last reply Reply Quote 0
        • Wal
          Wal Developer last edited by

          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.

          1 Reply Last reply Reply Quote 0
          • H
            Hanni1312 last edited by

            @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.

            17844_snips3.jpg

            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"?

            1 Reply Last reply Reply Quote 0
            • unltdnetworx
              unltdnetworx Developer last edited by

              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.

              1 Reply Last reply Reply Quote 0
              • ___manalishi
                ___manalishi last edited by

                @unltdnetworx:

                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.

                1 Reply Last reply Reply Quote 0
                • unltdnetworx
                  unltdnetworx Developer last edited by

                  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.

                  1 Reply Last reply Reply Quote 0
                  • unltdnetworx
                    unltdnetworx Developer last edited by

                    @Frank:

                    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?

                    1 Reply Last reply Reply Quote 0
                    • ___manalishi
                      ___manalishi last edited by

                      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?

                      1 Reply Last reply Reply Quote 0
                      • unltdnetworx
                        unltdnetworx Developer last edited by

                        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?

                        1 Reply Last reply Reply Quote 0
                        • unltdnetworx
                          unltdnetworx Developer last edited by

                          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. 😉

                          1 Reply Last reply Reply Quote 0
                          • smartboart
                            smartboart last edited by

                            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...
                            6558_unbenannt.png

                            1 Reply Last reply Reply Quote 0
                            • smartboart
                              smartboart last edited by

                              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... 6558_unbenannt.png

                              1 Reply Last reply Reply Quote 0
                              • smartboart
                                smartboart last edited by

                                @unltdnetworx:

                                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...

                                1 Reply Last reply Reply Quote 0
                                • unltdnetworx
                                  unltdnetworx Developer last edited by

                                  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.

                                  1 Reply Last reply Reply Quote 0
                                  • smartboart
                                    smartboart last edited by

                                    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

                                    1 Reply Last reply Reply Quote 0
                                    • unltdnetworx
                                      unltdnetworx Developer last edited by

                                      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.

                                      1 Reply Last reply Reply Quote 0
                                      • unltdnetworx
                                        unltdnetworx Developer last edited by

                                        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.

                                        1 Reply Last reply Reply Quote 0
                                        • smartboart
                                          smartboart last edited by

                                          @unltdnetworx:

                                          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

                                          1 Reply Last reply Reply Quote 0
                                          • unltdnetworx
                                            unltdnetworx Developer last edited by

                                            Mute ist kein Problem. Bei 100 und 0 sollten wir uns evtl. was anderes einfallen lassen. Zum einen könnte das mit Zahlen kollidieren, zum Anderen kann man seine Anlage ja auch in dB steuern, also nicht in Prozent.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.1k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            snips
                                            43
                                            635
                                            127924
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo