machmal werden auch Fragen beantwortet, die noch nicht gestellt wurden…
Wie du bereits bemerkt hast, wird eine Fließkommazahl die nach String gecastet wurde ein wenig seltsam ausgesprochen. Das liegt am ‚.‘ für den Dezimaltrenner - ein ‚,‘ (Komma) ist für Sprache besser geeignet.
Desweiteren sollte man bei der Sprachausgabe auch die Anzahl der Nachkommastellen begrenzen damit man nicht zugetextet wird. Eine Nachkommastelle sollte meistens reichen.
Die Funktion float2speech() rundet den Fliesskommawert auf eine definierbare Anzahl von Nachkommastellen (hier 1) und ersetzt den Punkt durch ein Komma.
die zeile ist schrecklich… ich hätte lieber einen einzigen simplen regulären ausdruck. das funktionierte aber nicht so auf anhieb und ich hatte keine lust damit weiterzuexperimentieren
wenn du wissen willst wie die zeile funktioniert musst du die einzelstrings auseinandernehmen und schauen was passiert.
ansonsten kann man das ganze natürlich auch mit den standard stringfunktionen lösen - wege gibt’s viele dabei
Seit einiger Zeit läuft bei mir schon die Temperatur ansage per TTS. Aber erst heute fällt mir auf, das die Minus Werte gar nicht richtig gesprochen werden. Wie löst man den Temperaturwert auf damit das Minus gesprochen wird?
Die Antwort vielleicht gleich in >>>Anleitungen / Nützliche PHP Scripte / Tipps & Tricks<<< schreiben. Da habe ich leider nicht gefunden.
ich mach das so, das ich die Aussentemperatur vergleiche ob die unter 0°C ist, und falls ja, in der Sprachausgabe ein „minus“ davor schreibe. Bei positiven Temperaturen bleibt das „minus“ weg.
ich muß dieses Thema nochmal aufgreifen. Gibt es für „minus“ keine andere Möglichkeit. Ich lasse mir mehr als 5 Temperaturen ansagen da wird die Sache mit dem minus davorschreiben ein wenig aufwendig.
Für jeden Vorschlag bin ích dankbar.
Wenn deine Engine das nicht unterstützt und du ihr nicht nachhelfen willst musst du halt ne andere verwenden. Ist doch nicht sooo weit hergeholt, oder?
Schreibe dir doch eine Funktion ala Speak($data) welche du in einer include Datei unterbringst und dann überall in deine Skripte einbindest.
In der Funktion kannst du dann alles notwendige hineincoden damit deine Sprachausgaben für Zahlen oder anderen übergebene Daten genau deinen Wünschen entsprechen.
$temp = 'die aussentemperratur beträgt'<-(hier kein leerzeichen dann kein minus da Bindestrich)
.getvalue(20957/*[Garten\Temperatur-Balkon\TEMPERATURE]*/ )
$temp = 'die aussentemperratur beträgt '<-(hier leerzeichen dann minus)
.getvalue(20957/*[Garten\Temperatur-Balkon\TEMPERATURE]*/ )