Beruflich Dokumente
Kultur Dokumente
4
customization tutorial
von MiTon
B.SHSPeech_Grammar.xml
C.SHSpeech_Commands.xml
D.Speech Recognition.py
Hallo da draußen!
B. Einen Editor wie notepad++, am besten mit installierten Plugins für Vergleich
und XML
C. DEVELOPING in „C:\Users\YourUserName\Documents\SH5\data\cfg
\main.cfg“. „eingeschaltet“
;COMMENT
[DEVELOPING]
Modding=Yes
MenuEditor=Yes
DebugScripts=Yes
D. Dazu auch [TEC] Mod Tools, HowTo! Wir werden den ScriptManager noch
zum testen benötigen!
II. get ready:
A. Wenn nicht so wieso schon passiert bitte JSGME installieren! Der Mod kommt
einfach wie sonst auch in den MODS Ordner. Ein super Ort um das ganze
dann auch schnell zu testen
B.SHSPeech_Grammar.xml
2. Los gehts
z.B:
• Erkennungshandbuch einblenden
• Handbuch einblenden
• Handbuch anzeigen
• Handbuch wegpacken
All diese Befehl sollen später das Handbuch ein und ausblenden.
Aber vielleicht wollen wir ja später auch noch andere Dinge ein und
ausblenden deshalb sollten wir z.B. einblenden, ausblenden, anzeigen,
wegpacken, ... so verpacken, das wir es in der Grammatikdatei nicht
allzu oft tippen müssen?
Das gleiche gilt dann natürlich auch für Erkennungshandbuch,
Handbuch, ... Dabei sollten wir vielleicht auch noch daran denken ob die
Spracherkennung dieses Wort gut verstehen kann. Also fügen wir
vielleicht noch etwas wie Erkennungs Handbuch hinzufügen. Das
können wir dann später testen und gegebenenfalls einfach wieder
löschen.
Wir wollen diese Wörter quasi als Variable ablegen, dazu wird der Block
<rule id="idname"/></rule>
verwendet.
<one-of>
! <item>Erkennungshandbuch</item>
! <item>Handbuch</item>
! ! ....
<one-of>
<rule id="toggle"/>
! <one-of>
! ! <item>einblenden</item>
! ! <item>anzeigen</item>
! ! <item>zeigen</item>
! ! <item>öffnen</item>
! !
! ! <item>ausblenden</item>
! ! <item>verbergen</item>
! ! <item>verstecken</item>
! ! <item>wegpacken</item>
! ! <item>schliessen</item>
! <one-of>
</rule>
<rule id="toggleable_items"/>
! <one-of>
! ! <item>Erkennungshandbuch</item>
! ! <item>Erkennungs Handbuch</item>
! ! <item>Handbuch</item>
! ! <item>Kriegstagebuch</item>
! ! <item>Bootsstatus</item>
! <one-of>
</rule>
!
So, wollen wir nun irgendetwas ein- oder ausblenden haben wir nun die
Möglichkeit das einfach als neues <item> in die Regel einzufügen und
es ist automatisch immer dabei wenn die entsprechende <ruleref uri>
aufgerufen wird. Hier immer auf das # achten.
Wir können uns aber auch einen neuen Befehl basteln z.B.
Jetzt können wir also auch die Uhr ein- und ausblenden.
Z.B. mit „ Uhrzeig anzeigen LI“, oder aber auch nur „Uhrzeit
einblenden“.
Wiederholungen und das gilt auch für die Möglichkeit das Wort nur
vielleicht zu benutzen, erledigen wir wie gesehen über <item
repeat=“0-1“>.
Das heisst „0-1“ gibt mir die Möglichkeit das Wort wegzulassen.
„3“ bedeutet das ich das Wort 3mal wiederholen muss.
ich definiere also z.B.
<item repeat="2-3"/><!--Alarmtauchen-->
! tauchen
</item>
Die Arbeit in SHSpeech_Grammar ist nun getan, wir lassen sie aber
noch geöffnet, da wir sie noch zum spicken verwenden werden.
C.SHSpeech_Commands.xml
Wir haben zuvor neue Sätze definiert, diese wollen wir nun noch an ein
Kommando binden:
<order><!--Erkennungshandbuch einblenden-->
! <commandText></commandText>
</order>
<order><!--Erkennungshandbuch einblenden-->
! <item>Erkennungshandbuch</item>
! <item>Erkennungs Handbuch</item>
! <item>Handbuch</item>
! <item>einblenden</item>
! <item>anzeigen</item>
! <item>zeigen</item>
! <item>öffnen</item>
! <commandText></commandText>
</order>
3. Mit etwas Überlegung und Copy and Paste können wir daraus im nu eine
ganze Latte an <phrase> basteln. Wir kopieren uns dazu einfach mal
„Erkennungshandbuch“ vor die Elemente „einblenden“.
<order><!--Erkennungshandbuch einblenden-->
! <item>Erkennungshandbuch</item>
! <item>Erkennungs Handbuch</item>
! <item>Handbuch</item>
! <item>Erkennungshandbuch</item><item>einblenden</item>
! <item>Erkennungshandbuch</item><item>anzeigen</item>
! <item>Erkennungshandbuch</item><item>zeigen</item>
! <item>Erkennungshandbuch</item><item>öffnen</item>
! <commandText></commandText>
</order>
Dann kopieren den neuen Block einfach so oft wir noch andere <item>
aus der Gruppe „#toggleable_items“ haben. In diesem fall also zweimal.
In den Zwei Kopien ersetzen wir dann einfach Erkennungshandbuch,
Erkennungs Handbuch und Handbuch.
Wenn wir dann noch ein bißchen aufräumen bekommen wir
<order><!--Erkennungshandbuch einblenden-->
! <item>Erkennungshandbuch</item><item>einblenden</item>
! <item>Erkennungshandbuch</item><item>anzeigen</item>
! <item>Erkennungshandbuch</item><item>zeigen</item>
! <item>Erkennungshandbuch</item><item>öffnen</item>
!
! <item>Erkennungs Handbuch</item><item>einblenden</item>
! <item>Erkennungs Handbuch</item><item>anzeigen</item>
! <item>Erkennungs Handbuch</item><item>zeigen</item>
! <item>Erkennungs Handbuch</item><item>öffnen</item>
! <item>Handbuch</item><item>einblenden</item>
! <item>Handbuch</item><item>anzeigen</item>
! <item>Handbuch</item><item>zeigen</item>
! <item>Handbuch</item><item>öffnen</item>
! <commandText></commandText>
</order>
4. Nun ersetzen wir </item><item> erst einmal durch ein Leerzeichen. Und im
Anschluss item durch phrase und wir sind fast fertig
<order><!--Erkennungshandbuch einblenden-->
! <phrase>Erkennungshandbuch einblenden</phrase>
! <phrase>Erkennungshandbuch anzeigen</phrase>
! <phrase>Erkennungshandbuch zeigen</phrase>
! <phrase>Erkennungshandbuch öffnen</phrase>
!
! <phrase>Erkennungs Handbuch einblenden</phrase>
! <phrase>Erkennungs Handbuch anzeigen</phrase>
! <phrase>Erkennungs Handbuch zeigen</phrase>
! <phrase>Erkennungs Handbuch öffnen</phrase>
! <phrase>Handbuch einblenden</phrase>
! <phrase>Handbuch anzeigen</phrase>
! <phrase>Handbuch zeigen</phrase>
! <phrase>Handbuch öffnen</phrase>
! <commandText></commandText>
</order>
5. Jetzt müssen wir noch irgendwie die Lücke füllen die in <commandText></
commandText> vorhanden ist. Dazu können wir Befehle verwenden, die
unter \Documentation\Game_Commands.txt aufgeführt sind und auch in
bei der Tastaturbelegung zum Einsatz kommen können. Da aber nicht alle
Befehle auch so funktionieren oder evtl. gar nicht vorhanden sind, kommt
die Speech Recognition.py zum Einstaz.
D.Speech Recognition.py
<order><!--Erkennungshandbuch einblenden-->
! <phrase>Erkennungshandbuch einblenden</phrase>
! <phrase>Erkennungshandbuch anzeigen</phrase>
! <phrase>Erkennungshandbuch zeigen</phrase>
! <phrase>Erkennungshandbuch öffnen</phrase>
!
! <phrase>Erkennungs Handbuch einblenden</phrase>
! <phrase>Erkennungs Handbuch anzeigen</phrase>
! <phrase>Erkennungs Handbuch zeigen</phrase>
! <phrase>Erkennungs Handbuch öffnen</phrase>
! <phrase>Handbuch einblenden</phrase>
! <phrase>Handbuch anzeigen</phrase>
! <phrase>Handbuch zeigen</phrase>
! <phrase>Handbuch öffnen</phrase>
Fertig! In dieser Art können wir nun weitere Befehle hinzufügen oder
verändern.
Wenn wir testen wollen, weiter zu Abschnitt IV.
! Das wäre evtl. ein guter Zeitpunkt für ein Backup :)
IV.jetzt wird getestet:
A. Installieren wir erst einmal unseren Mod.
if speech == None:
! speech = SHSpeechEngine("en-US")
! speech.Confidence = 0.70 # This is the default and could be ommited!
Happy testing!