Jocys.com Text to Speech Monitor and WoW Addon

Source (GitHub.com) Issues Forum DOWNLOAD Monitor 2.6.16 (2018-11-10) Digitally Signed and WoW Addon 2.3.3 (2018-09-24)
Reads quests and chat messages with text-to-speech voices. Makes game more immersive and you will not miss messages in chat.
If “Monitor” doesn't work, you may need to disable IPv6 in WoW game. Read... Problems and Solutions.

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 local network traffic, converts it to SAPI XML and reads it with specific text-to-speech voice.

How to move mini frame with [≡][■] buttons

Move mouse pointer over [■] button. [≡] (Options) button will appear. Click on [≡] (Options) button, to open “Options” window. Unlock mini frame by unchecking first check-box in “Options” window. You can move “Options” window out of the way, if it is on top of mini frame with [≡][■] buttons. Move mini frame by clicking on black background around [≡][■] buttons. Lock it again, by checking the same check-box.

Create your own addons

You can create your own text-to-speech addon (if game supports addons) or send messages directly to “Monitor” from your own game, to add text-to-speech feature to the game. We don't mind if code from our WoW Addon will be used to add text-to-speech features to other addons. How and what messages to send with SendAddonMessage(...) in WoW, so “Monitor” could see them, can be founded in our addon's lua file. These messages can be visible in chat window, if check-box “Hide addon <messages> in chat window” is unchecked in our addon's “Options” window. Messages are also visible in “Options” window itself and in “Monitor's” [1. Incoming Messages] tab. If other addon will take over one of the text categories, this category can be disabled in our addon, by unchecking corresponding check-box, to avoid text-to-speech duplication. There is also help about <messages> with examples in “Monitor”'s [Help] tab or JocysCom.TextToSpeech.Monitor.rtf document • Tested on Windows 8 and 10.

Security and concerns • Why it is not on Curse?

It is not on Curse, because of “Monitor”, which is external program. Blizzard has no control outside the game over “Monitor” and, reasonably, can't take responsibility for it, by allowing it on Curse. Therefore, we keep everything as transparent, as possible. This project is open source and anyone can check all code at any time. We digitally sign our software and put our real names on it, so everyone could know, who to blame, if something will go wrong. “Monitor” and “WoW Addon” does not give you more power over NPCs or other players in game. It does not send data back to game or anywhere else. It only reads local network messages between <message> tags or text from your clipboard with installed text-to-speech voices, when you want it. It makes game more involving, fun and interesting (especially for those people, who played WoW from the first day, when it was released… like us. It became slightly boring to read all quests after some time). Also, it makes game easier for people with dyslexia or visual impairments. We are grateful, that gods from Pantheon of Blizzard are merciful enough not to block “WoW Addon” and let people use it :). Please download this “WoW Addon” and “Monitor” only from trustworthy sources. Make sure that “Monitor” is always signed by verified publisher with signature, issued by trusted certificate authority.

FREE text-to-speech voices can be installed with Microsoft language packs.
BETTER text-to-speech voices are developed by Ivona and distributed by Harpo Software.

“WoW Addon” ( very old 2014-08-06 version ) with Ivona voices

Old “Monitor” and “WoW Addon” versions. To show WoW's ( Version / Interface )... paste in chat: /run print((select(4, GetBuildInfo())));

2017-11-30 (70300 / 7.3.2)
2017-09-27 (70300 / 7.3.0)
2017-04-03 (70200 / 7.2.0)
2016-11-01 (70100 / 7.1.0)
2017-12-02 (70300 / 7.3.2)
2016-07-24 (70000 / 7.0.3)
2014-10-16 (60000 / 6.0.5)
2014-08-27 (50400 / #.#.#)

“MONITOR” VERSION UPDATES AND FIXES

2.6.16 (2018-11-10) -- "Voice" column added and "ON" column works now in [Voice Defaults] tab. [Update] tab fixed.
2.6.13 (2018-07-29) -- Updated custom audio file recording and reading settings. Added MP3 support.
2.6.7 (2018-07-27) -- Updated Audio Player. Fixed playback on non-default playback devices.
2.5.9 (2018-05-15) -- Fixed XAudio2 problem on Windows 8+.
2.5.7 (2018-05-14) -- Intro sounds crashing "Monitor" problem fixed.
2.5.6 (2018-05-12) -- [Options] tab > "Output Device:" drop-down added. Now you can select output device for audio.
2.4.22 (2018-01-22) -- Search now includes "Group" column in [Acronyms] tab.
2.4.21 (2018-01-22) -- [Select All], [Deselect All], [Check Selected], [Uncheck Selected] buttons added in [Acronyms] tab.
2.4.20 (2017-12-01) -- "Cache TTS audio" option added in [Options] tab to save CPU resources.
2.4.18 (2016-12-20) -- Acronym "be" > "blood elf" disabled by default.
2.4.18 (2016-12-14) -- Fixed: "Radio" sound, [Acronyms] "ON" checkbox, "Sequence" and "Size" values.
2.4.8 (2016-12-14) -- Tab for acronym replacements, like "brb" > "be right back", added.
2.4.7 (2016-11-15) -- WinPcap option disabled if not installed. Other WinPcap related updates.
2.4.6 (2016-11-15) -- TCP/IPv6 support added. Voice "overrides" updated to "defaults".

“ADDON” VERSION UPDATES AND FIXES

2.3.3 (2018-09-24) -- Fixed (401) MSG_RAID > CHAT_MSG_RAID, (422) MSG_INSTANCE > CHAT_MSG_INSTANCE_CHAT.
2.3.2 (2018-07-29) -- "Addon" sends character's Name, custom-tts Name and Class for added Cache Options in "Monitor".
2.3.1 (2018-07-27) -- Check-boxes added: "PartyLeader", "GuildLeader"(Officers). "Battleground" removed.
2.3.0 (2018-05-11) -- Version updated for WOW 8.0.1 ("Battle for Azeroth").
2.2.96 (2017-12-02) -- Code related to Battle.net chat messages (whispers) updated.
2.2.95 (2017-11-30) -- Version updated for WOW 7.3.2 -- [■] Button works again. Code line 397 updated.
2.2.90 (2017-04-03) -- Version updated for WOW 7.2.0.
2.2.88 (2016-12-18) -- Mini frame [≡][■] assigned to "UIParent" frame - visible with addons like "elvui".
2.2.88 (2016-12-18) -- After update, mini frame [≡][■] can appear at the center of the screen.
2.2.88 (2016-12-18) -- Click on [≡] button to open "Options". Unlock this mini frame [≡][■] and move.
2.2.86 (2016-12-14) -- "<OnEnter>JocysCom_SaveButton:Show();</OnEnter>" disabled.
2.2.85 (2016-11-15) -- Replace function updated.
2.2.82 (2016-11-10) -- Replaces text "|#-#(Race/Class)" with "Race/Class" for "Monitor".
2.2.80 (2016-11-04) -- WoW Macro / Saving NPC in "Monitor" related updates.
2.2.78 (2016-11-01) -- TTS macro fixed - ";" symbol removed from macro.
2.2.76 (2016-10-30) -- Menu with checkboxes moved closer to options [≡] button.
2.2.75 (2016-10-30) -- Problem with addon message exeeding 254 character limit fixed.
2.2.72 (2016-10-29) -- Addon sends addon messages instead of whispers + other updates.
2.2.71 (2016-10-27) -- For WOW 7.1 + macro for targeting and saving gender with type added.
2.2.50 (2015-12-01) -- "(Intro)Sound: and "Name(says):" check-boxes for "Quest" group added.

Installation ... Exit WoW before installing or updating “Addon”

1. Download JocysCom-TextToSpeech-WoW.zip file.
2. Open “File Explorer” (Win+E). Locate and open downloaded zip file.
3. Copy JocysCom-TextToSpeech-WoW folder ( folder is inside downloaded zip file ).

4. Paste JocysCom-TextToSpeech-WoW folder inside “Addons” folder of WoW.

Usual directory: #:\Program Files\World of Warcraft\Interface\Addons\

5. Install additional text-to-speech voices, if needed.

FREE text-to-speech voices can be installed (on Win 8.#) with Microsoft 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 ).

Windows 8.1 language packs and text-to-speech voices - Wikipedia:

• English (United States) - David (male), Zira (female).
• English (United Kingdom) - Heera (female), Hazel (female), Zira (female).
• Chinese Simplified - Hanhan, Huihui.
• Chinese Traditional - Tracy.
• French - Hortense.
• German - Hedda.
• Japanese Haruka.
• Korean - Heami.
• Italian - Elsa.
• Polish - Paulina.
• Portuguese - Maria.
• Russian - Irina.
• Spanish - Helena, Sabina.

BETTER text-to-speech voices are developed by Ivona and distributed (~$45 each) by Harpo Software.

Download and test voices 30 days for free from distributor Harpo Software.
Good Ivona voices are English-British “Amy” and “Brian”. Some other voices are not bad too. If you know free of charge text-to-speech voices as good, as voices by Ivona, please, write us or leave comment about that in comment section.

When you will run JocysCom.TextToSpeech.Monitor.exe, additional text-to-speech voices should be visible now.

6. Run JocysCom.TextToSpeech.Monitor.exe ( file is inside pasted folder ).

Usual directory: #:\Program Files\World of Warcraft\Interface\Addons\JocysCom-WoW-TextToSpeech\

You can pin “Monitor” to Windows OS taskbar, if you plan to use it frequently. Administrator rights are required to run this program. Make sure that you are using digitally signed software. Digitally signed software ensures that users can verify origin of software and that no one has tampered with it. Any modification in code of software, after it is signed, invalidates digital signature.

7. User Account Control window must show “Verified Publisher: Jocys.com” or “Verified Publisher: Evaldas Jocys”.

Do not trust executables from “Publisher: Unknown”.

8. Click [ Yes ] button.

“Monitor Clipboard” option doesn't work and must be [Disabled] in Windows XP.
“Addon” requires latest version of “World of Warcraft” game.

9. When “Monitor” will open, setup voices in [ Voices ] tab (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 ).

Monitor can't play voices, if their trial period is expired. You can test, which ones are expired, by enabling one voice at a time and pressing [ Speak ] button in Monitor. Such voices must be disabled in [ Voices ] tab.

Speed of voices can be adjusted in “Monitor's” “Rate” fields. Values can be from “-10” (very slow) to “10” (very fast). Default value is “2”. You can select “1” or “0” in both fields to make voices slower.

10. Run “World of Warcraft” game.

11. [■] (Stop text-to-speech) button will appear at the center of the screen. If you will move mouse pointer over[■] button, [≡] (Options) button will appear. If you will move mouse pointer over [≡] button, menu with various check-boxes will appear. Move mouse pointer over any check-box and title will show, what it enables/disables.

To move mini frame with [≡][■] buttons: Move mouse pointer over [■] button. [≡] (Options) button will appear. Click on [≡] (Options) button, to open “Options” window. Unlock mini frame by unchecking first check-box in “Options” window. You can move “Options” window out of the way, if it is on top of mini frame with [≡][■] buttons. Move mini frame by clicking on black background around [≡][■] buttons. Lock it again, by checking the same check-box.

12. [■] (Stop) and [►] (Play) buttons will appear at the bottom of some windows too.

13. “Addon” can’t get NPC’s gender from chat (if NPC is walking and talking around you). “Addon” can get NPC's gender only, when NPC is targeted (if you are interacting with NPC). Therefore, “Addon” automatically sends name, gender and type of all NPCs, you are targeting, to “Monitor“ (“Monitor“ must be running in the background). “Monitor“ saves this information and uses it to generate text-to-speech voices. Saved in “Monitor“ NPCs have genders (male and female voices) in conversations. You can see saved NPCs in “Monitor's“ [Voice Defaults] tab. If macro slot is available, “Addon“ will create “NPCSaveTTSMacro” and will update it during the game. You can use this macro to target up to 9 last chatting NPCs or any nearest friendly NPC (this will save them automatically in “Monitor“). I didn't figure out yet, how to get NPC’s gender directly from NPC chat event or some database (there is no problem with getting genders of players from chat). For example: If you see two female NPCs chatting, but they have male voices... just target (click on) them (or use macro to target them) and they should get female voices from that moment. Enter /m in chat window to show macros:

Usual per-account settings directory:
#:\Program Files\World of Warcraft\WTF\Account\<AccountName>\SavedVariables\
JocysCom-TextToSpeech-WoW.lua


Addon settings are saved in usual per-character settings directory:
#:\Program Files\World of Warcraft\WTF\Account\<AccountName>\<RealmName>\
<CharacterName>\JocysCom-TextToSpeech-WoW.lua


You can delete these files to reset settings or clear saved NPCs (game must be closed).

“Stop text-to-speech” macro and hotkey setup in “World of Warcraft” (optional)

1. Game Menu > [ Macros ] > [ New ]
2. Enter macro name (for example: “Stop TTS”).
3. Choose an icon for macro.
4. Click [ Okay ] button.
5. Write in “Enter Macro Commands” field:

/run SendChatMessage("<message command=\"stop\" />", "WHISPER", "Common", UnitName("player"))

6. Click [ Save ] button.
7. Drag “Stop TTS” macro icon from “General Macros” tab on “Action Bar” button.
8. Click [ Exit ] button.

9. Game Menu > [ Key Bindings ] > [ Action Bar ]
10. Bind desired keyboard key to "Action Bar" button with “Stop TTS” macro.
After pressing this key on keyboard, text-to-speech will stop.

Network problems and solutions

Sometimes, “Monitor” doesn't work with “Internet Protocol Version 6” (IPv6). To test this, you can:

A. Disable IPv6 in latest version of “World of Warcraft” game:

1. WoW Main Menu > System > Network > Uncheck (disable) “[ ] Enable IPv6 when available” check-box.
2. Restart WoW game.

...OR...

B. Temporary disable IPv6 on your network card:

1. Close WoW game and “Monitor”.
2. Click [Win]+[X] keyboard keys together.
3. Select “Control Panel” from menu.
4. Select “Small icons” in “View by:” drop-down menu.
5. Find and select “Network and Sharing Centre”.
6. Click on “Change adapter settings”.
7. Click with second mouse button on network card, you are using.
8. Select “Properties” from menu.
9. Uncheck (disable) “Internet Protocol Version 6”.
10. Click [ OK ] button.
11. Run WoW game and “Monitor”.

Don't forget to enable (check) “Internet Protocol Version 6” again later.

Cache Options in “Monitor” (Create text-to-speech audio files)

If your computer is slow, you can use “Monitor's” “Cache Options” to write and read audio files. The next time, when you will encounter the same dialogue-text, “Monitor” will not use TTS voices and will not create audio file again, but will play instantly previously created audio file instead. If you put custom recorded MP3 file with the same name then "Monitor" will play MP3 file, instead of WAV.

“Monitor” > [Options] tab > “Cache Options” section

Usual directory for audio files: C:\ProgramData\Jocys.com\Text to Speech Monitor\Cache\

Desired improvements in “World of Warcraft” game

• Getting UnitSex of NPC from chat and quest log -- no need to select it to get gender.
• Getting UnitAge of NPC (%) -- (1-100) in order to apply “Child", “Adult” or “Senior” effects.
• Getting UnitRace of NPC -- Sound effects on NPCs are applied by UnitCreatureType now.
• Getting value if NPC has voice over for all text -- in order not to start TTS speech.
• NPC “talking” animation should loop, depending on length of the text.