Skip to content

synthDriverHost freezes when rapidly adjusting voice/rate with SAPI4 #19819

@dpy013

Description

@dpy013

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

Metadata

Metadata

Type

No fields configured for Bug.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions