Das Thema Text to Speech mit dem Gamemaker ist immernoch nicht geklärt.
War man lange auf der Suche nach einer DLL oder versuchte sich selber an einer TTS Software.
Doch Dank der eingebauten "Visual Basic Script" von Windows ist das jetzt über die eingebaute Sprachausgabeoption von Windows möglich.
Momentan hat bestimmt jeder von euch diese Trantüte "Microsoft SAM". Alle die eine englische Sprachausgabe wollen, sollten ihn auch behalten.
Doch diejenigen die eine deutsche Sprachausgabe wollen, können sich die deutsche Stimme Steffi herunterladen.
Und da diese Stimme relativ schwer zu finden ist ... hier ist der Link RSSolo4GermanSteffi.exe (download)
Diese Stimme kann zwar nicht zum vorlesen von Desktopereignissen einstellen, ist aber für unsere Zwecke perfekt.
Einsatz im Gamemaker
Als erstes erstellen wir ein Script im Stammbaum des Gamemakers namens say_text mit folgendem Inhalt:
Alles anzeigen
Der Gamemaker wird dann eine Datei im Temp Ordner anlegen.
Und weil wir unser Geheimnis niemandem verraten möchten ^^, und um Müll zu vermeiden, wollen wir diese beim beenden eures Spieles oder Programmes wieder löschen. Dazu erstellen wir folgenden Script namens say_delete:
So fertig!
Jetzt müssen wir nurnoch den Script ausführen indem wir irgendwo folgende Zeile aufrufen:
"Satz" ist eine Variable, klar. Das lässt einfach mehr Freiheit. Man könnte aber auch nur say_text("Servus") ausführen.
Und so sieht dann die VBS aus:
Wer MS SAM haben möchte, der muss nur den Text "ScanSoft Steffi_Dri40_16kHz" zu "Microsoft Sam" ändern.
Im Game_end Event des Gamemakers sollte man den Script "say_delete" ausführen.
Wichtig ist auch, dass man diese Funktion nicht im Step oder draw ausführt. Das könnte sonst zu Problemen führen. Einfach warten bis Steffi ausgeredet hat. > Eine Funktion zum unterbrechen des aktuell gesprochenen Textes kenne ich noch nicht.
Noch Fragen?
Wer zu faul ist die Codezeilen zu kopieren ... hier das Example:
War man lange auf der Suche nach einer DLL oder versuchte sich selber an einer TTS Software.
Doch Dank der eingebauten "Visual Basic Script" von Windows ist das jetzt über die eingebaute Sprachausgabeoption von Windows möglich.
Momentan hat bestimmt jeder von euch diese Trantüte "Microsoft SAM". Alle die eine englische Sprachausgabe wollen, sollten ihn auch behalten.
Doch diejenigen die eine deutsche Sprachausgabe wollen, können sich die deutsche Stimme Steffi herunterladen.
Und da diese Stimme relativ schwer zu finden ist ... hier ist der Link RSSolo4GermanSteffi.exe (download)
Diese Stimme kann zwar nicht zum vorlesen von Desktopereignissen einstellen, ist aber für unsere Zwecke perfekt.
Einsatz im Gamemaker
Als erstes erstellen wir ein Script im Stammbaum des Gamemakers namens say_text mit folgendem Inhalt:
Quellcode
- {
- var Data;
- Data = file_text_open_write(temp_directory+"/"+"speech.vbs")
- file_text_write_string(Data,'Set d=CreateObject("SAPI.SpVoice")')
- file_text_writeln(Data)
- file_text_write_string(Data,'Set d.Voice=d.GetVoices("Name=ScanSoft Steffi_Dri40_16kHz").Item(0)')
- file_text_writeln(Data)
- file_text_write_string(Data,'d.Speak "'+argument0+'"')
- file_text_close(Data)
- execute_shell(temp_directory+"/"+"speech.vbs","")
- }
Der Gamemaker wird dann eine Datei im Temp Ordner anlegen.
Und weil wir unser Geheimnis niemandem verraten möchten ^^, und um Müll zu vermeiden, wollen wir diese beim beenden eures Spieles oder Programmes wieder löschen. Dazu erstellen wir folgenden Script namens say_delete:
So fertig!

Jetzt müssen wir nurnoch den Script ausführen indem wir irgendwo folgende Zeile aufrufen:
"Satz" ist eine Variable, klar. Das lässt einfach mehr Freiheit. Man könnte aber auch nur say_text("Servus") ausführen.
Und so sieht dann die VBS aus:
Wer MS SAM haben möchte, der muss nur den Text "ScanSoft Steffi_Dri40_16kHz" zu "Microsoft Sam" ändern.
Im Game_end Event des Gamemakers sollte man den Script "say_delete" ausführen.
Wichtig ist auch, dass man diese Funktion nicht im Step oder draw ausführt. Das könnte sonst zu Problemen führen. Einfach warten bis Steffi ausgeredet hat. > Eine Funktion zum unterbrechen des aktuell gesprochenen Textes kenne ich noch nicht.
Noch Fragen?
Wer zu faul ist die Codezeilen zu kopieren ... hier das Example:
57 6F 77 2C 20 64 61 73 20 68 61 73 74 20 64 75 20 67 61 6E 7A 20 61 6C 6C 65 69 6E 20 67 65 73 63 68 61 66 66 74 2E 20
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von DanielGM61 ()