Textausgabe von Enigma2-Informationen durch Alexa

Hi,
ich möchte die kurzen und langen Sendungsinformationen von einem Enigma2-Receiver per Alexa ausgeben. Ist theoretisch kein Problem aber ein kleines praktisches Problem.

Mit


$info = GetValue(lange Info eines E2-Receivers);    
if (strlen($info) > 10) ECHOREMOTE_TextToSpeech(Echo oder Dot, $info);

bekomme ich meistens einen JSon-Parse Error. E2-Receiver arbeiten eigentlich durchgängig mit UTF8 also habe ich Folgendes probiert


$info = GetValue(lange Info eines E2-Receivers);    
$info = utf8_decode($info);
if (strlen($info) > 10) ECHOREMOTE_TextToSpeech(Echo oder Dot, $info);

jetzt ist der JSon-Fehler weg aber Alexa stolpert über die Umlaute bzw. ignoriert sie was sich unschön anhört. Statt utf8_decode habe ich schon 2 andere Wege erfolglos probiert.

Hat einer eine Idee wie man die E2-Informationen so aufbereiten kann das Alexa sie mag?

Ralf

Bei mir hat der Befehl bisher immer gut funktioniert. Was steht denn in dem Wert? Geb ihn dir doch mal bei Ausführung des Skripts per echo oder var_dump aus. Vielleicht fällt dir oder jemandem hier ja etwas problematisches auf. Denn prinzipiell sieht das alles richtig aus.

Hi,
ich bin mir ziemlich sicher das es an den Umlauten lag. Wenn ich den Text immer kürzer gemacht habe ging es irgendwann und Alexa hat mir vorgelesen. Wenn ich mir den Text nach nach utf8_decode in der Console anzeigen lies, ihn markierte und kopierte und in einem Hex-Editor betrachtete kam im vermeintlich dekodierten Text noch „c3 bc“ für ü vor.

Ich werde es nachher noch einmal nachstellen um Beispieltexte zu bekommen.

Ralf

Hallo,
noch darf ich nicht editieren.

Ich habe es genauer analysiert und meine vermeintliche Lösung war 180 Grad in der falschen Richtung. Die Daten von Enigma liegen in ISO vor und Alexa mag UTF8.

Also

$info = GetValue(lange Info eines E2-Receivers);    
$info = utf8_encode($info);
if (strlen($info) > 10) ECHOREMOTE_TextToSpeech(Echo oder Dot, $info);

ist die Lösung falls es noch jemand braucht.

Mit

                
$pos = strpos($info, "Regie:");
f ($pos){
    $info = substr($info, 0, $pos);
}
$pos = strpos($info, "Darsteller:");
if ($pos){
    $info = substr($info, 0, $pos);
}

kann man dann auch gleich überflüssige Informationen löschen.

Ralf

Gibst es denn nach Deiner Erfahrung jetzt eine Größenbeschränkung oder liest einem Alexa den gesamten Inhalt der aktuellen Sendung vor?

Hi Fonzo,
ich habe schon lange Beschreibungen vorlesen lassen von daher weiß ich noch nicht ob es eine Grenze gibt. Gestern lief Expendables 3 mit einer langen Beschreibung die wurde nicht vorgelesen. Ich werde es mir weiter anschauen. Ist aber eigentlich nur ein Feature um meinen Bruder/Neffen zu beeindrucken:-) Mit „Alexa schalte Sprache aus“ kann ich sie ruhig stellen.

Ralf

Super Idee, da habe ich bislang nie drüber nachgedacht.

Danke für den „Zaunpfahl“, Uwe :cool: