Kurz, worum gehts:
"flexible Betty" (fB) erweitert den Bordcomputer Betty um die Möglichkeit alle Namen und Worte ausprechen zu können.
Lange war ich begeistert von den vielen tollen Scripts und Modifikationen, die hier im Forum bereitgestellt wurden und das Spiel um ein vieles verbesserten. Irgendwie wollte ich nicht nur nehmen, sondern auch was geben. Schließlich wurde ich auf die Custom Ship Names (CSN) - Betty-Spracherweiterung aufmerksam, welches nicht schlecht ist, aber meiner Meinung nach noch besser geht. Der Vorteil von CSN ist, dass es die selbe Stimme von Betty verwendet, die man üblicherweise in X hört. Der Nachteil aber, die extreme Beschränkung in der Auswahl der Namen und Worte, die ausgesprochen werden können, brachte mich dazu, selbst ein bisschen herum zu experimentieren.
Was kam dabei heraus? Schaut selbst:
Betty spricht! (Youtube)
[ external image ]
Wie funktioniert es:
Zu dieser Zeit ist nur die Ziel-Funktion enthalten, d.h. das Aussprechen der Namen von anvisierten Zielen, deren Eigentümer der Spieler ist. Schiffe sowie Stationen.
Man visiert also ein Ziel an und mittels LogFile werden Informationen aus X3 herausgebracht. Ein VBScript verarbeitet diese Informationen und lässt sie durch die "MS Text to Speech"-Funktion sprechen.
Obwohl mir momentan keine Bugs bekannt sind, befindet sich fB noch im Alpha-Status!
[ external image ]
Download:
flexible Betty - fb_0.0.5.1.zip (22KB)
Tipp: Bei einer schon vorhandenen Version, muss die replace.txt nicht überschrieben/ersetzt werden. Das spart erneute Konfiguration und Anpassung.
Beachtet bitte, dass euer Spiel mit Sicherheit ***modified*** wird.
Enthaltene Dateien:
- director\spin.fB.target.xml - X3TC director Script
- scripts\setup.spin.fB.xml - X3TC Script, Installation
- scripts\spin.fB.aim.xml - X3TC Script, Verarbeitung der Ziele
- scripts\spin.fB.menue.xml - X3TC Script, Einstellungs-Menü
- scripts\spin.fB.out.xml - X3TC Script, das ein LogFile zur Ausgabe erzeugt
- scripts\uninstall.spin.fB.xml - X3TC Script, Deinstallation
- t\7777-L049.xml - Sprachdatei, deutsch
- fB.vbs - VBScript zum Verarbeiten und Ausführen des Text to Speech
- TTS-Test.vbs - VBScript, ein Zweizeiler zum Testen von VB und TTS
- TTS-Test_64bit_Steffi.vbs - VBScript, ein Dreizeiler zum Testen von VB, TTS und Steffi auf 64-bit-Systemen
- TTS-getVoiceName.vbs - VBScript, hiermit kann man den Namen der Stimme auslesen, die in Windows eingestellt ist
- settings.ini - Konfigurationsdatei von fB.vbs
- replace.txt - Enthält Parameter für besser/andere Ausprache
- -start.Ink/-start_message.Ink - Verknüpfung um fB.vbs zu starten
- -stop.Ink/-stop_message.Ink - Verknüpfung um fB.vbs zu starten
fB.vbs ist kein gefährliches Script, es greift lediglich auf das LogFile im entsprechenden X3TC-Ordner(muss angegeben werden) und auf die run-Datei(wird ersetllt), "setting.ini" und "replace.txt" im eigenen Ordner zu. fB.vbs ist zwangsweise "OpenScource", denn man kann sie mit jedem x-beliebigen Texteditor öffnen und den Code betrachten
[ external image ]
Funktioniert flexible Betty auf meinem Rechner?
Momentan nur Windows!
Grundsächlich läuft fB unter jedem Windows (XP, Vista, Win7) und kann am schnellsten mit der von mir mitgelieferten "TTS-Test.vbs" getestet werden. Diese Datei einfach ausführen.
- Wenn man eine Fehlermeldung bekommt:
- Dann ist vieleicht der VBS-Dienst deaktiviert und muss aktiviert werden.
Windows Scripting Host (kurz: WSH) aktivieren - Man hat nicht die Rechte dazu (Administrator?).
- Bestimmte Programme(AntiVierSW, AntiSpySW...) sind zu restriktiv und blockieren den WSH.
- Dann ist vieleicht der VBS-Dienst deaktiviert und muss aktiviert werden.
- Wenn man eine Stimme hört, jene aber nicht versteht:
Dann ist wahrscheinlich eine Stimme mit einer andern Sprache eingestellt. Diese muss im
winXP -> Systemsteuerung -> Sprache -> Text-in-Sprach
vista/win7 -> Systemsteuerung -> Erleichterte Bedienung -> Spracherkennung -> Text-zu-Sprach
eingestellt werden. (Habe nur XP) - Nun kann es sein, dass keine deutsche Stimme installiert ist oder eine, mit einer schlechten Qualität. Normalerweise müsste sich jeder selbst um eine anständige Stimme kümmern, jedoch habe ich Kenntnisse über eine erlangt, die zu nicht kommerziellen Nutzung kostenlos zur Verfügung steht: http://people.fh-landshut.de/~hpk/Sprache.htm Steffi (RSSolo4german, ca. 20,7MB)
Nicht dieselbe Stimme, wie im Video!
Es sah so aus, dass speziell "Steffi" nicht unter den 64bit-Versionen lief. Das Problem war, dass "Steffi" nur mit einer speziellen Code-Zeile aufgerufen werden konnte, jene aber beim Ausführen im WindowsExplorer eine Fehlermeldung ergab. Zum Glück wurde eine momentan endgültige Lösung gefunden:- Mittels des Total Commanders oder des freeCommander(kostenlos) lässt sich das Script mit installierter "Steffi" ohne Probleme unter 64bit ausführen.
- Damit "Steffi" gefunden wird muss in der settings.ini das ->'<-Apostroph vor der Zeile:
'spVoice = ScanSoft Steffi_Dri40_16kHz
entfernt werden. Selbsttest mit der TTS-Test_64bit_Steffi.vbs.
"Steffi" muss dabei nicht im Text-in-Sprach Menü erscheinen! (Getestet mit Win7-64bit-Professionel und -Ultimate)
Installation:
Wenn man sicher ist, dass VBS und TTS auf dem Rechner läuft(mit TTS-Test.vbs testen) gehts wie folgt:
- Zip-Datei an einem Ort entpacken, der leicht und schnell zugänglich ist.
- Die drei Ordner director, scripts und t in das Hauptverzeichnis von X3TC kopieren.
- settings.ini öffnen und den Pfad der Logdatei anpassen. Unter XP ist es
C:\Documents and Settings\BENUTZERNAME\My Documents\Egosoft\X3TC\log77777.txt
(Habe nur XP). Speichern und schließen.
Hinweis: Die log77777.txt wird erst mit dem X3TC-Script erstellt. - Pfad der start- und stop-Shortcuts anpassen.
Es sollte darauf geachtet werden, dass man beim Anpassen die Parameter nicht löscht:
"C:\...\...\fB.vbs" -start
(Beispiel aus der -start.Ink)
Starten und Beenden von fB.vbs über die Shortcuts, entweder -start.Ink oder -start_message und -stop.Ink oder -stop_message.Ink. Spiel starten, Eigentum beliebeg bennen und anvisieren. Sonst nix.
64bit-System Benutzer sollten das Script mit dem Total Commanders oder dem freeCommander(kostenlos) ausführen.
Bei Verwendung von "Steffi" auf einem 64bit-System bitte die Lösung unter "Funktioniert flexible Betty auf meinem Rechner?" beachten!
[ external image ]
Konfiguration:
- Unter X3TC -> Spieloptionen -> Steuerung -> Oberfläche(ganz nach unten scrollen) kann ein Hotkey für die Einstellung von fB festgelegt werden. Dort kann gewählt werden, bei welcher Art von Zielen fB spricht.
- Manache Namen werden automatisch duch Scripte (z.B. CODEA) generiert und beinhalten Nummern und Buchstaben, die beim anvisieren nicht genannt werden sollen.
Z.B.: KRV Schwerer Zentaur Prototyp YZW-23-X76 (XYZ-34-G34)
Unter Verwendung von zwei Doppelpunkten "::"(ohne "") kann man bestimmen, ab wann der Name nicht weiter ausgesprochen wird.
Z.B.: KRV Schwerer Zentaur Prototyp :: YZW-23-X76 (XYZ-34-G34)
Gesprochen wird nur "KRV Schwerer Zentaur Prototyp".
Tipp: Dieses Zeichen(STOPsign) kann in der settings.ini geändert werden.
Hinweis: Die selbe Funktion erfüllt "||" (ohne ""). Dies kann nicht geändert werden. - Anhand der replace.txt können Strings(Zeichenfolgen) durch andere ersetzt werden. Das kann die Aussprache verbessern.
Z.B.: Xperminetal = Iks perimental
Vorteilhaft ist sie außerdem, um Abkürzungen "ausgeschrieben" auszusprechen.
Z.B: KRV Schw. Zentaur Prtyp. :: YZW-23-X76 (XYZ-34-G34)
Gesprochen wird "Korvette Schwerer Zentaur Prototyp". - In der settings.ini kann eine spezielle Stimme(spVoice) entgegen der WindowsEinstellung gewählt werden.
Z.B.: spVoice = LH Stefan
Wichtig bei Verwendung einer 32bit-Stimme auf einem 64bit-System (z.B. "Steffi").
Es sollte auf korrekte Schreibweise geachtet werden, sonst wird ein Fehler erzeugt! - Außerdem kann eine bestimmte Lautstärke(spVolume) und Geschwindigkeit(spRate) entgegen der WindowsEinstellung gewählt werden. Hat auch Auswirkungen auf die spezielle Stimme(spVoice), wenn diese aktiv ist.
- Für jene Leute, die eine zweite Stimme benutzten möchten, gibt es die alternative Stimme(alVoice).
Z.B.: alVoice = Microsoft Sam
Diese wird benutzt, wenn sich "/al/"(ohne "") in der zu sprechenden Zeichenkette befindet.
Es sollte auf korrekte Schreibweise geachtet werden, sonst wird ein Fehler erzeugt!
Die Lautstärke(alVolume) und Geschwindigkeit(alRate) wirken nur auf diese alternative Stimme(alVoice).
Wenn es weiter derartige Abweichungen gibt, bitte ich darum, diese mir mitzuteilen.
Hinweis: Mit der Datei TTS-getVoiceName.vbs kann der Name der Stimme ausgelesen werden, die aktuell in Windows eingestellt ist.
[ external image ]
Deinstallation:
1. Spielername in X3TC temporär in uninstallfB umbennen -> Signal + Nachricht ins Logbuch
2. Spiel beenden und fB-Dateien aus dem director-, script-, und t-Verzeichnis löschen.
[ external image ]
Kompatiblität:
Da fB ähnlich funktioniert wie die Custom Ship Names (CSN) - Betty-Spracherweiterung, kollidieren sie in der director-XML.
LogFile: log77777.txt
Sprachdatei: 7777-L049.xml (ID 7777)
Ansonsten sind mir weiter Probleme nicht bekannt. Eigentlich müsst fB zu fast allen Mods/Scripts parallel laufen können. Daher ist es für Mod-Projekte mit neuen Namen vieleicht von besonderem Interresse. Auch sollte man wissen, dass fB mehr könnte, als nur die Namen und Schiffe zu nennen. Mit der richtigen Anpassung stehen einem, in puncto Kommunikation, alle Grenzen offen.
Wer fB gerne in seinem Mod benutzten will muss nur spin.fB.out einen String oder eine Variable übergeben.
Code: Select all
@ = [THIS] -> call script spin.fB.out : value = <?>
Versionsänderungen:
20.10.10 (Version 0.0.1)
- Erstveröffentlichung.
- API Erweiterung zum vereinfachten Zugriff von andern Scripts.
- Es kann eine feste Stimme entgegen der WindowsEinstellung in der settings.ini festgelegt werden.
- Problem mit 64bit-Windows gelöst.
- Es ist möglich, eine zweite Stimme neben der Standardstimme festzulegen.
- Die Geschwindigkeit und Lautstärke der Standardstimme und zweiten Stimme kann in der settings.ini zugewiesen werden.
- Hotkey/Menü zur Zieleinstellung hinzugefügt.
- Deinstallationsroutine hinzugefügt.
- (Version 0.0.5.1)
- Variables Stop-Zeichen auf "::"(ohne "") geändert.
- Verankertes Stop-Zeichen "||"(ohne "") eingebaut.