NEWS
Austausch zu neuem Alexa2 (Alpha 2.1!) SSML Feature
-
` > <speak><voice name="Hans">Hey! Du!</voice>
<emphasis level="strong">Wer? ich?</emphasis>
<voice name="Hans"><amazon:effect name="whispered"><prosody rate="x-slow">Sch! Genau,</prosody></amazon:effect></voice></speak> `
:lol:
Denkst Du es könnte Sinn machen, dass man beim SSML Datenpunkt nicht <speak></speak>anzugeben braucht (wie es schn beim announcement ist)?
-
Ich würde das Tag drin lassen.
Einfach, weil es dann die komplette Struktur ist, die ja eh an Alexa geschickt wird.
Wenn du es weg lässt, dann hast du "geheime" Sachen, die im hintergrund passieren und das ergibt nur wieder Folgefragen oder Fehler.
Alternativ: Im Adapter einen Schalter einbauen, der es dem Anwender frei stellt, ob er das <speak>automatisch erzeugt haben möchte oder nicht</speak>
-
Hey,
ich möchte mich gern morgens von Alexa an einige Sachen erinnern lassen. Nun habe ich zu verschiedenen Zwecken verschiede Ansagen zusammengebastelt. Der Folgende Text, kommt anscheinend an irgendeine Grenze. Mein kompletter Text wird einfach nicht abgespielt. Ich habe die Texte mal unten eingefügt, vielleicht erkennt Ihr das Problem? Personenbezogene Daten habe ich XXX ausgetauscht. Wobei die Anzahl der Zeichen gleich blieb.
Dieser Teil wird ohne Probleme abgespielt.
! <speak>Guten Morgen Liebe Familie, heute ist Mittwoch, der,sechsteFebruar2019Es ist 10Uhr 42.Es ist Winter. da ist es besonders wichtig, dass wir unsere Vitamin D Tropfen nehmen! . Denkt bitte daran.Ich freue mich, dass Ihran einem Ferientagzum Frühstück kommt.Die Außentemperatur auf unserem Balkon beträgt zur Zeit6.8Grad Celsius. Die Luftfeuchtigkeit liegt bei62Prozent.Mama ist krank. Gute Besserungund Papa darf arbeiten.Papa hat Spätschicht. Seine Schicht beginnt um 9 Uhr 30.XXXXXXX darf in die Kita.XXXXXX darf in die Krippe.Heute Abend kommt eventuell DDDDDD zu uns , zum Video Abend . er weiß es aber noch nicht genau ..Hallo Papa, an folgendes möchte ich Dich erinnern. Magnesium nehmen.Eincremen.Vitamin D nehmen.Deine Schiene zu tragen.Deine Überung zu machen.Hallo Mama, an folgendes möchte ich Dich erinnern.dein Vitamin D nehmen.dein vitamin b12 spritzen.Hallo XXXXX, folgendes möchte ich Dir mitteilen.Hast Du Deine Vitamin Tropfen bekommen?.</speak>
Der Komplette Text aber nicht.
! <speak>Guten Morgen Liebe Familie, heute ist Mittwoch, der,sechsteFebruar2019Es ist 10Uhr 42.Es ist Winter. da ist es besonders wichtig, dass wir unsere Vitamin D Tropfen nehmen! . Denkt bitte daran.Ich freue mich, dass Ihran einem Ferientagzum Frühstück kommt.Die Außentemperatur auf unserem Balkon beträgt zur Zeit6.8Grad Celsius. Die Luftfeuchtigkeit liegt bei62Prozent.Mama ist krank. Gute Besserungund Papa darf arbeiten.Papa hat Spätschicht. Seine Schicht beginnt um 9 Uhr 30.XXXXXXX darf in die Kita.XXXXXX darf in die Krippe.Heute Abend kommt eventuell XXXXXX zu uns , zum Video Abend . er weiß es aber noch nicht genau ..Hallo Papa, an folgendes möchte ich Dich erinnern. Magnesium nehmen.Eincremen.Vitamin D nehmen.Deine Schiene zu tragen.Deine Überung zu machen.Hallo Mama, an folgendes möchte ich Dich erinnern.dein Vitamin D nehmen.dein vitamin b12 spritzen.Hallo XXXXX, folgendes möchte ich Dir mitteilen.Hast Du Deine Vitamin Tropfen bekommen?.Du hast heute Schwimmtraining.Das Training findet heute im Stadtbad NNNNöNNN statt. Das ist in der XXXXXXXXX Straße.Ihr müsst um 16 Uhr 30 spätestens da sein.Mama, denk dran, die Parkplatzsituation ist nicht so besonders.Morgen ist Maxitag. Habt Ihr Hausaufgaben auf?.Für XXXXXX habe ich auch noch was.Hat XXXXX seine Vitamin D Tropfen bekommen? .Folgende Tudus stehen noch auf dem Plan für heute.es liegt ein Paket an der ARAL Tankstelle zur Abholung bereit. Denkt an den Personalausweis bzw. die Vollmacht.ihr habt noch nicht gelüftet, bitte nachholen.In den nächsten Tagen habt Ihr einen Termin beim Physiotherapeuten.Ey, ich kann keine Infos über die nächsten Zahnarzttermine finden. Bitte eintragen. Sofort!.Mama, Papa, ich habe keine Kinderarzttermine in meiner Datenbank stehen. Ist das Korrekt?.Ich kann in meiner Datenbank keinen Termin für den nächsten Frauenarztbesuch finden. Bitte tragt die nächsten Termine ein..so, das wars. Ich wünsche Euch einen Guten Appetit</speak>
vielleicht habt ihr eine Idee, was ich falsch mache, ausser zu mitteilungsbedürftig zu sein ^^
-
Hast du einfach mal von hinten weg gekürzt bis exakt die Zeichenanzahl erreicht wird, die noch vollständig ausgegeben wird?
Könnte mir vorstellen dass es ein Zeichenlimit gibt.
In dem Fall müsstest du den Text einfach auf mehrere Strings aufteilen und die nacheinander an den Echo übergeben.
Außerdem könntest du auch den bisher nicht gesprochenen Teil mal einzeln übergeben um zu sehen ob der als solcher funktioniert. Ungewöhnliche Zeichenkombinationen sind mir jetzt nicht aufgefallen, die ggf. beim Parsen Probleme verursachen könnten.
-
Hast du einfach mal von hinten weg gekürzt bis exakt die Zeichenanzahl erreicht wird, die noch vollständig ausgegeben wird?
Könnte mir vorstellen dass es ein Zeichenlimit gibt.
In dem Fall müsstest du den Text einfach auf mehrere Strings aufteilen und die nacheinander an den Echo übergeben. `
Das war auch meine Idee. Aber wie stelle ich das an? wenn ich zwei Strings übergebe, mischt alexa den Text.string1= Guten Tag ich heisse alexa
string2= und ich heisse ingo
da macht dann alexa: "guten und tag ich ich heisse alexa heisse ingo ".
Kennst du einen Befehl, mit dem alexa es nach einander abspielt?
Ich habe es mit ssml noch nicht ausprobiert.
Würde das so funktionieren?
ssml= <speak>erster langer text</speak><speak>zweiter langer text</speak>
> Außerdem könntest du auch den bisher nicht gesprochenen Teil mal einzeln übergeben um zu sehen ob der als solcher funktioniert. Ungewöhnliche Zeichenkombinationen sind mir jetzt nicht aufgefallen, die ggf. beim Parsen Probleme verursachen könnten.
Habe ich getestet, das funktioniert. Ich glaube das Limit liegt bei 1000 Zeichen. -
Wenn du den Datenpunkt mehrfach hintereinader befüllst, muss du das natürlich mit einem delay.
D.h. du müsstest mal stoppen wie lange die Ausgabe der ersten 1000 Zeichen dauert und den zweiten Teil dann mit einem entsprechenden timeout übergeben.
Ich dachte bisher du nutzt SSML, weil den <speak>tag brauchst du doch beim speak Datenpunkt gar nicht mit übergeben.
Aber SSML wird sicher ebenso ein Zeichenlimit haben. Ob es auch bei 1000 liegt, wäre zu prüfen.</speak>
-
Wenn du den Datenpunkt mehrfach hintereinader befüllst, muss du das natürlich mit einem delay.
D.h. du müsstest mal stoppen wie lange die Ausgabe der ersten 1000 Zeichen dauert und den zweiten Teil dann mit einem entsprechenden timeout übergeben.
Ich dachte bisher du nutzt SSML, weil den <speak>tag brauchst du doch beim speak Datenpunkt gar nicht mit übergeben.
Aber SSML wird sicher ebenso ein Zeichenlimit haben. Ob es auch bei 1000 liegt, wäre zu prüfen.</speak> `
sorry habe mich blöd ausgedrückt. Ich habe beides getestet. per SSML und per Datenpunkt. Beim Datenpunkt mit ; und da war bei ca 1000 Zeichen schluss. Beim SSML das gleiche (ohne ; natürlich). auch hier lag die Grenze bei 1000 Zeichen.
> Ich habe es mit ssml noch nicht ausprobiert.
Damit meinte ich, zwei Strings zu übergeben. Den Rest hatte ich getestet. War blöd formuliert.> …muss du das natürlich mit einem delay.
Wie funktioniert das bei SSML? -
Der timeout ist nichts SSML spezifisches. Einfach mit den Standard Blockly Elementen arbeiten. Dort kannst du es innerhalb jedes "Steuere" aktivieren oder du verschachtelst sie mit timeout Blöcken. Bei Javascript kann ich es dir nicht sagen. Aber wenn du das nutzt, dann kannst du ja programmieren.
-
Sind die 1000 Zeichen SSML "gesetzt" oder vermutet? Wenn es ein Limit ist könnte ich das berücksichtigen udn mehrere "<speak>…</speak>" auch entsprechend nacheinander übergeben an Alexa
-
Aber so eon Splitting gibt es für speak doch auch nicht und der User muss sich selbst drum kümmer, also wieso auf eonmal für SSML?
-
Wenn man Text in zwei Teilen an Alexa übergibt wird doch die erste Ansage abgebrochen und die zweite gestartet. Kann man denn feststellen wann Alexa fertig ist und dann weiteren Text ausgeben?
-
Aber so eon Splitting gibt es für speak doch auch nicht und der User muss sich selbst drum kümmer, also wieso auf eonmal für SSML? `
Aber sicher gibt es so ein Splitting. Per Semikolon. Dann trennt der Adapter das in mehrerer Speak befehle die als "Sequenz" an Alexa übergeben werden und so mit einer Kurzen Pause dazwischen nacheinander abgespielt werden
-
Ah, das wusste ich auch noch nicht. Brauchte bisher aber auch keine derartig langen Textausgaben.
Kannte nur den Trick mit der Lautstärke am Anfang mit Semikolon als Trennung.
In der readme sind keine Beispiele für solche Konstrukte. Gibt es da irgendwo eine umfassende Doku?
-
https://github.com/Apollon77/ioBroker.a … ercommands ... unter der Tabelle steht das an sich alles
-
Sind die 1000 Zeichen SSML "gesetzt" oder vermutet? Wenn es ein Limit ist könnte ich das berücksichtigen udn mehrere "<speak>…</speak>" auch entsprechend nacheinander übergeben an Alexa `
bisher nur eine Vermutung. Werde es aber weiter testen 980 geht. 1020 geht nicht. Werde genaue Zahl noch austesten.
-
Aber sicher gibt es so ein Splitting. Per Semikolon. `
Kann man trotzdem irgendwie feststellen ob gerade eine Sprachausgabe erfolgt und erst die neue Ausgabe starten wenn diese beendet wurde? -
@WaJoWi:Aber sicher gibt es so ein Splitting. Per Semikolon.
Kann man trotzdem irgendwie feststellen ob gerade eine Sprachausgabe erfolgt und erst die neue Ausgabe starten wenn diese beendet wurde?
Der Trick mit dem ; Klappt nur bis zur Grenze von 1000 (+-20).
Wenn ich eine Rückmeldung von Alexa bekommen würde, Ansage ist beendet, wäre super.
-
@WaJoWi:Aber sicher gibt es so ein Splitting. Per Semikolon.
Kann man trotzdem irgendwie feststellen ob gerade eine Sprachausgabe erfolgt und erst die neue Ausgabe starten wenn diese beendet wurde?
Nein, es gibt keine Rückmeldung
PS: 1000+-20 … interessant ... lass Ihr Alexa eigentlich Romane vorlesen? :lol:
-
@WaJoWi:Aber sicher gibt es so ein Splitting. Per Semikolon.
Kann man trotzdem irgendwie feststellen ob gerade eine Sprachausgabe erfolgt und erst die neue Ausgabe starten wenn diese beendet wurde?
Nein, es gibt keine Rückmeldung
PS: 1000+-20 … interessant ... lass Ihr Alexa eigentlich Romane vorlesen? :lol: `
Danke für deine Rückmeldung.
Ich lasse keine Romane vorlesen, aber von verschiedenen Skripten eine Sprachausgabe machen die sich manchmal überschneiden. Da wäre es gut, wenn die nächste Ansage erst beginnt wenn die laufende beendet wurde. Aber wenn das nicht geht…
-
ich bin auch gerade am testen und es funktioniert ohne Probleme, einzig was mir auffällt das es ziemlich lange dauert bis der Echo den Text ausgibt? kommt aber drauf an welche stimme man auswählt!
#Edit#
sorry war mein fehler hatte eine verzögerung drinne!