NEWS
Austausch zu neuem Alexa2 (Alpha 2.1!) SSML Feature
-
Ich finde solche frühen Versionen sollten neulinge nicht unbedingt nutzen.
Man sollte schon wissen was man tut.
Meiner Meinung nach
Gesendet von iPhone mit Tapatalk
-
Das hier ist der Austausch-Thread zum neuen Feature … Für die 2.0/1 Alpha gibts einen eigenen Thread und da steht das so drin ...
-
ssml geht jetzt bei mir. Problem war die Master-Slave-Umgebung. Mehr dazu im Alexa 2.0.0Alpha-Thread
[Update]
Funktioniert jetzt auch bei mir.
Grund war, dass ioBroker auf Master und Slave zwei unterschiedliche Versionen installiert hatte.
Jetzt geht es auch mit dem Slave..
Danke nochmal.
gerade mein Liebligssatz:
<speak><say-as interpret-as="interjection">ähm.</say-as>. <say-as>nö</say-as>.</speak>
gerade hatte ich auch mit den Audio-Tags rum gespielt. Funktioniert aber leider nicht
https://developer.amazon.com/de/docs/cu … brary.html
Was aber geht, und das ist auch lustig, ihr könnt explizit eine Fremdsprache wählen, in der ein Wort gesagt wird. Und ihr könnt auch die Stimmen der anderen Sprachen verwenden.
-
Guten Morgen
Gibt es die Möglichkeit die verschiedenen Stimmen auch in Blockly zu nutzen?
"speak" wird durch "ssml" ersetzt, aber anschließend muss ich in jedes "Textfeld" folgendes eingeben <voice name="Hans">Beliebiger Text</voice> setzen. Hans kann ich dabei natürlich durch die verschiedenen Stimmen ersetzen.
Gibt es die Möglichkeit voice name in Blockly vor einen gesamten Block zu setzen?
Ansonsten wäre die Stimme in Blockly nur sehr umständlich nutzbar oder?
![](</s><URL url=)https://abload.de/img/ssmlblockly0sj9x.jpg" /> -
Speak geht sicher auch. Dann bekommst du aber die gewohnt unbetonten Ausgaben der Alexa
-
Guten Morgen
Gibt es die Möglichkeit die verschiedenen Stimmen auch in Blockly zu nutzen?
"speak" wird durch "ssml" ersetzt, aber anschließend muss ich in jedes "Textfeld" folgendes eingeben <voice name="Hans">Beliebiger Text</voice> setzen. Hans kann ich dabei natürlich durch die verschiedenen Stimmen ersetzen.
Gibt es die Möglichkeit voice name in Blockly vor einen gesamten Block zu setzen?
Ansonsten wäre die Stimme in Blockly nur sehr umständlich nutzbar oder?
![](</s><URL url=)https://abload.de/img/ssmlblockly0sj9x.jpg" />` ~~Das geht schon. Du musst nur z.B. in das erste Textfeld. <speak><voice name="Hans">und in das letzte am Ende oder in das letzte Texteld einzeln</voice></speak> eintragen.Dann wird alles dazwischen mit der Stimme Hans ausgegeben.
Nur habe ich dann wieder das Problem, das Temperaturen mit z.B. 20,5 Grad mit z.B. zwanzigster Komma fünf angegeben werden.
Das hatte ich zu Anfang mit speak auch, das konnte man aber mit Leerzeichen an der richtigen Stelle lösen. Hier habe ich es noch nicht rausgefunden.~~
-
Dafür gibt es bei ssml ganz tolle Möglichkeiten.
Man kann die Art, wie Werte interpretiert/ausgesprochen werden beeinflussen.
Ich schau gleich mal nach, wo das steht
…
ah, schon gefunden:
<speak>Ausgesprochen als Kardinalzahl: <say-as interpret-as="cardinal">12345</say-as>. Und jetzt jede Ziffer einzeln: <say-as interpret-as="digits">12345</say-as>. Hallo buchstabiert: <say-as interpret-as="spell-out">hallo</say-as></speak>
Schau mal hier: https://developer.amazon.com/de/docs/cu … html#audio
Bis auf das
<audio>funktioniert eigentlich alles.</audio>
-
Nur habe ich dann wieder das Problem, das Temperaturen mit z.B. 20,5 Grad mit z.B. zwanzigster Komma fünf angegeben werden.
Das hatte ich zu Anfang mit speak auch, das konnte man aber mit Leerzeichen an der richtigen Stelle lösen. Hier habe ich es noch nicht rausgefunden. `
Bei SSML gibr es ja Möglichkeiten zu bestimmen wie Zahlen ausgegeben werden, z.B. z.B. <say-as interpret-as="cardinal">12345</say-as> .Vllt. lässt sich damit zusätzlich Einfluss nehmen.
-
Zahlen die im Text stehen konnte ich auf diese Weise beeinflussen.
Aber bisher habe ich es noch nicht geschafft mit Blockly einen echten Sensorwert (Homematic IP) damit in der richtigen Aussprache zu verändern.
Bemerkt habe ich aber das auch hier Leerzeichen oder Kommas die Ansage verändern.
Der Wert im Objekt ist z.B. 21.5°C
(also mit Punkt dazwischen)
Mit einem runden Baustein wird es sicher gehen, aber ich probiere heute noch etwas rum.
Vielleicht hat ja Jemand ein Beispiel wie Temperaturansagen mit Blockly und ssml z.B. mit Hans aufgebaut sein müssen.
-
Oder den Punkt durch ein Komma austauschen?
-
Die Einheit steht bei Sensoren imho nicht im Datenpunkt, die ist separat als unit definiert. Daher kommt sie beim Wert auch nicht mit.
Es kommt als nur 21.5 durch den Blockly Baustein im speak an. Mit SSML würde man sich ggf die Finger brechen. Einfacher ist es tatsächlich den Wert vorher in eine Variable zu schreiben und dabei direkt den Punkt durch Komma zu ersetzen. Im gleichen Atemzug ließe sich auch eine Rundung oder Reduzierung der Nachkommastellen erledigen. Meine Temp.sensoren liefern z.B. 2 Nachkommastellen, was sich aber übertrieben anhört bei einer Ansage.
-
Einfacher ist es tatsächlich den Wert vorher in eine Variable zu schreiben und dabei direkt den Punkt durch Komma zu ersetzen. `
Wie stelle ich das mit Blockly an ?
(Die Ansage mit dem runden Baustein funktioniert zwar, aber ich möchte es auch gern mit Komma hinkriegen)
-
Habe jetzt mal alles mögliche mit SSML und einer Temperatur mit Punkt als Dezimaltrenner probiert, aber die say-as Regeln werden da anscheinend null umgesetzt.
Daher muss man den Punkt tatsächlich ersetzen. Allerdings ist es mit Blockly aufwändiger als gedacht, aber nicht unmöglich.
Ich habe bei mir mal noch eine Rundung am Anfang, um nur noch 1/10 statt 1/100 zu erhalten.
Idealerweise baut man den Teil in eine Funktion im Skript und kann sie so für jeden weiteren Wert anwenden.
Edit: https://forum.iobroker.net/viewtopic.php?p=220453#p220453
6549_blockly_dot2comma.jpg -
Kannst du mir das mal exportieren um es zu testen?
-
Blockly Export ist im Post ergänzt.
Angepasst werden muss der Datenpunkt des Ausgangswertes und das SSML des eigenen Echos.
-
Im Alexa2.2 gibt es bei den Commands die Calendar Funktion.
Da sind Buttons. Wie setzte ich das ein und was sollen die machen?
Ich frage wegen der Kalender Eintrag Ansage. Mache das jetzt mit ical.
-
Falscher Thread. Hier geht es nur um SSML.
-
Blockly Export ist im Post ergänzt.
Angepasst werden muss der Datenpunkt des Ausgangswertes und das SSML des eigenen Echos. `
Cool, Danke funktioniert Super:)
-
Habe jetzt mal alles mögliche mit SSML und einer Temperatur mit Punkt als Dezimaltrenner probiert, aber die say-as Regeln werden da anscheinend null umgesetzt.
Daher muss man den Punkt tatsächlich ersetzen. Allerdings ist es mit Blockly aufwändiger als gedacht, aber nicht unmöglich.
Ich habe bei mir mal noch eine Rundung am Anfang, um nur noch 1/10 statt 1/100 zu erhalten.
filename="blockly_dot2comma.jpg" index="0">~~
Idealerweise baut man den Teil in eine Funktion im Skript und kann sie so für jeden weiteren Wert anwenden.
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="comment" id="9yC:!Mo]+Ja|ngua#dcB" x="-2337" y="1097"><field name="COMMENT">Ausgangswert ist 22.25</field> <next><block type="variables_set" id="kyb53p6qG0y2b+i?ZE7)"><field name="VAR">temperature</field> <value name="VALUE"><block type="convert_tostring" id="`i)}aCg[}[,3X4gI,Lo`"><value name="VALUE"><block type="math_arithmetic" id="[U9o@^8Shy:a6SaT5Y./"><field name="OP">DIVIDE</field> <value name="A"><shadow type="math_number" id=":m83B^ocMuWT[1)v5r!%"><field name="NUM">1</field></shadow> <block type="math_round" id="zJyC;7])I;^RP#:0zUtL"><field name="OP">ROUND</field> <value name="NUM"><shadow type="math_number" id=":8im043{@komE:.%No`-"><field name="NUM">0.16666</field></shadow> <block type="math_arithmetic" id=".Rnz%lC3jhowi^0j^*T|"><field name="OP">MULTIPLY</field> <value name="A"><shadow type="math_number" id="3v;V[EwqL{E|VWc[:[/R"><field name="NUM">0.016666</field></shadow> <block type="get_value" id="N~,PW5}_38t3Mm9Zgl2T"><field name="ATTR">val</field> <field name="OID">mihome.0.devices.sensor_ht_158d0001182357.temperature</field></block></value> <value name="B"><shadow type="math_number" id="I!IH0LjtSJ`@WRLpxh{s"><field name="NUM">10</field></shadow></value></block></value></block></value> <value name="B"><shadow type="math_number" id="fQ(lV5hwk:WZ^LF}Oaml"><field name="NUM">10</field></shadow></value></block></value></block></value> <next><block type="variables_set" id="~^dN*J*MO0M,BnSlKPB("><field name="VAR">decimal</field> <value name="VALUE"><block type="text_getSubstring" id="yTtA,qJ@9f2@/AE-EpH="><mutation at1="false" at2="true"></mutation> <field name="WHERE1">FIRST</field> <field name="WHERE2">FROM_START</field> <value name="STRING"><block type="variables_get" id="%5K/d!^is(kk{u3TJgen"><field name="VAR">temperature</field></block></value> <value name="AT2"><block type="math_arithmetic" id="0+BL`~d.~kH^C=k@HbO!"><field name="OP">MINUS</field> <value name="A"><shadow type="math_number" id="dqeWj1g.3?|/lv}BP28V"><field name="NUM">1</field></shadow> <block type="text_indexOf" id="XbWz9i#c36fba:=@H*j_"><field name="END">FIRST</field> <value name="VALUE"><block type="variables_get" id="99(),.-1pJX7*,9?t3I~"><field name="VAR">temperature</field></block></value> <value name="FIND"><shadow type="text" id="j)wFGK{!g)T|QCszFSHZ"><field name="TEXT">.</field></shadow></value></block></value> <value name="B"><shadow type="math_number" id="ZU2@}SbCt;iamp+7P2*."><field name="NUM">1</field></shadow></value></block></value></block></value> <next><block type="variables_set" id="}(0k)T9PMz@e7Vo_QA;V"><field name="VAR">decimal_place</field> <value name="VALUE"><block type="text_getSubstring" id="ecCC;B,m}V|:=)eIl2QG"><mutation at1="true" at2="false"></mutation> <field name="WHERE1">FROM_START</field> <field name="WHERE2">LAST</field> <value name="STRING"><block type="variables_get" id="0GBG5_WP3Hsm(7P9m-oE"><field name="VAR">temperature</field></block></value> <value name="AT1"><block type="math_arithmetic" id="^@GB;i3GWjqi^2zyONdM"><field name="OP">ADD</field> <value name="A"><shadow type="math_number" id="dqeWj1g.3?|/lv}BP28V"><field name="NUM">1</field></shadow> <block type="text_indexOf" id="5p_F3nLTLg1!K!8:S%{I"><field name="END">FIRST</field> <value name="VALUE"><block type="variables_get" id="+=Y9BpNCNVLUcE]yJ3Td"><field name="VAR">temperature</field></block></value> <value name="FIND"><shadow type="text" id="VWNL?q]xtow,d?J25::s"><field name="TEXT">.</field></shadow></value></block></value> <value name="B"><shadow type="math_number" id="]7tSw`Q/}s[9o(NItFiv"><field name="NUM">1</field></shadow></value></block></value></block></value> <next><block type="variables_set" id="xX,UYQmi60v(!7AU!B@_"><field name="VAR">temp_with_comma</field> <value name="VALUE"><block type="text_join" id="2}A5i;,3I!,2VWW[0@XT"><mutation items="3"></mutation> <value name="ADD0"><block type="variables_get" id=".@!5JN@V5IOwh-[_BOtH"><field name="VAR">decimal</field></block></value> <value name="ADD1"><block type="text" id="!Qrz934?1,~IDf9]y1_w"><field name="TEXT">,</field></block></value> <value name="ADD2"><block type="variables_get" id="Am2qU)J3KMvAlHUMXoT@"><field name="VAR">decimal_place</field></block></value></block></value> <next><block type="debug" id="iDDsr.Gdw?=kJ-~!5b2m"><field name="Severity">log</field> <value name="TEXT"><shadow type="text" id="or0T6K!uuP5AB[y.A/P!"><field name="TEXT">test</field></shadow> <block type="variables_get" id="@.bCA)+ian-9,{A8,dtU"><field name="VAR">temp_with_comma</field></block></value> <next><block type="control" id="e3vh5Q5WSQh`mMVcquvF"><mutation delay_input="false"></mutation> <field name="OID">alexa2.0.Echo-Devices.G090U50984841UJE.Commands.ssml</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="text_join" id="DC-k3HUfr?})Ve:?NXk_"><mutation items="3"></mutation> <value name="ADD0"><block type="text" id="AbKDH?kmc(TQgO`8E4W)"><field name="TEXT"><speak><voice name="Hans"></field></block></value> <value name="ADD1"><block type="variables_get" id="O3:T21O7AuE[aEKdFZeQ"><field name="VAR">temp_with_comma</field></block></value> <value name="ADD2"><block type="text" id="y35N~x@?1Y~yL,aU,Tnx"><field name="TEXT"></voice></speak></field></block></value></block></value></block></next></block></next></block></next></block></next></block></next></block></next></block></xml> ```` ` baue ich gleich mal ein.
Ich habe bei mir jetzt mal eine Art kleinen Zufallsgenerator erstellt und lasse mir dann die Temperaturansage Zufallsgeneriert mit drei verschiedenen Stimmen machen.
Alexa/Hans/Marlene.
Ist nur eine Spielerei, aber funktioniert.
-
Im Alexa2.2 gibt es bei den Commands die Calendar Funktion.
Da sind Buttons. Wie setzte ich das ein und was sollen die machen?
Ich frage wegen der Kalender Eintrag Ansage. Mache das jetzt mit ical. `
Falscher Thread und tut noch nicht. Kommt noch deswegen noch nicht angekündigt … war versehen das es auf GitHub gerutscht ist