VVonder Posted March 23 Posted March 23 https://github.com/jason-kane/coh_npc_voices This is a fairly simplistic python program that watches the City of Heroes chat log file. When it sees a message from an NPC, it uses the windows text-to-speech capability to read out the message. It also notices when you receive a badge and tells you which badge you got. You will need git, python and pip to install. Reddit: 2 1 2 1
VVonder Posted April 26 Author Posted April 26 New version with a windows installer, GUI w/voice editor. I made a quick demo video to help you get a feel for how it works in-game. 1 1
Herotu Posted April 27 Posted April 27 OMFG, the dream! It's happening! It's HAPPENING! 😄 Thanks for posting this, I'm so happy. ..It only takes one Beanbag fan saying that they JRANGER it for the devs to revert it.
jkwak Posted April 30 Posted April 30 the idea is great, but Windows Text to speech isnt really immersive, but i guess its just a matter of time you or someone else builds upon this and we get voice acting all over CoH back to the Zukunft @Jkwak
VVonder Posted April 30 Author Posted April 30 5 hours ago, jkwak said: the idea is great, but Windows Text to speech isnt really immersive, but i guess its just a matter of time you or someone else builds upon this and we get voice acting all over CoH Totally agree; Windows Text for normal human voices is pretty bad. There is support for both google text-to-speech (better) and ElevenLabs (much better) but it is hard to setup in the current release. The next will be much better (maybe this weekend); I've added a configuration panel for setting the elevenlabs api key (they allow for a large amount of text-to-speech each month on a free account). You will also be able to set the default engine to use for unknown voices both for NPC and players. For NPCs it is easy because they are repetitive and easy to cache to disk. So a high quality voice is easy to justify. For players the cache is rarely useful and a little creepy, so I disabled it. I'm cheap-as-hell, so I'm making it easy to use Windows TTS for players (because it is free and fast) while using the slivers of pennies high quality services for NPCs. One case where Windows TTS is more than fine -- Clockwork. If anything it is not robotic enough, so I'm wrapping it in vocoder effects. It's pretty good. Oh, I can attach.. a work in progress, but here are "Prototype Oscillator" and a Vahzilok "Reaper"; I'm reasonably happy with both these. 95c4f_Pieceremov.mp3 b7fc7_Itsalwayse.mp3 2 1
Herotu Posted May 1 Posted May 1 16 hours ago, VVonder said: Totally agree; Windows Text for normal human voices is pretty bad. There is support for both google text-to-speech (better) and ElevenLabs (much better) but it is hard to setup in the current release. The next will be much better (maybe this weekend); I've added a configuration panel for setting the elevenlabs api key (they allow for a large amount of text-to-speech each month on a free account). You will also be able to set the default engine to use for unknown voices both for NPC and players. For NPCs it is easy because they are repetitive and easy to cache to disk. So a high quality voice is easy to justify. For players the cache is rarely useful and a little creepy, so I disabled it. I'm cheap-as-hell, so I'm making it easy to use Windows TTS for players (because it is free and fast) while using the slivers of pennies high quality services for NPCs. One case where Windows TTS is more than fine -- Clockwork. If anything it is not robotic enough, so I'm wrapping it in vocoder effects. It's pretty good. Oh, I can attach.. a work in progress, but here are "Prototype Oscillator" and a Vahzilok "Reaper"; I'm reasonably happy with both these. 95c4f_Pieceremov.mp3 b7fc7_Itsalwayse.mp3 You're doing amazing work. Would it be possible to offer the ability to switch TTS provider please, in case ElevenLabs goes out of business? ..It only takes one Beanbag fan saying that they JRANGER it for the devs to revert it.
VVonder Posted May 1 Author Posted May 1 38 minutes ago, Herotu said: You're doing amazing work. Would it be possible to offer the ability to switch TTS provider please, in case ElevenLabs goes out of business? Thanks. Right now it has Windows TTS, Google TTS and ElevenLabs, the next easy one is Amazon Polly. I'm interested in getting Coqui working too. That would give us another local option but I'm a little worried about resource requirements. Should be a fun experiment. The next challenge is that having a bunch of perfectly smooth and clear human voices is great, but many of the foes in-game are very much non-human. An easy example are the snakes in COV. They sound terrible because the text-to-speech is trying to pronounce ssspeach like thisss and gets it all wrong. Most TTS engines support something called SSML which has a phoneme tag that I'll try and manipulate to get the right sounds. 1
VVonder Posted May 28 Author Posted May 28 New demo; much better voice quality and some visibility of the UI. It can now use (all at once) ElevenLabs, Amazon Polly, Google Text-to-Speech and Windows TTS. Yeah, you can't actually hear me talking for a lot of this because I didn't balance the volume very well. Bonus. I still have some bugs to squish before I cut another windows installable release, maybe this weekend. But.. it's pretty slick now and once you're used to it the game feels a little hollow without it. 1
VVonder Posted June 30 Author Posted June 30 This again? This is the text to speech system, but with a translation layer. You select a language (Chinese, French, German, Japanese, Korean, Spanish), and it will translate every [NPC], [TEAM] and Tell message and speak it out loud. It's a bit of a parlor trick, but it may really open the game up to people with weak English. 1
VVonder Posted June 30 Author Posted June 30 (edited) And in French, with less stuttered/jumpy but unfortunately very blurry video https://github.com/jason-kane/coh_npc_voices/releases/tag/v3.0 updated with new windows installer Edited July 1 by VVonder released windows installer for latest code features 1
Ukase Posted August 12 Posted August 12 So, I just wanted to encourage you to continue working with this. I think it has a lot of utility.
VVonder Posted August 12 Author Posted August 12 Thanks; I'm making steady progress. Latest new stuff is https://github.com/jason-kane/coh_npc_voices/pull/12 I rewrote all (well, most) of the widgets to use customtkinter instead of vanilla tk/ttk. I added Azure and OpenAI voice support. Some simple quality of life things; like when you level up it says congrats and tells you what level you've just reached. Some more utility things, like the damage table, it's for the current session: (^ I've fixed the accuracy numbers and 'special' cosmetics); this is to provide you some hard numbers to decide on the best slotting based on your play style. I need to give the latest build two or three more game sessions to make sure it is stable and I'll cut a new release. 1
Herotu Posted August 13 Posted August 13 (edited) Thanks for your efforts. I am in awe. Edited August 13 by Herotu ..It only takes one Beanbag fan saying that they JRANGER it for the devs to revert it.
VVonder Posted August 13 Author Posted August 13 Demo of the latest version: I'm on the fence right now reg. the "You have defeated" messages. It's amusing enough I'll at least make it an option. 2 1
Herotu Posted August 13 Posted August 13 I am thinking this could be ... more generic. You know? Like, for example, something you run in the background to read party chat in SWTOR, or give voice to the voiceless in games like World of Warcraft or Oldschool Runescape or something - there could be a lot of interest. A lot of applications.. The possibilities are, vast! Does it have to read a log? Maybe it could read memory locations, looking for bytes within the ascii character range? Might be rather complicated ... might need pre-sets for each game. I'm getting excited, I should just shut up and be grateful for the work that you've done and continue to do. I don't want to put you off with silly grandiose fantasies. ..It only takes one Beanbag fan saying that they JRANGER it for the devs to revert it.
VVonder Posted August 13 Author Posted August 13 17 minutes ago, Herotu said: I am thinking this could be ... more generic. You know? ... Does it have to read a log? Maybe it could read memory locations, looking for bytes within the ascii character range? Might be rather complicated ... might need pre-sets for each game. The generic approach would look a little like Vortex (https://www.nexusmods.com/about/vortex/); each game would need just enough code to locate the right logs, tail them properly, differentiate the things that should be spoken from the things that can be ignored and choose voices for each speaker. I fiddled with reading from CoH memory instead or in additions to logs; I want to get current xp, arch/primary/secondary etc.. but I haven't gotten that working. I can send key presses to the game, I've only barely scratched the surface of the options that opens up. 2
Triumphant Posted August 13 Posted August 13 Needs a lot of work, but there's definitely potential here. In the present form, I find it more distracting than immersive. But I'm sure you've got a lot of tweaking that you mean to do before releasing a finished product. Looking forward to see what you come up with! 👍
VVonder Posted August 18 Author Posted August 18 New release is available: https://github.com/jason-kane/coh_npc_voices/releases/tag/v3.2 No big features -- mostly incremental improvements. Oh, it will try and send a /tell to itself, it isn't nefarious. It's the best way I have to determine your archetype, level, primary and secondary -- it sends a tell to yourself then catches the $variable expanded version in the chat log. I'm going to try and stick to adding polish and stability to the current features for the next release or two. 2
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now