Sonos2mqtt - vielleicht hat jemand Lust mitzumachen

Begonnen von Otto123, 31 Mai 2020, 18:30:55

Vorheriges Thema - Nächstes Thema

Otto123

Zum Hinweis im Wiki define ... Danke ich habe es korrigiert. Da war noch alter Text drin, mittlerweile braucht man das attr IODev nicht mehr setzen.
Zum Fehler pm2 - keine Ahnung was da passiert. Mit Sicherheit läuft da was schief.
Ich habe es ewig nicht mehr so gemacht, ich verwende immer den docker Container. Diese nodejs Zeugs ist aus meiner Sicht der Untergang ...
Hier im Thread im ersten Beitrag ist noch der Start des sonos2mqtt nodejs Moduls zum Test beschrieben, das solltes Du unbedingt ausführen.

Achtung: man dann den nodejs Kram mehr als einmal starten unter mehreren Usern, in unterschiedlichen Pfaden. Alle Anleitungen dort ändern sich quasi mit jeder Version, deswegen habe ich das nicht Schritt für Schritt nochmal beschrieben.
Versuch das also mal im System zum laufen zubekommen.
pm2 bietet die Logs im Dialog auf Systemebene, dazu habe ich mal ein bisschen was aufgeschrieben https://heinz-otto.blogspot.com/2019/05/worx-landroid-m500.html
Bei sonos2mqtt lief das eigentlich stressfrei da brauchte ich das nicht :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

IBirner

Ich glaube, ich habe das Problem gefunden :)
Wenn ich sonos2mqtt wie folgt ueber SSH starte, dann läuft es: pm2 start sonos2mqtt.
Das notify für Fhem habe ich nicht mehr angelegt... Mal sehen, wie stabil es laufen wird!
Danke für die Unterstützung.

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

christian.71

Stephan hat ja nun die Sonos2Mqtt so angepasst, dass man die neuralen Stimmen verwenden kann. siehe: https://github.com/svrooij/sonos2mqtt/issues/155
Nur, wie lautet nun der Befehl in Fhem? Muss da evtl. im Modul noch was angepasst werden?

Otto123

#1129
ich kann einen neuen Syntax nicht erkennen, gehe aber davon aus: er unterscheidet sich nicht?
Im speak Befehl ist die automatische Verwendung von sonos-tts ja implementiert (sonos-tts muss separat eingerichtet sein --ttsendpoint über den Start von sonos2mqtt setzen) , also einfach testen und sagen wenn es nicht geht.
Notfalls den (neuen?) Syntax mit x_raw_payload testen.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Otto123

Gerade nochmal probiert, das klappt doch aber schon lange? - Vicki ist ja die einzige Deutsche: https://docs.aws.amazon.com/de_de/polly/latest/dg/ntts-voices-main.html
set alias=Arbeitszimmer speak de-DE Vicki 25 Test

Der Code ist quasi direkt aus dem Wiki und steht dort seit - knapp einem Jahr?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

kjmEjfu

AFAIK nutzt Vicky nicht zwingend die neurale Ausgabe, sondern Vicky kann _auch_ die neurale Ausgabe. Dafür muss man eigentlich im Befehl extra die neurale Engine auswählen (https://docs.aws.amazon.com/de_de/polly/latest/dg/NTTS-main.html).

Also muss man jetzt sowas übergeben:

{
  "command":"speak",
  "input": {
    "text": "Someone at the front-door",
    "endpoint": "https://your.tts.endpoint/api/generate",
    "lang": "en-US",
    "gender": "male",
    "name": "Salli",
    "volume": 50,
    "onlyWhenPlaying": false,
    "delayMs": 700
    "engine": "neural"
  }
}


Was aber laut https://github.com/svrooij/sonos2mqtt/issues/155#issuecomment-1031829261 nicht funktioniert.
Insofern macht es IMO noch keinen Sinn dies in das speak-alias zu übernehmen.
Migriere derzeit zu Home Assistant

christian.71

Zitat von: kjmEjfu am 08 Februar 2022, 11:58:28
AFAIK nutzt Vicky nicht zwingend die neurale Ausgabe, sondern Vicky kann _auch_ die neurale Ausgabe. Dafür muss man eigentlich im Befehl extra die neurale Engine auswählen (https://docs.aws.amazon.com/de_de/polly/latest/dg/NTTS-main.html).

Genau so sehe ich das auch. Auf der Seite https://eu-west-1.console.aws.amazon.com/polly/home/SynthesizeSpeech kann man sich auch die Unterschiede von den Standard und Neuralen Stimmen anhören. In deutsch geht das im Moment nur bei Vicki.

Otto123

ok engine neural geht nicht. Ich teste mit Stephan gehosteten sonos-tts, meine sonos Container ist gestern aktualisiert.

Ansonsten kann man so etwas wie gesagt jederzeit testen, man beachte noch männlich / weiblich. ;D ;D ;D
Einfach in x_raw_payload werfen
{
  "command":"speak",
  "input": {
    "text": "Someone at the front-door",
    "lang": "en-US",
    "gender": "female",
    "name": "Salli",
    "volume": 50,
    "onlyWhenPlaying": false,
    "delayMs": 700
  }
}
Wenn es denn geht, kann ich neural noch einbauen. Ich bin nicht so der Computerstimmen Fetischist, ich komme mit der Standard Googletante klar  ;D
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

christian.71

Ich habe nun noch ein wenig rumprobiert und festgestellt, dass der payload nun doch mit den verschiedenen Stimmen funktioniert. Mein Fehler war nur, dass ich den cache nicht gelöscht hatte. Wenn der Cache nicht gelöscht wird und der gleiche Satz soll nochmals wiedergegeben werden, dann nimmt er das mp3 vom cache.

@ Otto Wenn du beim speak Befehl also noch eine Abfrage der engine (neural oder standard) einbauen könntest, wäre das super.  :)

Otto123

cache? Von welcher Methode sprichst Du? Mit FHEM TTS oder sonos-tts? Beim FHEM TTS ist mir das mit dem cache klar, bei sonos-tts wusste ich nicht, dass es einen cache gibt?
Ich finde den speak Befehl so schon reichlich kompliziert, ich finde wenn sollte man das vielleicht einfach irgendwie einstellbar machen? Oder wechselt man bei jeder Ansage die Stimme?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

christian.71

Zitat von: Otto123 am 20 Februar 2022, 10:01:48
cache? Von welcher Methode sprichst Du? Mit FHEM TTS oder sonos-tts? Beim FHEM TTS ist mir das mit dem cache klar, bei sonos-tts wusste ich nicht, dass es einen cache gibt?
Ich finde den speak Befehl so schon reichlich kompliziert, ich finde wenn sollte man das vielleicht einfach irgendwie einstellbar machen? Oder wechselt man bei jeder Ansage die Stimme?

Ich spreche von sonos-tts. Ich nutze docker und habe dort bei den environment einen "SONOS_TTS_CACHE_URI" eingetragen. Ich weiß nicht, ob das nötig ist.
Da es nur bei der deutschen Stimme von Vicki auswählbar ist, wäre evtl. eine if-Abfrage denkbar. Aber da bin ich nicht fit genug. Da ich nur die Stimme von Vicki nutze, habe ich für mich die eine Zeile 137 in 99_sonos2mqttUtils.pm geändert in: return sprintf('%s {"command":"speak","input":{"lang": "%s", "name":"%s", "volume":%s, "text": "%s", "engine": "neural", "delayMs":700}}', $topic, $lang, $voice, $volume, join(" ", @text));
Somit ist aber nur noch die Stimme von Vicki nutzbar. Aber ich brauchte meine doif´s nicht ändern. ;-)

m8ichael

Hallo zusammen,

ich habe seit kurzem (seit einem SONOS-Firmware-Update) mit dem Modul das Problem, dass keine Sonos-Gruppen mehr gebildet werden können - seltsamerweise funktioniert das Auflösen von Gruppen, aber eben nicht (mehr) das Bilden von Gruppen. Ist dies ein generelles Problem? Oder bestehen bei euch derartige Probleme nicht?

Viele Grüße

Michael

christian.71

Hallo Michael,

Ich habe das gerade mal bei mir getestet. Wenn du das joinGroup und leaveGroup meinst, das funktioniert bei mir noch. Mein Sonos Controller hat die Version 14.4

m8ichael

Hallo Chriatian,

Zitat von: christian.71 am 12 März 2022, 10:41:22
Ich habe das gerade mal bei mir getestet. Wenn du das joinGroup und leaveGroup meinst, das funktioniert bei mir noch. Mein Sonos Controller hat die Version 14.4

Ja, genau die beiden Befehle meine ich. leaveGroup funktioniert bei mir, allerdings nicht (mehr) joinGroup. In meiner App (Android) steht noch 14.3, aber dann dürfte ich wohl seitens der Firmware auf dem gleichen Stand sein...