nvda2speechd, let Windows programs talk through Speech dispatcher

Linux for blind general discussion blinux-list at redhat.com
Sun Jun 5 14:41:12 UTC 2022


Hello everyone,

I've been dealing a bit recently with Windows games, through various
means - running them using Wine, VM etc. And I've got a bit... unpleased
by the state of speech synthesis in Wine. I'm not criticizing it, it's a
big enough drag to implement a sapi voice in Windows itself, speak of
getting sapi itself to run on a completely different system, so this is
completely understandable.

But that doesn't change anything on the factual usability, where you
need to deal with a whole speech system in an inaccessible way, which
doesn't even work in my VM btw, has some noticeable delais (at least
with the default voices) and is there a way to actually configure it?

No sarcasm, I don't know.


Anyway, the usability is inconvenient at best, what is slightly
disturbing when playing games (especially those where you need quick
feedback e.g. Swamp).


But yesterday, I've came up with an idea. On Windows, there is a library
called nvdaControllerClient32.dll (or 64 for 64-bit programs, likely
more used by now), which is used by programs and various speech output
libraries to talk through NVDA.


The good thing about this library is its absolute simplicity, at least
in terms of the interface, just 4 functions with elementary datatypes.


So, what I did, was that I created my own library with exactly the same
interface in Rust, except that instead of talking to NVDA, it opens a
connection to a server on Linux, which translates all requests aimed for
NVDA to Speech dispatcher.


This way, an app in Wine can use Speech dispatcher!


All your voices, all your configuration preserved just like you'd be
running a native app.


I've tried it and it really works.

I can't tell right now how good is it, it's just an experiment, the app
I've tested with worked quite well, but that was just a simple binary
editor I made long time ago.

The real test will come, when I manage to download Swamp. I tried about
5 times and the download has always failed, I guess there is either high
traffic on Aprone's servers, or perhaps he has some issues with internet
connection.


And for some reason, agarchive.net doesn't seem to have the latest
version (anyone knows why is that?)


Anyway, if you feel like playing some Windows game compatible with NVDA,
and would like the native speech, feel free to try it out:

https://github.com/RastislavKish/nvda2speechd


Best regards


Rastislav





More information about the Blinux-list mailing list