NEWS
SayIt + Sonos
-
Hallo zusammen,
ich habe da ein kleines Problem. Ich habe auf meinem RasPi snips installiert und steuer via ioBroker ein paar Sachen damit.
Für die Sprachausgabe benutze ich sayit und mache in meinen Javascript-Skripten entsprechend mit "setState" die Sprachausgabe. Die zeile sieht wie folgt aus:setState('sayit.0.tts.text', "Beliebige Sprachausgabe")
Grundsätzlich funktioniert auch alles.
Allerdings habe ich den Eindruck dass ich sayit immer nur alle x Sekunden benutzen kann.
Wenn ich händisch einen text an die Objekt-property hänge, spricht er den text beim ersten mal ohne Probleme aus.
Wenn ich danach allerdings sofort wieder diese text Property verändere, passiert gar nichts. Erst wieder nach ungefähr 30 - 60 Sekunden.
Das selbe Verhalten kann ich beobachten, wenn ich bspw. einen Sprach-Befehl (via Snips.ai) ausführe. Der Befehl wird entgegen genommen, eine Aktion ausgeführt (bspw. Licht aus) und beim ersten mal der entsprechende Text über meinen Sonos-Lautsprecher ausgegeben. Wenn ich danach allerding sofort wieder einen Befehl ausführe, klappt alles bis auf die Soundausgabe.
vereinzelt kommt es sogar vor, dass dann irgendwann nach 15 - 45 Sekunden der Text dann doch noch aus dem Lautsprecher kommt...
Ich weiß nicht was das soll? Wurd eein ähnliche Problem schonmal geschildert?
Wäre schön wenn ich das hinbekommen würde -
Ok, um das ganze zu beschleunigen habe ich nun zumindest schonmal auf PicoTTS umgestellt, damit der ganze quatsch offline generiert wird.
Aber trotzdem verzögert sich das abspielen einer nachfolgenden Sprachausgabe... Was soll das? -
Ich habe hier definitiv eine Art "Cache Problem".
Es scheint, dass ich einen "Workaround" für dieses Problem nutzen kann, indem ich beim abspielen eines Texts folgendes mache:setState('sayit.0.tts.clearQueue', true); setState('sayit.0.tts.text', text); setTimeout((() => { { setState('sonos.0.root.192_168_178_45.play', true); }, 1500);
In diesem Fall wird der richtige Text auf meiner Sonos ausgegeben!
Aber das kann nicht der richtige Weg sein.... auf diese Weise wird alles, was vorher über Sonos gespielt wurde, gestoppt und nicht wieder gestartet.
Ich kann nicht glauben, dass ich die Einzige bin, der dieses Problem hat.Interessant ist auch folgendes:
Wenn ich im Code einen Text ausgebe mit:setState('sayit.0.tts.text','My cool text')
und dann direkt den Hardware-Play-Button an der Sonos drücke, spricht er genau den richtigen Text ab.
Es scheint wirklich wie eine Caching-Sache zu sein O_oIch habe gerade angefangen iobroker.sayit zu debuggen... irgendwas stimmt da nicht!
Update:
Könnte mal bitte jemand mit dem selben Setup (Sayit + Sonos Play 1) hier antworten?
Könnt ihr über die Objektvariable tts.text einen Text eintragen und mehrmals innerhalb von Sekunden etwas an die Sonos schicken, sodass die Sonos dieses auch wirklich ausgibt??
Eine Antwort auf diese Frage würde mir schon helfen.
Danke sehr -
wirklich niemand?
-
War da nicht was in der Sonos-Adapter-Read-me?
Siehe hier:
Warning: Stability problems in combination with sayit adapter
Please note: This SONOS adapter has stability issues if using 'text to speech' with the sayit adapter. Symptoms observed:
Arbitrary change of volume to 0 or 100 %.
> No response after a random number of text to speech sequences
Workaround for text to speech is to use the SONOS HTTP API. -
Ich hab gefühlt überall geschaut, nur nicht im sonos adapter
Danke dir. Ich werds mal ausprobieren -
@jiglitsch sagte in SayIt + Sonos:
Ich hab gefühlt überall geschaut, nur nicht im sonos adapter
Danke dir. Ich werds mal ausprobierenHast Du es hinbekommen.... und wenn ja wie hast es genau gelöst, weil ich kämpfe mit dem selben Problem.....?!
Danke.