Today I learned why Sonata #TTS created a framework to run AI voices outside of #NVDA. First, NVDA doesn't come with all of the #Python standard libraries. Second, there's no good way of updating dependencies in a bundled addon. Third, NVDA really, really hates it if you include several hundred dependencies in your addon. Anyway, here's kitten TTS, the other synthesizer I wanted to try with NVDA. Unfortunately, the model doesn't support streaming output, so even though it's actually faster than Supertonic, it feels slower when used with NVDA. Also, it takes several minutes to install, makes NVDA startup 30 seconds slower, and freezes the change synthesizer dialogue for about 45 seconds when you open it. It does miss words less frequently, though, and pronounces text better. The ultimate result of my two-day investigation is that even the highly optimized open-source AI imbedded models are not yet ready for screen reader use. Some tree-shaking could fix some of these issues, but it still won't allow for streaming, so it's not worth it. I'd really like to know what Microsoft and Narrator are doing to get the natural voices so snappy. github.com/fastfinge/kittentts-nvda/ #screenreader
GitHub - fastfinge/kittentts-nvda: proof of concept kittentts synthDriver for NVDA

proof of concept kittentts synthDriver for NVDA. Contribute to fastfinge/kittentts-nvda development by creating an account on GitHub.

GitHub
Okay! If you're running 64-bit #NVDA, and you want to play with a new #tts engine that sort of works most of the time, here's the first release. The engine only supports English. github.com/fastfinge/supertonic-nvda/releases/tag/v1
Release v1: Initial Release · fastfinge/supertonic-nvda

The first release. It's still kind of janky, but this serves as a proof of concept.

GitHub
Did some work on a new high quality #nvda #tts engine for 2026. Unfortunately, I can’t get indexing to work. Even with AI. Help? Someone? It builds with scons. GitHub - fastfinge/supertonic-nvda: supertonic for nvda github.com/fastfinge/supertonic-nvda
It occurs to me that the recent #NVDA issue with IPC between 64 and 32-bit libraries (in particular voice synths) may be a perfect place for this solution: https://ekxide.io/blog/iceoryx2-0.8-release/
Announcing iceoryx2 v0.8.0

Announcing the release of iceoryx2 version 0.8.0

ekxide

While NV Access enjoy some well earned rest, we may be delayed in replying for the next few weeks. Please do refer to the tips and links in our last In-Process: https://www.nvaccess.org/post/in-process-16th-december-2025/

A very Merry Christmas if you celebrate & a safe & happy New Year to all!
#NVDA #NVDAsr #Christmas #Christmas2025 #NewYear #HappyNewYear

Um question! How do I get rid of punctuationglobally even though I set the punctuation to none? I've tried everything I know and no joy! Only sometimes it reads most of the punctuation from other posts! #NVDA

Magnificent Seven Momentum Check

10-day momentum for the Magnificent Seven:
TSLA: +5.8%
MSFT: +0.6%
NVDA: -0.8%
AMZN: -0.9%
AAPL: -1.8%
META: -2.1%
GOOGL: -4.3%

What's your pick?

#StockMarket #MAG7 #GOOGL #NVDA #TSLA

NVIDIA: WTF?

PeerTube

I must have a rouge instance of NVDA running somewhere because I continue to hear the dulcet tones of Windows OneCore whispering little somethings to me.

#NVDA #ScreenReader #A11y

I'm trying to create an app module inside an #NVDA add-on for an executable that has a dot in its name. I believe I need to add an entry to `appModules.EXECUTABLE_NAMES_TO_APP_MODS` in this case, mapping the name of the executable (without ".exe" extension) to the name I've given the .py file with my app module code in it (again without extension).

It isn't clear exactly where I should do that though. I tried putting the declaration right inside the app module file, hoping it would happen at import time but it didn't seem to work. So I made a global plugin in the same add-on, and created the mapping inside its constructor, but that didn't work either.

And by "didn't work," I mean that pressing NVDA+Ctrl+F1 with the target app foregrounded doesn't report that an app module is loaded. Nor does NVDA do the thing I put in for debugging, i.e. beep on appModule_gainFocus.

I have a feeling I'm missing a critical piece of this puzzle, but have no idea what it is. I do know that I've just spent so long trying to make NVDA recognise the app module skeleton that I no longer have time tonight to actually write it.