NEWS
Alexa Sprachausgabe mit Pausen
-
Hallo zusammen,
ich habe mir eine Liste erstellt, in der z.B. alle geöffneten Fenster aufgelistet sind.
Wenn ich jetzt z.B. meine Alarmanlage aktivieren möchte dann soll mir Alexa sagen welche Fenster noch geöffnet sind.
Die Ansage der Fenster habe ich auch soweit hinbekommen.
Was mir nicht gefällt ist, dass Alexa die Fenster dann ohne Punkt und Komma runterrattert, wenn ich die Liste an Alexa übergebe.
Hatte mir dann überlegt mittels Schleife jedes Fenster in der Liste einzeln an Alexa zu übergeben und danach eine Pause zu setzen.
Dann ist es aber so, dass je nachdem wie lang der Fenstername ist, die Pause manchmal zu kurz ist und die Ansage durch die nächste abgebrochen wird oder viel zu lang ist.
Wie kann man das programmieren, dass nachdem ein Fenster genannt wurde eine Pause von z.B. 1s gemacht wird bevor die nächste Ansage startet?Hier mal das Script für die Übertragung an Alexa.
Um nicht beim Testen im Durchzug zu sitzen und Ärger mit der Frau zu bekommen habe ich es hier mit den geschlossenen Fenstern getestet.Update:
Ich habe es jetzt hinbekommen, dass Alexa zwischen den Ansagen eine Pause macht, indem ich in der Liste hinter jedem Eintrag einen Punkt gesetzt habe.
Ist aber immer noch nicht ganz das, was ich gerne hätte, da ich zum einen die länge der Pause noch nicht definieren kann und zum anderen, dass dieser Punkt in der Liste auftaucht, wenn ich die evtl. irgendwo auch ausgeben möchte. -
@triplex sagte: Punkt in der Liste auftaucht, wenn ich die evtl. irgendwo auch ausgeben möchte.
Dann füge den Punkt nur für "speak" an.
-
@paul53 Dann habe ich aber immer noch das Problem, dass die Pause nicht immer passt und Ansagen durch die nächste abgebrochen werden oder das die Pausen viel zu lang sind.
Kann man irgendwie abfragen, wann Alexa eine Durchsage beendet hat? -
Habe gerade gesehen, dass meine Post nicht 100%ig übernommen wird.
Aus "passt" wird "vergeht".
Was ist das denn für ein Quatsch!!! -
@triplex sagte: wann Alexa eine Durchsage beendet hat?
Von Alexa habe ich eine Ahnung, was auch so bleiben wird.
-
@triplex wie wäre es wenn du erst den Text für Alexa erzeugst und dann diese erst komplett ausgibst?
Wenn du dann statt denspeak
denssml
Datenpunkt nimmst, kannst du per SSML-Steuerungsanweisungen alles beeinflussen.Hier ein Beispiel von einem elektrischen Heizstab im Badheizkörper, kannst ja mal so in
ssml
Datenpunkt schreiben.<speak><amazon:emotion name="disappointed" intensity="high">Selbstzerstörung eingeleitet. </amazon:emotion><break time="2s"/><amazon:emotion name="excited" intensity="high">Nur Spaß! Der Heizkörper wird jetzt für 20 Minuten erwärmt. Verbrenne dir nicht die Finger</amazon:emotion></speak>
<break time="2s"/>
sind zum Beispiel 2 Sekunden Pause, erlaubt sinds
für Sekunden undms
für Millisekunden, das kann man also sehr genau steuern.Die vollständigen Befehle (inklusive Geräusche, verschiedenen Stimmen, schneller, langsamer, lauter, leiser etc.): https://developer.amazon.com/en-US/docs/alexa/custom-skills/speech-synthesis-markup-language-ssml-reference.html
Und ja, dann musst du das halt mehrmals zusammenbauen, einmal für die Sprachausgabe und dann für die anderen Verwendungszwecke.
-
@bananajoe said in Alexa Sprachausgabe mit Pausen:
<speak><amazon:emotion name="disappointed" intensity="high">Selbstzerstörung eingeleitet. </amazon:emotion><break time="2s"/><amazon:emotion name="excited" intensity="high">Nur Spaß! Der Heizkörper wird jetzt für 20 Minuten erwärmt. Verbrenne dir nicht die Finger</amazon:emotion></speak>
Danke für den Tip.
Habe den Text ja schon vorher in Form einer Liste zusammengebaut und dann an Alexa übergeben.
Muss mal gucken ob ich da auch die Pausenbefehle für den ssml Datenpunkt untergebracht bekomme. -
Schönheitsfehler ist das nach dem letzten Element keine Pause mehr notwendig wäre, da könnte man das wieder abschneiden. Wird aber auch keiner merken. Oder noch besser, es wird gesagt das die Liste zu Ende ist:
Dann aber auch gleich vorher sagen wie viele es sind:
Jetzt noch per SSML Anweisungen singen lassen ... oder per Schimpfwortgenerator meckern warum denn überhaupt ein Fenster offen ist.
-
@bananajoe Danke dir!
Muss man die Übergabe an Alexa unbedingt mit diesem Block am Ende machen?
Kann man nicht einfach den Steuerblock nehmen?Auf das mitbdem Meckern komme ich nochmal zurück.
-
@triplex sagte in Alexa Sprachausgabe mit Pausen:
Muss man die Übergabe an Alexa unbedingt mit diesem Block am Ende machen?
Du kannst auch den "normalen" Steuerblock nehmen. Ich nehme immer den aus den Screenshots weil ich nur bei diesem ein Textfeld auf die Objekt-ID ziehen kann.
Ich setze oft am Anfang der Skripte die Geräte in Variablen, also den Grundpfad, und baue mir dann die eigentlichen Datenpunkte im Skript aus Text zusammen. So kann ich ein Skript leicht wiederverwenden denn ich muss nur oben die Variable ändern und nicht alle Datenpunkte im Skript.
Man kann bei dem Blöcken aber auch per rechte Maustaste zwischen internen und externen Eingängen umschalten falls einem die Darstellung nicht kompakt genug ist. -
@bananajoe Ah...ok.
Wollte ich auch mal versuchen.
Habe hierzu gerade nen neuen Fall aufgemacht weil ich da nicht ganz weiter komme.
Vielleicht kannst du dir das mal angucken.