Hallo,
Hab mal gerade mit der alten Speech.dll von Frank Abbing gespielt.
DLLs/Speech.dll - Texte vorlesen lassen. XProfanVor allem ging es mir um das Vorlesen von Zahlen bzw. Dezimalzahlen.
Was ich dabei rausgefunden habe und evtl. nicht jeder weiß :
Bei Dezimalzahlen sollte man den Dezimalpunkt durch ein Komma ersetzen.
Das hat den Hintergrund, daß im deutschsprachigen Raum das Komma als
Dezimaltrenner verwendet wird, die Programmiersprachen bei den Floatvariablen
aber alle einen Punkt als Trenner erwarten. Wenn man den nicht ersetzt, wird die
Zahl in Einzelziffern vorgelesen, also bei "125.50" -> EinsZweiFünfPunktFünfNull.
Bei "125,50" aber -> EinhundertfünfundzwanzigKommafünfNull, was dann korrekt wäre.
Declare String t[3], t1, Handle speech, Long ID, s, Float zahl
CLS
Set("Decimals", 2)
t[0] = "Gestern habe ich 3 Glas Bier in 10 Minuten getrunken"
zahl = 125.50
' für die richtige Aussprache muß der Dezimalpunkt in ein Komma ersetzt werden.
t[1] = "Der Wert ist " + Translate$(Str$(Val(zahl)), ".", ",")
t[2] = "Der Wert ist " + Str$(zahl)
t[3] = "Auf Wiedersehen bis in 8 Tagen"
speech = ImportDLL("Speech.dll", "")
If speech
WhileLoop 0, 3
ID = InitSpeech()
t1 = t[&LOOP]
s = Len(t1)
PlaySpeech(t1, s)
EndWhile
EndIf
WaitKey
StopSpeech()
DeInitSpeech()
FreeDLL speech
End
Alles anzeigen
Wie es aussieht, erkennt das Windows-System die Zahlen automatisch. Ich denke mal nicht, daß sich
Frank Abbing damals die Mühe zum Unterscheiden zwischen Zahlen und Worten gemacht hatte.