Jump to content

Need some help with Fuz-Ro-D-oh improvement (text to speech) code.


unique

Recommended Posts

So, I have been working on a custom version of the Fuz-Ro-D-oh code that (by default) generates text to speech for any missing dialogs based on the voice type of the NPC.

 

It all works fine (in fact I ended up adding an ini option to replace ALL normal voices - and am starting to prefer it over the original voices), however, there is a few things I would like to improve.

 

 

1. I would like to be able to detect if an actor is male/female when they have a custom voice type (eg: mods like 3DNPC when I use the replace all option). The fuz-ro-d-oh code, however does not have the "actor" value sent to it. Does anyone here know how to get the (currently talking to) actor's form and grab the sex/race of the actor?

 

2. I would love to be able to have the player's voice responses also play voices and show subtitles. I am sick of being a mute myself. Anyone know how this could be added to the fuz-ro-d-oh code?

 

3. Voices are generated (and saved to disk for any future uses) in a background thread to stop lag waiting for each dialog file to generate (using an online service). At the moment the voices never work until you close the game and reload it. Skyrim seems to only register sounds at restart. Does anyone know how I might get it to register the new sounds "on the fly"?

 

 

FYI (for those willing to have a look): I intercept and generate the text to speech version of each chat option in the SneakAtackVoicePath() function in fuz-ro-d-oh - which actually generates *all* voices in the game (procedure name is named somewhat strangely).

 

 

 

I would greatly appreciate any help with this. The SKSE documentation is not of much help in the matter.

 

 

For those familiar with SKSE but don't have the Fuz-Ro-D-oh code, the original code is available here: https://github.com/shadeMe/Fuz-Ro-D-oh

 

 

 

I might release this publicly, or offer the improvements to the original author at some point in the future, but for now I will only share my modification with people that are able to help out (due to not wanting the TTS service I am using to ban it for over-use). There are other services I could, however make it use (eg: iSpeech) and release in the future.

 

 

 

EDIT: I am not sure if this is the perfect forum to have posted this in. Mods feel free to move it if you wish.

 

 

 

An example of what it currently does (in replace all voices mode):

https://www.youtube.com/watch?v=qHmYg8BHCFY

Link to comment

Hello.

 

About point 1, if you have an Actor (for example the akSpeaker of a dialogue), then you can call the functions:

akSpeaker.getLeveledActorbase().getSex()

akSpeaker.getLeveledActorbase().getRace()

 

it is important to use getLeveledActorBase() or some generated NPCs will have the wrong sex.

 

I am interested in your code, and I will have a look at it.

Link to comment

Hello.

 

About point 1, if you have an Actor (for example the akSpeaker of a dialogue), then you can call the functions:

akSpeaker.getLeveledActorbase().getSex()

akSpeaker.getLeveledActorbase().getRace()

 

it is important to use getLeveledActorBase() or some generated NPCs will have the wrong sex.

 

I am interested in your code, and I will have a look at it.

 

Unfortunately this procedure is not passed the actor value.

 

I believe I can get the uint32 of the speaker, but not sure how to pull the actor from that object.

 

If you want a copy of my code to look at, send me a pm and ill send you a copy.

Link to comment

 

...

 

Unfortunately this procedure is not passed the actor value.

 

I believe I can get the uint32 of the speaker, but not sure how to pull the actor from that object.

 

If you want a copy of my code to look at, send me a pm and ill send you a copy.

 

 

Yes please. Send me a PM with the zipped code or a link to download it.

I have a little experience with SKSE and SKSE plugins, but often when you are in a SKSE plugin you can do more or less everything that is possible with Papyrus and more.

Link to comment

 

 

...

 

Unfortunately this procedure is not passed the actor value.

 

I believe I can get the uint32 of the speaker, but not sure how to pull the actor from that object.

 

If you want a copy of my code to look at, send me a pm and ill send you a copy.

 

 

Yes please. Send me a PM with the zipped code or a link to download it.

I have a little experience with SKSE and SKSE plugins, but often when you are in a SKSE plugin you can do more or less everything that is possible with Papyrus and more.

 

 

Sent. Like I said in my main post, keep it to yourself for now though. We do not have permission to use this web TTS service for this. Its a pretty easy thing for me to change it to use iSpeech or something else though to release for the community.

 

P.S. It puts log in main skyrim dir.

 

Link to comment

For my question (3), does anyone by any chance know how to run a console command (RegisterPrefix) from skse plugin code? It seems to do what I need, if I can just work out how to run the command from the plugin.

 

Link to comment
  • 2 weeks later...

Hi there, this is Fuz Ro D'oh's author. Feel free to PM me on the official Bethesda forums (forums . bethsoft . com / user / 460960-shademe) if you wish to collaborate.

Link to comment

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...