Re-enable audio ducking for proxied x86 speech synths#19672
Merged
Conversation
seanbudd
approved these changes
Feb 26, 2026
5 tasks
7 tasks
michaelDCurran
added a commit
that referenced
this pull request
May 25, 2026
This reverts commit 5306000.
seanbudd
pushed a commit
that referenced
this pull request
May 25, 2026
…026.2 as it is not stable enough yet. (#20206) Fixes #19667 Fixes #19819 Reverts #19672 Summary of the issue: Experimental code was recently added to NVDA (after 2026.1) that caused the 32 bit synthDriver shim to send its audio back to NvDA for playing, rather than playing it directly in its own process. This was done to test / prepare for the time when add-ons would be running in an app container, and therefore probably would not have direct access to the audio device. However, currently this code is still quite unstable, causing NVDA to freeze when rapidly changing the speech rate, or arrowing up and down in lists, when using sapi4 or 32 bit sapi5. This instability is most likely a similar issue to what was fixed in pr #19609, where RPYC is handoing the return of a call on the wrong thread. But in this case, it is calls to/from nvwave in NVDA's process. Description of user facing changes: Description of developer facing changes: Description of development approach: Simply instruct the synthDriver process not to install the nvwave proxy that brokers back to NvDA. Reverts Re-enable audio ducking for proxied x86 speech synths #19672 so that 32 bit synthDrivers suspend audioDucking while they are running, as audioDucking cnanot be supported without brokering audio.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Link to issue number:
Follow-up to #19665
Summary of the issue:
#19665 prevents audio ducking when using a proxied SAPI4 or SAPI 5 speech synth, as it does not work correctly on betas due to the synth outputting sound out of process. However, as alpha builds broker the audio from from the 32-bit host process and output it in process, audio ducking works correctly.
Description of user facing changes:
Audio ducking again works on alpha builds when using a SAPI 4 or 32-bit SAPI 5 synth.
Description of developer facing changes:
None
Description of development approach:
Reverted the changes to
source/_bridge/components/proxies/synthDriver.pyintroduced in b0228fe9aa.Testing strategy:
Built a self-signed launcher and installed NVDA. Switched to SAPI 4, played some music, and tested that all 3 ducking modes work as expected.
Known issues with pull request:
None known
Code Review Checklist: