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

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

Vorheriges Thema - Nächstes Thema

Thyraz

So, neue Version mit MediaChannels:

Zitat Doku auf Github:

MediaChannels
Intent zum Abspielen von Radio-/Fernsehsendern, Favoriten, Playlists, ...

Anstatt im Attribut snipsMapping eingetragen zu werden,
wird Der Intent über ein eigenes Attribut snipsChannels im jeweiligen Gerät konfiguriert.
Grund dafür ist die mehrzeilige Konfiguration des Intents.

Um dem Device das neue Attribut hinzuzufügen, muss das Attribut userattr befüllt werden:
attr <deviceName> userattr snipsChannels:textField-long

Danach kann das Attribut snipsChannels befüllt werden.
Pro Zeile ein Eintrag im Format Channelbezeichnung:cmd
Channelbezeichnung ist der Name den ihr sprechen wollt, cmd der Set-Befehl des Geräts.
Dieser kann mit dem Format Device:cmd auch auf ein anderes Gerät verweisen.

Achtung: Die Sendernamen müssen Snips auch wieder per ASR Inject bekannt gemacht werden.
Nach dem Hinzufügen von neuen Sendern muss also wieder set <snipsDevice> updateModel ausgeführt werden.

Beispiele:
SWR3=favorite s_w_r_3
SWR1=favorite s_w_r_1
Das Ding=favorite das_ding
BigFM=favorite bigfm


Hinweis zu Befehlen ohne Nennung des Gerätenamens:
Um die Wiedergabe ohne Angabe eines Gerätes starten zu können,
muss das Modul bestimmen welches Ausgabegerät verwendet werden soll.
Hierzu sucht das Modul über das Attribut snipsChannels nach einem passenden Device.
Treffer im aktuellen (bzw. angesprochenen) Raum werden bevorzugt.

Beispielsätze:
ZitatSpiele SWR3 auf dem Radio im Büro
Spiele SWR1
Schalte um auf BigFM
Sender vom Radio auf Das Ding wechseln


Same procedure as every time:
- Assistent von console.snips.ai herunterladen und installieren (oder über sam install assistant) damit ihr die neuste FHEM App habt.
- Neues Snips Modul von Github einspielen
- Fhem neu starten
- set <snipsDevice> updateModel ausführen
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

shilbert

Es scheint im Snips Discord Hinweis zu geben, dass das mit Docker geht. Kann man die Instanz nicht starten oder nur die services nicht ? Ich würde mal vermuten, dass man den eigenen Assistenten reinladen muss bevor es funktioniert. 'sam install assistant .......' ? Es scheint da diverse Probleme mit dem Durchreichen von Audio zu geben.

bennebartsch

Ich habe Arch Linux mit Docker am laufen... Werde mir heute Abend mal eine eigene Dockerfile fertig machen und diese dann mit euch teilen :-)

bennebartsch

#273
Zitat von: shilbert am 30 August 2018, 14:55:08
Es scheint im Snips Discord Hinweis zu geben, dass das mit Docker geht. Kann man die Instanz nicht starten oder nur die services nicht ? Ich würde mal vermuten, dass man den eigenen Assistenten reinladen muss bevor es funktioniert. 'sam install assistant .......' ? Es scheint da diverse Probleme mit dem Durchreichen von Audio zu geben.

Audio muss ja nichtmal zwingend durchgereicht werden, möchte nur die meisten Dienste im Docker Container haben, die Satelliten brauchen ja jeweils nur einen Dienst auf dem Host OS.
Sobald ich den Container starte kommt eine Fehlermeldung, d.h. ich kann irgendwie gar nichts machen. Leider ist die Dockerfile auch nicht public

Edit: habe was interessantes gefunden:
https://github.com/MichaelHills/snips-pulse-docker

kud

Ich habe mal den Snips-Pi umgestellt.
Habe schon wieder eine Reaktion und wieder ohne Payload in FHEM. Gibt es irgendwo ein Log von Snips ? Habe es bisher nicht gefunden.
Edit: ein paar Stunden später
Payload
{"Device":"wasser","Type":"Helligkeit","input":"helligkeit wasser","intent":"GetNumeric","probability":"1","requestType":"voice","sessionId":"3ab98e00-f6b4-4cb8-89eb-f1dce4619fb2","siteId":"default"}
oder
{"Device":"licht","Room":"treppe","Value":"306","input":"unknownword zu film auf unknownword das weiter minus drei billionen licht im treppe auf drei hundert sechs","intent":"SetNumeric","probability":"0.33065122","requestType":"voice","sessionId":"103403d7-3d73-45d2-988c-cf7f38b067d2","siteId":"default"}
Langsam wirds lustig.  :-\ ...jedoch unbrauchbar.

jowe

@kud: Hast du die Sensitivity in /etc/snips.toml mal nach unten geschraubt? Das hat bei mir definitiv die false-positives deutlich verringert. Nachteil ist natürlich, dass man dann auch näher an das device heran gehen muss, damit das Hotword erkannt wird.
Falls nach dem Ändern der Sensitivity Snips nicht mehr starten sollte suche in mal in der Snips-Doku unter "Troubleshooting" nach mqtt persistence. Das hat bei mir das Problem gelöst...

Thyraz

Was mir gerade aufgefallen ist und gar nicht die Intention dafür war:

Mit dem neulich eingeführten Reading "voiceResponse" kann man Ausgaben von FHEM (falls man keinen Lautsprecher an Snips hat) über ein Notify auch problemlos z.B. an den say Befehl vom Sonos oder Text2Speech Modul weiterleiten.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

kud

Hab das teil erst einmal aus dem Wohnzimmer entfernt. Die Empfindlichkeit auch mal 0,4 gestellt.
Mal sehen wie es weitergeht....

bennebartsch

Zitat von: Thyraz am 31 August 2018, 13:35:43
Was mir gerade aufgefallen ist und gar nicht die Intention dafür war:

Mit dem neulich eingeführten Reading "voiceResponse" kann man Ausgaben von FHEM (falls man keinen Lautsprecher an Snips hat) über ein Notify auch problemlos z.B. an den say Befehl vom Sonos oder Text2Speech Modul weiterleiten.

Wie kann man dann die TTS-Engine von SNIPS komplett deaktivieren?

enno

Zitat von: bennebartsch am 31 August 2018, 13:56:27
Wie kann man dann die TTS-Engine von SNIPS komplett deaktivieren?

...oder wie kann man TTS-Engine von SNIPS auf ein besseres Niveau ohne Amazon oder Google, sprich nur local, bringen. Wenn ich die Texte von Snips vorlesen lasse ist die Aussprache gruselig. Auf meinen Tablet und Fully klingt es menschlicher.

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC mit Proxmox und Debian

Thyraz

Zitat von: bennebartsch am 31 August 2018, 13:56:27
Wie kann man dann die TTS-Engine von SNIPS komplett deaktivieren?

Ich würde mal schätzen, man kann den ganzen snips-audio-server.service deaktivieren.
Ohne Lautsprecher an Snips bringt der einem ja nicht viel.

Da fällt mir noch was ein:
Auch ein kurzer Sound bei Hotword-Erkennung ist mit dem Modul schon möglich.
Einfach auf das listening_<roomname> Reading lauschen.
Wenn das auf 1 geht über das Audiogerät eurer Wahl in FHEM einen kurzen Sound ausgeben.

Zitat von: enno am 31 August 2018, 14:01:43
...oder wie kann man TTS-Engine von SNIPS auf ein besseres Niveau ohne Amazon oder Google, sprich nur local, bringen. Wenn ich die Texte von Snips vorlesen lasse ist die Aussprache gruselig. Auf meinen Tablet und Fully klingt es menschlicher.

Gute Frage.

Ich bin daher auf Amazon Polly umgestiegen, wie in der Github Readme beschrieben.
Die Online-Lösungen scheinen hier einfach besser zu sein, als das was man lokal installieren kann.
Fully läuft ja sicher auch online, oder?

Ich finde das aber auch nicht so wild, die Texte die ich im SmartHome ausgebe kann Amazon/Google gerne haben.
Die Angst bei den Online-Sprachassistenten ist ja eher, dass sie mitlauschen können, ohne dass man es theoretisch bemerkt.

Sprich: Mikrofon und Spracherkennung von Google/Amazon abzukoppeln halte ich den größeren Gewinn,
als Text2Speech.

Muss aber jeder selbst wissen, ob er brisante Daten über TTS sprechen lässt, oder nur "Ok", "Wohnzimmer hat 24°C", "Wäsche ist fertig". ;)
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

kud

Ist zwar offtopic aber kann mal Jemand auf die Schnelle schauen warum das notify nicht reagiert ;-((
Snips:voiceResponse:.* {set LocalTTS tts $EVENT}

Thyraz

Hast du mal im Event Monitor geschaut ob ein Event auftritt?

Hab gerade nochmal im Code geschaut, ich ändere das Reading eigentlich mit Event-Triggerung.
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

kud

Ja Event wird erzeugt:
2018-08-31 15:11:31 SNIPS Snips voiceResponse: Die Temperatur von büro beträgt 24,4 Grad.

Thyraz

Ich bin zu doof, ich seh's nicht. 😉

Sicher, dass er nicht triggert (und nicht Evtl. etwas mit dem auszuführenden Cmd schief geht?)
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...