NEWS
Sayit über Chromecast: Texte immer doppelt gesprochen!
-
Hi, Ich habe Sayit so konfiguriert das alle Ausgaben bei mir im Wohnzimmer über einen Chromecast-Audio gesprochen werden. Leider wird der ankündigungssound der Ansage nicht gespielt und die Ansage selbst kommt immer 2 mal. Ich habe nur ein simples Script dafür :
var ansage = "Das ist ein anderer Test"; setState ("sayit.0.tts.text", ansage);
Sayit ist so konfiguriert:
Ausgabe durch: Chromecast
Sprache: Cloud - Deutsch - Marlene
Ankündigung: BimBam.mp3
Ankündigungstimeout: 15 Sek
Ankündigungslautstärke: 60
Cache benutzen: Nein
Gerät: Chromecast.0.Wohnzimmer
Web Instance: web.0
Cloud Instance: Cloud.0
Das ist das LOg:
chromecast.0 2017-11-24 20:34:32.107 info Wohnzimmer - Detached player chromecast.0 2017-11-24 20:34:32.107 info Wohnzimmer - Detached player javascript.0 2017-11-24 20:33:08.647 info Stop script script.js.TTS.Testprogramm chromecast.0 2017-11-24 20:29:30.808 info Wohnzimmer - getStatus chromecast.0 2017-11-24 20:29:30.808 info Wohnzimmer - queueRemove chromecast.0 2017-11-24 20:29:30.793 info Wohnzimmer - Playing - http://192.168.123.16:8082/state/sayit.0.tts.mp3 chromecast.0 2017-11-24 20:29:30.793 info Wohnzimmer - Resumed after announcement chromecast.0 2017-11-24 20:29:27.017 info Wohnzimmer - setting volume to same value 80 - ignored chromecast.0 2017-11-24 20:29:26.503 info Wohnzimmer - Playing - http://192.168.123.16:8082/state/sayit.0.tts.mp3 chromecast.0 2017-11-24 20:29:23.445 info Wohnzimmer - setting volume to same value 80 - ignored chromecast.0 2017-11-24 20:29:23.445 info Wohnzimmer - getStatus chromecast.0 2017-11-24 20:29:22.634 info Wohnzimmer - queueInsert chromecast.0 2017-11-24 20:29:22.618 info Wohnzimmer - getStatus chromecast.0 2017-11-24 20:29:22.618 info Wohnzimmer - queueInsert chromecast.0 2017-11-24 20:29:22.603 info Wohnzimmer - Try to play announcement - "http://192.168.123.16:8082/state/sayit.0.tts.mp3" sayit.0 2017-11-24 20:29:22.586 info Set "chromecast.0.Wohnzimmer.player.announcement: {"url":"http://192.168.123.16:8082/state/sayit.0.tts.mp3","volume":80} sayit.0 2017-11-24 20:29:22.040 info saying: Das ist ein anderer Test chromecast.0 2017-11-24 20:29:20.887 info Wohnzimmer - Playing playlist with 1 items chromecast.0 2017-11-24 20:29:20.060 info Wohnzimmer - Try to play playlist with 1 items chromecast.0 2017-11-24 20:29:20.060 info Wohnzimmer - Try to play url - http://192.168.123.16:8082/state/sayit.0.tts.mp3 sayit.0 2017-11-24 20:29:20.028 info Set "chromecast.0.Wohnzimmer.player.announcement: {"url":"http://192.168.123.16:8082/state/sayit.0.tts.mp3","volume":80} sayit.0 2017-11-24 20:29:20.028 info saying: C:\ioBroker\node_modules\iobroker.sayit/BimBam.mp3 javascript.0 2017-11-24 20:29:20.013 info script.js.TTS.Testprogramm: registered 0 subscriptions and 0 schedules javascript.0 2017-11-24 20:29:20.013 info script.js.TTS.Testprogramm: setForeignState(id=sayit.0.tts.text, state="Das ist ein anderer Test") javascript.0 2017-11-24 20:29:20.013 info script.js.TTS.Testprogramm: Ansage : Das ist ein anderer Test
Hat jemand eine Idee woran das liegen könnte ?
-
Ich kann jetzt nicht erkennen, was bei dir die Ansage auslöst.
Ich hatte aber bei Homematic-Geräten (genauer hm.rega) mal ein Problem, dass die Ansage durch einen Trigger im Blockly ausgelöst wurde, bei dem das eingestellt war, was links im Bild zu sehen ist. Der rechte Trigger hat funktioniert.
Enrico
-
Hallo Enrico,
das Script ist nur ein Testscript was ich über den Play-Button manuell starte. Es hat sonst keinen Auslöser.
Nach einigem herumprobieren scheint es wohl mit der Ankündigung zusammen zu hängen. Wenn ich diese ausschalte wird die Ansage nur einmal gesprochen!
Ich hätte aber schon gern eine Ankündigung….
-
Es ist ein race condition: das Chromecast braucht ca 4 Sekunden, um das URL zu spielen. Bevor hat sayit den mp3 URL mit dem text geschrieben. Deswegen hört man das Text 2 mal.
Ich werde schauen, wie ich im sayit das Spielen blockieren kann, bis den Announcement fertig gespielt ist.
-
Ach so…ja dann warte ich mal ab
Vielen Dank
-
Ich habe ein PR für sayit gemacht: https://github.com/ioBroker/ioBroker.sayit/pull/24
Zusammen mit dem Google Home adapter 1.3.5 sollte jetzt alles gut laufen. Bitte warten bis Bluefox das PR integriert hat.
-
Oki Danke
-
Ich habe da jetzt noch ein kleines Verständmissproblem. Wenn Sayit jetzt wartet bis das Announcement beendet ist, brauche ich die Angaben für Ankündigungstimeout und Ankündigungslänge überhaupt noch ?
-
Uhm, ich denke, dass es nicht mehr notwendig wird…
Bluefox hat dem Fix in github integriert - es gibt noch keine neue official release aber man kann es schon direkt von git installieren.
-
Funktioniert soweit…leider ist eine viel zu lange Pause zwischen Ankündigung und gesprochenem Text. Bestimmt 5 Sekunden. Kann man da noch was machen ?
-
Habe mal die Version 1.3.5 installiert. Bei mir kommt die Ansage doppelt, beim 1. Mal mit 100% Lautstärke, beim 2. Mal mit 45%.
chromecast.0 2017-11-28 21:23:23.685 info Badezimmer - getStatus chromecast.0 2017-11-28 21:23:23.676 info Badezimmer - queueRemove chromecast.0 2017-11-28 21:23:23.633 info Badezimmer - Playing - http://192.168.178.18:8083/state/sayit.1.tts.mp3 chromecast.0 2017-11-28 21:23:23.631 info Badezimmer - Resumed after announcement chromecast.0 2017-11-28 21:23:19.801 info Badezimmer - set volume to 45 chromecast.0 2017-11-28 21:23:18.614 info Badezimmer - Playing - http://192.168.178.18:8083/state/sayit.1.tts.mp3 chromecast.0 2017-11-28 21:23:15.643 info Badezimmer - set volume to 100 chromecast.0 2017-11-28 21:23:15.570 info Badezimmer - getStatus chromecast.0 2017-11-28 21:23:15.027 info Badezimmer - queueInsert sayit.1 2017-11-28 21:23:14.978 debug chromecast.0.Badezimmer.player.announcement finished playing announcement: {"url":"http://192.168.178.18:8083/state/sayit.1.tts.mp3","volume":100} sayit.1 2017-11-28 21:23:14.775 debug Duration "Hallo wie geht es dir": 0 sayit.1 2017-11-28 21:23:14.775 debug chromecast.0.Badezimmer.player.announcement finished playing announcement: {"url":"http://192.168.178.18:8083/state/sayit.1.tts.mp3","volume":100} chromecast.0 2017-11-28 21:23:14.644 info Badezimmer - getStatus chromecast.0 2017-11-28 21:23:14.568 info Badezimmer - queueInsert chromecast.0 2017-11-28 21:23:14.567 info Badezimmer - Finished playing announcement chromecast.0 2017-11-28 21:23:14.473 info Badezimmer - Try to play announcement - "http://192.168.178.18:8083/state/sayit.1.tts.mp3" sayit.1 2017-11-28 21:23:14.462 debug Duration "Hallo wie geht es dir": 2 sayit.1 2017-11-28 21:23:14.461 info Set "chromecast.0.Badezimmer.player.announcement to {"url":"http://192.168.178.18:8083/state/sayit.1.tts.mp3","volume":100} sayit.1 2017-11-28 21:23:14.220 info saying: Hallo wie geht es dir chromecast.0 2017-11-28 21:23:14.217 info Badezimmer - Playing playlist with 1 items chromecast.0 2017-11-28 21:23:13.545 warn Badezimmer - remaining item to play after announcement not found in the playlist -> remove status handled chromecast.0 2017-11-28 21:23:13.276 info Badezimmer - Try to play playlist with 1 items chromecast.0 2017-11-28 21:23:13.257 info Badezimmer - Try to play url - http://192.168.178.18:8083/state/sayit.1.tts.mp3 sayit.1 2017-11-28 21:23:13.218 debug Duration "/opt/iobroker/node_modules/iobroker.sayit/gong.mp3": 1 sayit.1 2017-11-28 21:23:13.217 info Set "chromecast.0.Badezimmer.player.announcement to {"url":"http://192.168.178.18:8083/state/sayit.1.tts.mp3","volume":100} sayit.1 2017-11-28 21:23:13.211 info saying: /opt/iobroker/node_modules/iobroker.sayit/gong.mp3 javascript.1 2017-11-28 21:23:13.192 info script.js.common.Ansage: registered 0 subscriptions and 0 schedules javascript.1 2017-11-28 21:23:13.186 info Start javascript script.js.common.Ansage javascript.1 2017-11-28 21:23:13.170 info Stop script script.js.common.Ansage javascript.0 2017-11-28 21:23:13.169 info Stop script script.js.common.Ansage
-
Die Ankündigungslänge spielt noch eine Rolle! Setz die mal auf die tatsächliche Länge deiner Ankündigung + 2 Sek. Da hat es bei mir geklappt.
-
Guten Abend,
ich versuche zwei Status via SayIt und GoogleHome bzw. Google Chromecast (habe beides versucht…) auszugeben:
Versuche Google Chromecast (ist aber ein Google-Home-Endgerät)
var TXT_Status_ETA, ETA_Test2, Input_IFTTT_GH_Test; TXT_Status_ETA = String('Der Status des Kessels ist ') + String(getState("javascript.0.scriptEnabled.ETA-Heizung.ETA_KesselStatus_FINAL").val); ETA_Test2 = String('und der Status des Heizkreises ist ') + String(getState("javascript.0.scriptEnabled.ETA-Heizung.ETA_HeizkreisStatus_FINAL").val); console.log(TXT_Status_ETA); setState("sayit.1.tts.text", "de;50;" + TXT_Status_ETA); setState("sayit.1.tts.text", "de;50;" + ETA_Test2); console.log('Pause-Ende');
Den ersten String "Der Status des Kessels ist" bricht er nach "Status" ab und spielt den zweiten String. Diesen spielt er ganz, jedoch zweimal.
Das Log sieht so aus:
! ````
chromecast.0 2017-12-16 19:51:22.366 info Küche - Playing - http://192.168.178.120:8082/state/sayit.1.tts.mp3
chromecast.0 2017-12-16 19:51:19.276 info Küche - getStatus
chromecast.0 2017-12-16 19:51:19.258 info Küche - queueRemove
chromecast.0 2017-12-16 19:51:18.558 info Küche - Resumed after announcement
chromecast.0 2017-12-16 19:51:18.557 info Küche - setting volume to same value 50 - ignored
chromecast.0 2017-12-16 19:51:15.780 info Küche - Playing - http://192.168.178.120:8082/state/sayit.1.tts.mp3
chromecast.0 2017-12-16 19:51:12.742 info Küche - setting volume to same value 50 - ignored
chromecast.0 2017-12-16 19:51:12.742 info Küche - getStatus
chromecast.0 2017-12-16 19:51:11.929 info Küche - queueInsert
chromecast.0 2017-12-16 19:51:11.929 info Küche - Finished playing announcement
chromecast.0 2017-12-16 19:51:11.892 info Küche - getStatus
chromecast.0 2017-12-16 19:51:11.883 info Küche - queueInsert
chromecast.0 2017-12-16 19:51:11.849 info Küche - Try to play announcement - "http://192.168.178.120:8082/state/sayit.1.tts.mp3"
sayit.1 2017-12-16 19:51:11.835 info Set "chromecast.0.Küche.player.announcement to {"url":"http://192.168.178.120:8082/state/sayit.1.tts.mp3","volume":"50"}
sayit.1 2017-12-16 19:51:11.835 info saying: und der Status des Heizkreises ist Ein Tag
chromecast.0 2017-12-16 19:51:11.703 info Küche - Playing - http://192.168.178.120:8082/state/sayit.1.tts.mp3
chromecast.0 2017-12-16 19:51:08.681 info Küche - Playing playlist with 1 items
chromecast.0 2017-12-16 19:51:07.863 warn Küche - remaining item to play after announcement not found in the playlist -> remove status handled
chromecast.0 2017-12-16 19:51:07.846 info Küche - Try to play playlist with 1 items
javascript.0 2017-12-16 19:51:07.813 info script.js.GoogleHome.Skript1: registered 0 subscriptions and 0 schedules
javascript.0 2017-12-16 19:51:07.812 info script.js.GoogleHome.Skript1: Pause-Ende
javascript.0 2017-12-16 19:51:07.810 info script.js.GoogleHome.Skript1: Der Status des Kessels ist Heizen
chromecast.0 2017-12-16 19:51:07.834 info Küche - Try to play url - http://192.168.178.120:8082/state/sayit.1.tts.mp3
sayit.1 2017-12-16 19:51:07.828 info Set "chromecast.0.Küche.player.announcement to {"url":"http://192.168.178.120:8082/state/sayit.1.tts.mp3","volume":"50"}
sayit.1 2017-12-16 19:51:07.825 info saying: Der Status des Kessels ist Heizen
javascript.0 2017-12-16 19:51:07.803 info Start javascript script.js.GoogleHome.Skript1
javascript.0 2017-12-16 19:51:07.790 info Stop script script.js.GoogleHome.Skript1
chromecast.0 2017-12-16 19:49:15.453 info Küche - Playing - http://192.168.178.120:8082/state/sayit.1.tts.mp3Die Versionen sind: ioBroker: 2.0.9 Google Home Adapter: 1.3.5 Text to Speech Adapter: 1.6.6
-
Hi,
2 Sayit Anweisungen direkt hintereinander über Chromecast funktioniert nicht. Du musst eine Pause einbauen damit er den ersten Text bis zu ende sprechen kann.
-
Danke für die rasche Antwort.
Ich dachte dieses Problem "Race Condition" wurde behoben? Bzw. ich dachte, Sayit errechnet die Länge des zu sprechenden Textes und versucht dann mehrere Texte hintereinander "sauber" zu sprechen.
-
Hi,
so wie ich das verstanden habe sollte das nur für das Announcement gelten ! Aber selbst da funktioniert das nicht zuverlässig. Manchmal erhalte ich dort immernoch meine Ansagen doppelt oder er spricht eine alte Ansage die als letztes vorher gespielt wurde. Ich mache meine Ansagen ja auch über Sayit und Chromecast. Auch scheinen die Einstellungen im Sayit Adapter über das Anouncement immernoch ihre Gültigkeit zu haben, müssten Sie ja nicht wenn die letzten Änderungen stimmen würden. Spiel mal damit rum dann wirst du es merken. Aber selbst wenn es klappt ist die Pause zwischen Announcement und dem eigentlichen Text unerträglich lang. Man meint schon da kommt nix mehr und dann plappert die erst los :lol: