Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NVDA alpha 2025.1: NVDA does not speak on the Windows default output device. #17611

Open
paulber19 opened this issue Jan 11, 2025 · 7 comments
Open
Labels
blocked/needs-info The issue can not be progressed until more information is provided.

Comments

@paulber19
Copy link

Steps to reproduce:

Actual behavior:

Environment:
it is necessary to have two audio output device:

  • the one integrated into the motherboard.
  • another USB audio device for example.

Plug in the USB audio device and verify that it is the default device used by Windows.
Start NVDA with a completely blank configuration.
The NVDA startup sound plays on the default audio device.
But the speech that follows is heard through the speakers of the built-in audio device.
After initializing NVDA, we see in the "audio" category of the NVDA parameters that the audio output device is indeed "default output device". Which does not correspond with what we hear.
If we change the audio output device and choose the usb device, NVDA speaks fine on that device.
But if we choose the default device again, NVDA speaks on the built-in device again.

Expected behavior:

NVDA should speak into the default device.

NVDA logs, crash dumps and other attachments:

System configuration

NVDA installed/portable/running from source:

NVDA portable

NVDA version:

NVDA version alpha-34973,631156cb x86

Windows version:

Windows 10 22H2 (10.0.19045) workstation AMD64

Name and version of other software in use when reproducing the issue:

None

Other information about your system:

Other questions

Does the issue still occur after restarting your computer?

Yes

Have you tried any other versions of NVDA? If so, please report their behaviors.

No

If NVDA add-ons are disabled, is your problem still occurring?

Yes

Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?

No tested

@paulber19
Copy link
Author

I don't know if this has anything to do with the problem, but under NVDA alpha I see that we don't get the default output device.
Open the NVDA python console and type the following lines:
from pycaw.utils import AudioUtilities
d = AudioUtilities.GetSpeakers()
d.GetId()

Under nvda alpha, I get the identifier:
'{0.0.0.00000000}.{e79a62fb-aae7-4aa6-ad83-aed402dad5bc}'
This is the identifier of the integrated sound card, but which is not the default device.

I stop NVDA alpha and run NVDA 2024.4.1
Under nvda 2024.4.1, I get:
'{0.0.0.00000000}.{6633ae31-373e-40cf-ae77-502fab7e6ce4}'
This is the identifier of the USB sound card which is the default device.

@Adriani90
Copy link
Collaborator

Cc: @SaschaCowley

@SaschaCowley
Copy link
Member

@paulber19 I am not able to replicate this with NVDA installed or portable.
What speech synthesizer are you using?
What steps are you taking to change the Windows default output device?

@paulber19
Copy link
Author

paulber19 commented Jan 13, 2025 via email

@tspivey
Copy link
Collaborator

tspivey commented Jan 13, 2025

Did you at some point change NVDA's audio device from Settings? Windows+I for Settings, System, Sound, App volume and device preferences, you should be able to find NVDA in that list. Once you do, make sure the output is set to Default.

@gerald-hartig gerald-hartig added the blocked/needs-info The issue can not be progressed until more information is provided. label Jan 13, 2025
@paulber19
Copy link
Author

paulber19 commented Jan 14, 2025 via email

@SaschaCowley
Copy link
Member

  • under NVDA 2024.4, the "nvda+control+u" command lists the "Microsoft sound mapper" device first. Under NVDA alpha, it is "default output device". What is the relationship between the two?

Microsoft Sound Mapper is essentially just an output device that routes the audio to the most appropriate/preferred output device. It is not usable with Core Audio to the best of my knowledge. Core Audio APIs provide us a way to query for the default endpoint with certain capabilities, which theoretically should be the same as Sound Mapper. It seems that this default device selection is influenced by changing the output device on a per app basis, which presumably is not what happens with Sound Mapper. While confusing, this is probably desirable, though should possibly be documented.

  • when you choose it in the list of devices, to which device the "default output device" device corresponds: the Windows one, or the one configured for NVDA. Given my problem, it seems that it is primarily NVDA's problem, but the user does not know this.

It is the output device the user has chosen for NVDA in Windows' settings. Unless the user changes this, it should be the system default output device.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked/needs-info The issue can not be progressed until more information is provided.
Projects
None yet
Development

No branches or pull requests

5 participants