3 ms·
> I don't mean include a TTS engine in your game, just send the text to an application , or local port that the user specified and the user can't use it's own T
by wizzwizz4 5y ago
> I don't mean include a TTS engine in your game, just send the text to an application , or local port that the user specified and the user can't use it's own TTS program with his preferred settings to listen for the text.
How does this kind of thing work? I'm only (passingly) familiar with the “official” accessibility APIs, e.g. IAccessible, AT-SPI2, but these are clearly inadequate; I'm very curious to know how real people use computers.
- simion314 5y agoI am not a regular user, what I done is edit open source engine and hack them to call my TTS program/script. For html engines I do a request to localhost on a specific port where I have a script listening. For a C++ engine I modified I used the run process functions to call directly my program, I think first I put the text to be spoken in a text file. One reason this is so hacky is that because this engines were not meant to do TTS I can get a lot of extra garbage or duplicates so I need to have the text first go through a game specific script to clean it up. so could you have this implemented: 1 user will input a path to a script/program 2 from the game engine you call that script and send to it the text as an argument , there might be limitations so it might be better alternatives. My TTS program implements a queue so it is fine if you just dump a lot of text into it, I have keyboard shortcuts to handle skipping/pausing. The Renpy game engine (python) supports TTS but I edited the tts plugin and replaced their Linux default to my script since I get more features and flexibility. P.S. I am tempted to try to also get the text from DirectX games, but I am not sure where to start, I am thinking I could intercept some DrawText function and replace it with my own but I am not sure what terms to Google for and if is something that can be done Or if there is a simple way to detect the code that does the dialog boxes in the games and intercept that function.
- wizzwizz4 5y agoFor DirectX, I'd be tempted to intercept stuff from the text layout engine. (USP10.DLL, DirectWrite, or HarfBuzz.) Pretty much nothing lays out its own text.