Jocys.com Text to Speech Monitor
Tool for text to speech addons in games.

• PROGRAM •

Program home page ( Evaldas Jocys and Vaidotas Jocys ) - http://www.jocys.com
Program source code on GitHub - https://github.com/JocysCom/TextToSpeech
Information about text to speech on Wikipedia - http://en.wikipedia.org/wiki/text-to-speech
Ivona text to speech voices - http://www.ivona.com
World of Warcraft game - http://battle.net/wow

• REFERENCES •

Pitch Shifting in C# - Stephan M. Bernsee - http://www.dspdimension.com
Pitch Shifting in C# - Michael Knight - http://sites.google.com/site/mikescoderama
DirectX Effects - Jack Johnston - http://www.codeproject.com/Articles/jackjohnston99
SharpDX - DirectX API for .NET - https://github.com/sharpdx/SharpDX
SharpPcap .NET library for capturing packets - https://github.com/chmorgan/sharppcap

• ABOUT •

Please download this tool only from trustworthy sources. Make sure, that it is always signed by verified publisher ( Jocys.com ) with signature, issue by trusted certificate authority. This tool requires administrative rights to function.

If your game, like "World of Warcraft", supports addons and you know, how to write one, you can add text-to-speech feature to your game. How it works... When you open window with text (dialogue, quest, book, etc.) or receive chat message in game, WoW Addon creates and sends message to you between <message><part>text</part></message> tags. This message can include text, name, gender, effect, group, pitch, rate, volume, etc. and command value. Then, Monitor, which must be running in background, while gaming, picks-up this message from your network traffic, converts it to SAPI XML and reads it with specific text-to-speech voice.

• TTS VOICES •

FREE text-to-speech voices by Microsoft can be installed on Windows 8.1 with various Microsoft language packs. http://windows.microsoft.com/en-us/windows/language-packs

1. Right-click the “Start Button” > Control Panel > Language.
2. Add additional languages like... English (United States) or English (United Kingdom)... etc.
3. Go to “Options” of each language and click on... [ Download and install language pack ].

Not all languages have text-to-speech voices. To switch between languages in Windows, you can use ( Win+Space ).

BETTER text-to-speech voices by Ivona can be downloaded and installed from http://www.ivona.com or http://www.harposoftware.com (distributor) websites. Good Ivona voices are English-British “Amy” and “Brian". English-American “Salli” and “Joey” are not bad too. Ivona text-to-speech voices cost about $45 each. You can use them for free during trial period for 1 month only.

• HELP •

Simple message example:

<message command="Play"><part>text</part></message>

For Monitor to speak in different text-to-speech voices, pitch and rate, you must have text-to-speech voices installed on your Operating System and Addon must submit game character name ( like "Marshal McBride") and gender ( "Male", "Female" or "Neutral" ) values. Normal message example:

<message name="Marshal McBride" gender="Male" command="Play"><part>text</part></message>

If gender value is not submitted or submitted value is not "Male", "Female" or "Neutral", gender from [ Default Gender ] drop-down box will be used.

If name value is not submitted, text-to-speech voice with highest popularity value ( of specified gender, if gender value is submitted ) in [ Voices ] tab will be used.

Click with mouse on Male, Female or Neutral popularity value to change it. Example:

3 voices are enabled in this setup:

“IVONA 2 Brian” -- will be used as Male (100) and Neutral (100) voice.
“IVONA 2 Amy” -- will be used as Female (100) voice.
“Microsoft Hazel Desktop” -- will be used as Neutral (50) voice.

Number ( from 0 to 100 ) sets, how often voice should be used, relatively to other voices in the same category (Male, Female or Neutral). If you have IVONA male and female voices, you can disable “Microsoft (...) Desktop” voices ( as they are quite bad ).

If you will submit specific values to Monitor, it will use them and will ignore local setup. Advanced message example:

<message name="IVONA 2 Amy" gender="Female" effect="Humanoid" group="Quest" pitch="-5" rate="1" volume="100" command="Play"><part>text[comment]text[/comment]</part></message>

If you are submitting name of text-to-speech voice, like "IVONA 2 Amy", which you have installed on your Operating System, it is not necessary to submit gender value.

name -- can be text-to-specch voice name, like "IVONA 2 Brian", "Microsoft Zira Desktop" ( Monitor will use these names ) or game character names, like "Marshal McBride" ( Monitor will assign text-to-speech voice to this character ).
gender -- voice gender... "Male", "Female" or "Neutral".
pitch -- voice pitch... value from "-10" to "10".
rate -- voice speed... value from "-10" to "10".
effect -- voice sound effects... "Dragon", "Undead", "Mechanic", etc...
group -- text can be assigned to specific group ("Quest", "Whisper", "RaidLeader", etc...) in Monitor, if group value is submitted with command="Play". All group can be removed from Monitor's playlist by submitting group value with command="Stop".
volume -- voice volume... value from "0" to "100".
[comment]text[/comment] -- in Monitor will be replaced to SAPI <pitch absmiddle="(inverted pitch value 8 or -8)" />text<pitch absmiddle="(original pitch value)" />.
command - if you need to start and stop speech or split text in message ( due to 255 character limitation ), use... "Add", "Play", "Stop" values:

<message command="Add"><part>text</part></message> -- First part of message.
<message command="Add<part>text</part></message> -- Second part of message.
<message command="Play"><part>text</part></message> -- Third ( last ) part of message.

Monitor will combine all three messages into one and will start speech. All other name, gender, effect... values must be submitted with the last "Play" part.

• STOP SPEECH •

<message command="Stop" /> -- Stops speech and removes all text from playlist.
<message command="Stop" group="Quest" /> -- Stops speech and removes "Quest" group text from playlist.

• SAVE NAME, GENDER AND EFFECT IN MONITOR •

You can save name, gender and effect values in [ Voice Defaults ] in Monitor, by sending message with command="Save".

<message command="Save" name="Thomas Miller" gender="Male" effect="Humanoid" />

• PLAY SOUND •

You can play included in Monitor or custom WAV audio sound, if it is listed in [ Intro Sounds ] tab in Monitor, by sending message with command="Sound" and group value.

<message command="Sound" /> -- audio, selected in [ Default Intro Sound ] drop-down box, will be played.
<message command="Sound" group="Whisper" /> -- audio, assigned to "Whisper" group, will be played.

Included in Monitor sound names are listed in [ Default Intro Sound ] drop-down box.
Also, you can specify custom paths to WAV files, like C:\Windows\Media\notify.wav

• PORT NUMBERS •

3724 - World of Warcraft.

• ACRONYMS •

Key-Regex values are .NET Framework Regular Expressions.

• MONITOR FILES ( WINDOWS 8 ) •

If you will delete these files, default settings will be loaded.

Program, [ Voice Defaults ] and [ Intro Sounds ] settings:
C:\ProgramData\Jocys.com\Text to Speech Monitor\Settings.Monitor.xml

[ Effects Presets ] settings:
C:\ProgramData\Jocys.com\Text to Speech Monitor\Presets\<PRESETNAME>.Preset.xml

• WORLD OF WARCRAFT ADDON FILES ( WINDOWS 8 ) •

If you will delete these files, default settings will be loaded.

WoW Addon's configuration ( usual directory ):
C:\Program Files (x86)\World of Warcraft\WTF\Account\<USERNAME>\<REALMNAME>\<CHARACTERNAME>\SavedVariables\JocysCom-TextToSpeech-WoW.lua and JocysCom-TextToSpeech-WoW.lua.bak 

Custom position of frames ( usual directory ):
C:\Program Files (x86)\World of Warcraft\WTF\Account\<USERNAME>\<REALMNAME>\<CHARACTERNAME>\layout-local.txt