Ich hätte möglicherweise eine Alternative zur TTS_Speak Funktion!?
Da unter Windows 7 gewisse Limitierungen herrschen, die eine direkte Sprachausgabe nicht zulassen, muss man ja zuerst den gewünschten Text in eine Datei ausgeben lassen und dann erst per MediaPlayer-Instanz abspielen.
Auf [b]dieser Website[/b] gibt es ein Kommandozeilen-Programm für die Sprachausgabe, welches bei mir unter Windows 7 Home Premium 64 Bit wunderbar funktioniert.
Einfach die .exe-Datei herunterladen, irgendwo speichern und den Pfad zur Datei dann der IPS_ExecuteEx-Funktion angeben; als Parameter den gewünschten Text!
Verwendet wird jeweils die in der Windows Sprachausgabe eingestellte Stimme.
Damit könnte man eventuell (mir fehlt leider die Möglichkeit das zu testen) die direkte Sprachausgabe anwenden:
Vielleicht hat jemand Lust das zu testen und zu bestätigen oder widerlegen!
Ich weiß leider nicht, wie es mit dieser Variante mit den Sicherheitsbeschränkungen von Windows aussieht und ob es daher funktioniert…
Auch wenn es unter Windows 2008 Server (SBS) leider abstürzt, unter Windows 7 fuktioniert es einwandfrei, habe ich es mal in die Anleitungen und nützlichen Skripte verschoben.
Vielleicht kann jemand der Probleme mit TTS_Speak hat das testen, insbesondere auf einem Serversystem wie meines.
@wgreipl: Danke!
Vielleicht klappt es auf (Windows) Server Systemen mithilfe der auf der Website genannten psexec.exe!? Da diese angeblich auf Telnet-Basis läuft, muss man das vorher halt sicherheitstechnisch abwiegen…
Aber solangs im gesicherten LAN ist, kein Problem!
@all:
Achja: Man könnte die TTS-Variante natürlich nett in eine PHP-Funktion packen, z.B.:
Ich habe das mal auf W7x64 ausprobiert.
Klappt ganz gut. In IPS geht es, wenn IPS als Dienst gestartet wird.
Jetzt weiss ich nur nicht, wie ich die einzelnen Soundkarten ansteuern kann.
Außerdem ist mir der Unterschied der beiden „exen“ nicht ersichtlich.
Hallo zusammen! Ich hab damit doch ein kleines Problem…:
Ich hab auf meinem Vista Pc ein Programm (VisualBasic) erstellt, mit dem ich immer arbeite. Ich hab ne Funktion hinzugefügt, mit der ich mir Erinnerungen schreiben möchte, die später dann mit IPS ausgegeben werden können. Wird gespeichert in erinnerung.txt. Folgenden Code in ISP um die Datei auszulesen:
Jetzt kommt als Sprachausgabe immer: „Umgekehrtes Fragezeichen“, und dann erst den Text den ich abgespeichert habe. In der erinnerung.txt ist aber nur der Text den ich haben möchte. Liegts am PHP Code??? Wäre sehr dankbar, wenn jemand ne Antwort hat, weil das stört total! mfg, Bastian
Hi Florida! Danke für deine Antwort!
Hab den Code ausgetauscht durch deinen eleganteren. Funktioniert leider immer noch nicht. Als Rückgabe von $fc bekomm ich: „Test“. Aber in der txt steht nach wie vor nur „Test“. Hast noch ne Idee?
Hm… Sieht so aus, als ob es ein Problem mit der Zeichenkodierung gäbe.
Mit welcher Kodierung hast du die txt-Datei gespeichert? (Im Notepad kannst du das z.B. im Dialogfeld „Speichern unter“ unten noch zusätzlich auswählen [ANSI, Unicode, UTF-8,…]).
Wobei 3 für das Zeichen an der Stelle 3 (beginnend bei 0) steht, ab dem der Dateiinhalt zurückgegeben werden soll.
Wenn das nichts wird, muss man dem Zeichenkodierungsproblem auf die Schliche zu kommen. Eventuell musst du utf8_encode(), bzw. utf8_decode() für deinen Dateiinhalt verwenden.
Allerdings fürchte ich, dass das Grundproblem dadurch nicht gelöst, sondern eher umgangen wurde. Ich würde mich nochmal mit der Zeichenkodierung beschäftigen; nicht dass irgendwann unverhofft bei einem anderen Text in der Datei erneut irgendein Zeichensalat auftritt…
Hattest Recht mit Zeichencodierung:
Visual Basic war Schuld:
„As mentioned in the documentation, „When no encoding is specified, UTF-8 is used“. This will cause the file to have additional 3 bytes at the beginning. These 3 bytes are the Byte-Order-Mark (BOM) of UTF-8 encoding.“
Habs jetzt ordentlich mit ASCII gemacht. Dank dir nochmals ganz herzlich. Lg, Bastian
Hi florida stecke praktisch sowas wie in den Kinderschuhen was ips und Programmierung angeht. Aber auch ich mach Fortschritte :).Wenn ich deiner Anweisung Folge:
Einfach die .exe-Datei herunterladen, irgendwo speichern und den Pfad zur Datei dann der IPS_ExecuteEx-Funktion angeben; als Parameter den gewünschten Text!
Verwendet wird jeweils die in der Windows Sprachausgabe eingestellte Stimme.
Damit könnte man eventuell (mir fehlt leider die Möglichkeit das zu testen) die direkte Sprachausgabe anwenden:
PHP-Code:
IPS_ExecuteEx("SayStatic.exe", "Hallo, Welt!", false, false, 0);
Rechnet das Skript ja zeigt aber keine Fehler an und nichts passiert könntest du das bitte mal step bei step erklären.
Quasi für deppen