-
-
Notifications
You must be signed in to change notification settings - Fork 784
synthDriverHost freezes when rapidly adjusting voice/rate with SAPI4 #19819
Copy link
Copy link
Closed
Labels
bugbug/freezecomponent/speech-synth-driverscomponent/synthDriverHostp2https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priorityhttps://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priorityrelease/blockingthis issue blocks the milestone releasethis issue blocks the milestone releaserelease/blocking-betatriagedHas been triaged, issue is waiting for implementation.Has been triaged, issue is waiting for implementation.
Milestone
Metadata
Metadata
Assignees
Labels
bugbug/freezecomponent/speech-synth-driverscomponent/synthDriverHostp2https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priorityhttps://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priorityrelease/blockingthis issue blocks the milestone releasethis issue blocks the milestone releaserelease/blocking-betatriagedHas been triaged, issue is waiting for implementation.Has been triaged, issue is waiting for implementation.
Type
Fields
Give feedbackNo fields configured for Bug.
Brief summary
When using the SAPI4 speech synthesizer in NVDA alpha build alpha-55165, the application (specifically the synthDriverHost process) becomes unresponsive/freezes if the user rapidly adjusts the Voice or Rate settings.
The issue appears to be a race condition where the SAPI4 driver attempts to resume audio playback (pause(False)) while the underlying audio device is in an invalid or busy state, resulting in a
Windows audio error (0x88890005). This exception is not handled gracefully, causing the synthesizer host to hang.
Log Excerpt:
DEBUG - sapi4.SynthDriverAudio.IAudio_Start (TIMESTAMP):
Error starting audio
Traceback (most recent call last):
File "C:Program FilesNVDA_synthDrivers32sapi4.py", line 526, in IAudio_Start
self._player.pause(False)
...
_get_exception_class..Derived: [WinError -2004287483] Windows Error 0x88890005: None -> None
Steps to reproduce
Launch NVDA alpha-55165.
Set the speech synthesizer to SAPI4.
"Use Ctrl+NVDA+Left/Right Arrow to adjust the speech rate, and hold down the Up/Down Arrow keys to reproduce the issue."
Observe that NVDA stops responding to commands, and the synthDriverHost process hangs.
Actual behavior
NVDA freezes. The synthDriverHost process stops responding. The log shows a critical unhandled exception related to audio startup failure.
Expected behavior
NVDA should handle rapid setting changes gracefully. If the audio device is busy or returns an error, the driver should catch the exception, skip the current audio buffer, or retry without
NVDA logs, crash dumps and other attachments
nvda-old.log
nvda_synthDriverHost.56292.log
nvda_synthDriverHost.52048.log
NVDA type
installed copy
NVDA version
NVDA version alpha-55165,cd4a7120
Have you tried any other versions of NVDA? If so, please report their behaviors.
none
Windows version
Microsoft Windows version 25H2 (OS 26200.8037)
Name and version of other software in use when reproducing the issue
none
Other information about your system
No response
Does the issue still occur after restarting your computer?
I have restarted my computer and the issue still occurs
If NVDA add-ons are disabled, is your problem still occurring?
I have restarted NVDA with add-ons disabled and the issue still occurs
Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?
I have run the COM Registration Fixing Tool and the issue still occurs