VoiceOver (Classic)

VoiceOver (Classic)

923k Downloads

Backlog idea: Compatibility with the Immersion addon

Amiransari2129 opened this issue ยท 3 comments

commented

First of all, I would like to thank you for the great work you are doing :)

My idea basically revolves around the text-displaying UI of the immersion addon. When reading text in-game, the immersion addon should display the correct text currently being read in its own UI window, providing a more immersive and story-driven experience for players.

I do realize this is a niche feature, but I believe it would be an awesome addition to the addon, especially for those who enjoy reading quest dialogue and lore books. Thank you for considering my suggestion!

commented

@MattS8 wanted to take a look into this. I brought up the possibility of doing this by splitting the audio files up based on timestamped transcripts of the audio files with something like whisperx.

commented

Timestamping transcripts of the audio files definitely seems doable. There are a couple of things that I would like to look into more (or really anyone can) first. Ideally, the following three things are needed for complete harmony between the two addons:

  1. Voiceover should understand how Immersion breaks text down into chunks
  2. Voiceover should know when Immersion moves between text chunks
  3. Voiceover should be able to control Immersion paging through dialog in time with the audio

1. Understand how Immersion breaks text down into chunks:

I've already started looking through Immersion's code and created a super rough makeshift set of functions that emulates how Immersion decides to break up text. Using this, we should be able to simply run the transcripts through and save the generated breakpoints (or, simply have it run at runtime).

2. Know when Immersion moves between text chunks

We need a way to hook into Immersion functions that cycle through text chunks. If, for example, a player manually skips to the next chunk of text, the audio should skip to the first word associated with the next chunk. I admit I know very little of WoW Addon development, however I don't think this is possible unless the Immersion addon registers a custom message (i.e. through AceEvents). Therefore, we would most likely have to request the addition of custom messages to Immersion's paging functions.

3. Control moving through dialog

Immersion controls text paging via a customizable time-based setting. It's static and it can even be turned off completely. To get Immersion and VoiceOver to be completely synced, we would have to send event messages at the breakpoint timestamps, and Immersion would then need to act on them by paging the text. This would most likely mean a setting within Immersion that would enable this new feature.

If I'm way overengineering this, lemme know.

commented

consolidating discussion of this to #44