Is your feature request related to a problem? Please describe.
If OneCore fails to initialize or work, Windows 10 can be left with no speech during/after an NVDA install.
This was recently demonstrated in issue #11543 .
Describe the solution you'd like
As @lukaszgo1 mentioned in a comment on that issue, we could fallback to ESpeak if OneCore fails for any reason during the initialization phase.
I would add, that showing a dialog informing the user that this is not the preferred speech synth for Windows 10, but that something went wrong and they should ask for help or whatever, might be a good idea.
Describe alternatives you've considered
Keeping things as they are, in which case no speech is the effect, leading to user confusion in these admittedly rare circumstances.
Additional context
At least in the case of the referenced issue, the error produced was:
INFO - core.main (13:14:45.783) - MainThread (14780):
NVDA initialized
ERROR - NVDAHelperLocal (13:14:46.008) - Dummy-1 (15948):
Thread 15948, build\x86\localWin10\oneCoreSpeech.cpp, ocSpeech_speak::<lambda_588a06e8c661fd02fa72cad965a4a6be>::operator (), 98:
Error -2147221164: Class not registered
Class not registered
ERROR - unhandled exception (13:14:46.008) - Dummy-1 (15948):
Traceback (most recent call last):
File "ctypes/callbacks.c", line 232, in 'calling callback function'
File "synthDrivers\oneCore.pyc", line 331, in callback
File "synthDrivers\oneCore.pyc", line 301, in processQueue
AttributeError: 'NoneType' object has no attribute 'sync'
Is your feature request related to a problem? Please describe.
If OneCore fails to initialize or work, Windows 10 can be left with no speech during/after an NVDA install.
This was recently demonstrated in issue #11543 .
Describe the solution you'd like
As @lukaszgo1 mentioned in a comment on that issue, we could fallback to ESpeak if OneCore fails for any reason during the initialization phase.
I would add, that showing a dialog informing the user that this is not the preferred speech synth for Windows 10, but that something went wrong and they should ask for help or whatever, might be a good idea.
Describe alternatives you've considered
Keeping things as they are, in which case no speech is the effect, leading to user confusion in these admittedly rare circumstances.
Additional context
At least in the case of the referenced issue, the error produced was: