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

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

Vorheriges Thema - Nächstes Thema

Steffen

Hallo!

Jetzt habe ich doch nochmal eine frage an euch zum Thema Hotword, denn wer von euch nutzt das Persönliche Hotword und könnte seine Erfahrungen hier teilen?

Das Problem ist das das Hotword bei mir wirklich gut klappte, dann kam meine Frau nach Hause und bei Ihr reagierte es gar nicht und Sie hat es wirklich oft versucht auch bei meinem Sohn kein Erfolg.

Reagiert das Persönliche Hotword dann nur auf die eine Stimmfarbe?

Mfg Steffen

marwal

Hallo Steffen,
bei dem Schritt wo du dein wakeword aufnimmst, werden *.wav Dateien angelegt. Die dienen dann bei der Erkennung als Referenz.
Du könntest für jede Person ein eigenen wakeword anlegen, oder mit der sensitivity zu spielen.

Ich persönlich habe mehrere angelegt. Wenn ich bei mir die sensitivity zu gering einstelle, springt snips auch gern mal beim Fernsehen durch vermeintlich verstandene wakewords an.
Mehrere musst du dann in der /etc/snips.toml so angegeben:

model = ["<new_path_to_your_model_1>=<sensitivity_1>", "<new_path_to_your_model_2>=<sensitivity_2>"]

LG
Martin

laberlaib

Zitat von: Steffen am 26 März 2019, 09:32:32
Ok danke nun habe ich es geschafft das Hotword zu ändern,
dann habe ich mit Shortcuts geschafft die Sätze abzubilden aber wie kann ich sie nun in Fhem auslesen???

in den Readigs tauchen sie leider nicht auf:

[Asr] captured text "die kinder gehen ins bett" in 3.0s
[09:20:04] [Nlu] detected intent Thyraz:Shortcuts with confidence score 1.000 for input "die kinder gehen ins bett"
              Slots ->
                 Shortcut -> die kinder gehen ins bett (confidence: 1.000)
[09:20:04] [Dialogue] New intent detected Thyraz:Shortcuts with confidence 1.000
              Slots ->
                 Shortcut -> die kinder gehen ins bett (confidence: 1.000)


Mfg Steffen

Ich dachte, dass die Shortcuts einfache Sätze sind, die dann - wenn erkannt - direkt eine Funktion aufrufen?
Dann kannst du doch alles weitere in einer myUtils-Funktion abbilden?

wir gehen ins Bett=snipsShortcut2Reading("wirgeheninsbett")
die Kinder gehen ins Bett=snipsShortcut2Reading("diekindergeheninsBett")


### PSEUDOCODE ###
Sub snipsShortcut2Reading($){
    $satz = @;
    set userreading = $satz;
    ### oder gleich alles ausführen:####
    select case $satz:
         case "wirgehenisbett": set all off; set hauszustand Nachtruhe;
         case "diekindergeheninsbett": turn on tv; set tv channel RTL2;
    end select
}

Oder ist das nicht so?



   
   
--
Proxmox, Homematic, G-Tags, Zigbee2MQTT, Rhasspy Sprachsteuerung im Aufbau (beta)


Steffen

@laberlaib
vielen dank, ich werde diesen Ansatz gleich mal verfolgen, aber werde trotzdem den weg nun über deine Idee über Talk2Fhem gehen denn das Modul kann da auch noch nachbessern wenn die Sätze nicht korrekt erkannt werden, hatte manchmal den Fall das Snips erkannt hatte:
kinder gehen gehe bett und da kann Talk2Fhem einspringen.


Mfg Steffen

ahlermi

Bei den Shortcuts und Talk2Fhem gibt es auf jeden fall ein Problem, diese werden nicht im reading lastIntentPayload angezeigt und gelangen so auch nicht in das Reading input

Man könnte das natürlich über


attr Snips shortcuts wir gehen=setreading Snips input wir gehen

   
falls dann kein event geworfen wird so:

attr Snips shortcuts wir gehen=define a_Snips_tmp at +00:00:00 setreading Snips input wir gehen

lösen
PI4 FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, Siri, SNIPS auf PI3 mit Samson UB1, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisMax, SolvisClient, HUE, ESPEasy für Bayernlüfter, Harmony, Tasmota, JKBMS, EASUN

Prof. Dr. Peter Henning

ZitatReagiert das Persönliche Hotword dann nur auf die eine Stimmfarbe?
So etwas wie eine "Stimmfarbe" gibt es nicht. Wesentlicher Bestandteil einer Stimme sind die so genannten Formanten, das sind Oberwellen in periodischen Frequenzabständen - höchst individuell, und damit von starkem Einfluss auf das von Snips erstellte Modell.

Kurz gesagt: Zwei unterschiedliche Sprecher, ibs. verschiedenen Geschlechtes, benötigen in der Regel unterschiedliche Modelle.

Insofern ist Snips auch allen großen STT-Diensten unterlegen.

Ich werde darum Snips nur zur Hotword-Erkennung verwenden, und dann einen der großen Dienste dranhängen.

Zur Auswertung empfehle ich Euch, mal das Modul Babble anzusehen.

LG

pah

Steffen

Zitat von: Prof. Dr. Peter Henning am 27 März 2019, 18:03:04
So etwas wie eine "Stimmfarbe" gibt es nicht. Wesentlicher Bestandteil einer Stimme sind die so genannten Formanten, das sind Oberwellen in periodischen Frequenzabständen - höchst individuell, und damit von starkem Einfluss auf das von Snips erstellte Modell.

Kurz gesagt: Zwei unterschiedliche Sprecher, ibs. verschiedenen Geschlechtes, benötigen in der Regel unterschiedliche Modelle.

Insofern ist Snips auch allen großen STT-Diensten unterlegen.

Ich werde darum Snips nur zur Hotword-Erkennung verwenden, und dann einen der großen Dienste dranhängen.

Zur Auswertung empfehle ich Euch, mal das Modul Babble anzusehen.

LG

pah

aber beim Hotword liegt derzeit aber noch das Problem, denn mich erkennt Snips gut aber bei meiner Frau ist die Umsetzung sehr schlecht,
das merkt man schon bei der Aufnahme zum Persönlichen Hotword denn bei mir brauche ich ca.3-5 Versuche bei ihr manchmal deutlich mehr.

Könnt ihr mal bitte eure Erfahrungen hier mitteilen, ob ihr das Persönliche Hotword nutzt und ob welches Mikrofone ihr nutzt???


Mfg Steffen

lucca111

Moin,

habe versucht die Voice_ID von Snips-TTS-Polly "Marlene" auf "Vicki" oder "Hans" in der
snips-tts-polly.py zu ändern. Leider keine Änderung nach Service oder System Neustart.
Weiss jemand wie ich das ändern kann?

def tts_say(client, userdata, msg, voice="Marlene") -> None:

LG Lucca

ahlermi

Hmm, habe ich auch so gemacht, bei mir klappts:


vim /usr/src/snips-tts-polly/snips-tts-polly.py

systemctl stop snips-tts
systemctl disable snips-tts

systemctl enable snips-tts-polly
systemctl start snips-tts-polly
PI4 FHEM, PI3 FHEM, 6 x Echo mit talk2fhem, Siri, SNIPS auf PI3 mit Samson UB1, YeeLight, Homematic, MAX!, 433Mhz, LaCross, Xiaomi Vacuum V1, ESPEasy, Gardena, Telegram, FLOORPLAN, HEOS, Xiaomi Aqara, Sonoff, SolvisMax, SolvisClient, HUE, ESPEasy für Bayernlüfter, Harmony, Tasmota, JKBMS, EASUN

studger

Hallo zusammen,
ich habe mir auf Raspi 3 mit Hifiberry Amp+ und PS3 Eye als Mic,   Spips und LMS mit Squeezelite Player installiert. Snips funktioniert gut und gibt Audioausgabe über Hifiberry aus.
Mein Problem ist derzeit die Soundausgabe von Squeezelite Player.

Wenn ich in Squeezelite die Einstellungen so verändere: SL_SOUNDCARD="sysdefault:CARD=ALSA", dann funktioniert Snips (gibt Audio über Hifiberry aus)  aber es funktioniert Squeezelite  nicht.
                                                 bei der Einstellungen: SL_SOUNDCARD="sysdefault:CARD=sndrpihifiberry", es funktioniert Squeezelite  (gibt Audio über Hifiberry aus)  aber es funktioniert Snips nicht.

Hat jemand schon den Snips und LMS + Squeezelite und Hifiberry  erfolgreich eingerichtet?

Danke!




hkspks

Gibt es eine Möglichkeit, snips per Schalter in FHEM zu aktivieren/ zu deaktivieren (also den Service?). Hintergrund: Trotz langer Hotword-Konfiguration springt der gute manchmal an, wenn er nicht soll...

laberlaib

Zitat von: studger am 02 April 2019, 15:46:18
Hallo zusammen,
ich habe mir auf Raspi 3 mit Hifiberry Amp+ und PS3 Eye als Mic,   Spips und LMS mit Squeezelite Player installiert. Snips funktioniert gut und gibt Audioausgabe über Hifiberry aus.
Mein Problem ist derzeit die Soundausgabe von Squeezelite Player.

Wenn ich in Squeezelite die Einstellungen so verändere: SL_SOUNDCARD="sysdefault:CARD=ALSA", dann funktioniert Snips (gibt Audio über Hifiberry aus)  aber es funktioniert Squeezelite  nicht.
                                                 bei der Einstellungen: SL_SOUNDCARD="sysdefault:CARD=sndrpihifiberry", es funktioniert Squeezelite  (gibt Audio über Hifiberry aus)  aber es funktioniert Snips nicht.

Hat jemand schon den Snips und LMS + Squeezelite und Hifiberry  erfolgreich eingerichtet?

Danke!

Laienmeinung:
Das war bei mir auch so.
Geht das Mischen von Quellen überhaupt mit ALSA oder braucht es dazu Pulseaudio?
https://docs.snips.ai/articles/platform/pulseaudio
Achtung: viele schimpfen über pulseaudio und ich hab eigentlich keine AHnung über Sound auf Linux sondern da einfach immer Anleitungen kopiert und wenns mal geklappt hat nichts hinterfragt o.ä. sondern einfach nicht mehr angeschaut.
Derzeit geht's bei mir irgendwie.

Zitat von: hkspks am 12 April 2019, 10:19:22
Gibt es eine Möglichkeit, snips per Schalter in FHEM zu aktivieren/ zu deaktivieren (also den Service?). Hintergrund: Trotz langer Hotword-Konfiguration springt der gute manchmal an, wenn er nicht soll...

Probier doch mal das hier:
https://docs.snips.ai/reference/hermes
ZitatDeactivating the Wake Word component
This will deactivate the Wake Word component of the Snips Platform. Consequently, nothing will be triggered when a wake word is pronounced.
Topic (publish)
hermes/hotword/toggleOff
Payload
Key
Type
Description
siteId
String
The id of the site where the wake word detector should be turned on
sessionId
Optional String
The id of the session, if there is an active session
Example
mosquitto_pub -h <HOSTNAME> -t 'hermes/hotword/toggleOff' \
    -m '{"sideId": "default"}'
Also das ganze halt via FHEM auf den MQTT legen.
--
Proxmox, Homematic, G-Tags, Zigbee2MQTT, Rhasspy Sprachsteuerung im Aufbau (beta)

hkspks

Super, klappt. Für die Allgemeinheit: Toggle Snips on/ off über Dummy-Schalter "Automatisierung".


defmod Automatisierung.SNIPS notify Automatisierung.* {\
if (Value("$NAME") eq "on") {\
fhem("set MQTTBroker publish 'hermes/tts/say' '{\"siteId\": \"default\", \"text\": \"Hallo hier bin ich.\", \"lang\": \"de\"}';;");;\
fhem("set MQTTBroker publish 'hermes/hotword/toggleOn' '{\"siteId\": \"default\"}';;");; \
} \
if (Value("$NAME") eq "off") {\
fhem("set MQTTBroker publish 'hermes/tts/say' '{\"siteId\": \"default\", \"text\": \"Ich bin dann mal weg.\", \"lang\": \"de\"}';;");;\
fhem("set MQTTBroker publish 'hermes/hotword/toggleOff' '{\"siteId\": \"default\"}';;");; \
} \
}

nanocosmos

Hallo,

habe leider noch nicht alle Seiten durchlesen können, aber mittels Suche habe ich zumindest keine ähnliche Frage finden können.
Ich wollte wissen, ob ich mein Android Tablet, auf welchem Amad zur TabletUI Anzeige läuft, als Satelite nutzen kann?

Viele Grüße
Daniel

Gesendet von meinem MI 9 mit Tapatalk