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
Optional ducking of other audio #3830
Comments
Comment 1 by k_kolev1985 on 2014-03-16 18:38 I want to ask a question about the volume ducking feature. Will it duck the volume constantly when NVDA is running, or it will duck it only when NVDA is speaking? I'm asking, because Narrator ducks it constantly, witch is not an ideal solution. |
Comment 2 by mdcurran on 2014-03-25 00:35 |
Comment 3 by zahari_bgr on 2014-03-25 01:39 |
Comment 4 by mdcurran on 2014-03-25 03:16 |
Comment 5 by mdcurran on 2014-12-02 02:56 |
Comment 6 by mdcurran on 2014-12-03 07:27 |
Comment 7 by leonarddr on 2015-04-24 20:40 |
Comment 8 by mdcurran on 2015-04-26 18:56 |
Comment 9 by camlorn on 2015-05-18 19:33 |
Comment 10 by jteh on 2015-10-28 00:36 |
Incubated in ca7e036. |
It seems that ducking and configuration profiles don't like each other. To reproduce, enable ducking in a configuration profile with a trigger and disable it in the default configuration. When switching to the application with the ducking enable profile, ducking isn't enabled as expected. |
@michaelDCurran: You need to switch ducking modes when config profiles are switched. Introduce a handleConfigProfileSwitch function in nvwave and call it from config.ConfigManager._handleProfileSwitch (config/init.py around line 510). |
I want to report a bug with the current (available in the "next" snapshots) implementation of the audio ducking feature. It seams not to work with SAPI5. I've tried with 2 bulgarian voices and with Microsoft Zira voice, but it did not work. The option is set to "Duck when outputting speech and sounds". If the option is set to "Always duck", the feature works as expected. Is this a limitation with SAPI5 or a bug in the current implementation of the audio ducking feature? It works with other TTS engines like "Speech Player" and "RHVoice" (the older one - I don't like the newer one very much) witch are as add-ons for NVDA. Test environment:
|
This isn't currently possible because SAPI 5 handles its own audio
output; it doesn't use NVDA code to do this. It should be possible for
us to fix this with some rewriting of the SAPI 5 driver, but we don't
plan to do this for the initial implementation of ducking.
|
Incubated in 071a653. |
Incubated in fe9c939. |
Incubated in 9fa91c2. |
I think it'd be really good if we can not delay the audio if there isn't audio playing (or better still, if audio is quiet). So, I've been looking into this a bit. It seems there are two APIs you can use to get the peak levels for an audio device:
Of course, I guess we could write the code in C++ and avoid the Python porting bit. After all, all we want is one damned value. |
However, the above should perhaps be done separately, as it looks like it's pretty complicated to implement and it is nice-to-have rather than essential. Thoughts, @michaelDCurran? |
Certainly sounds cool, but: Windows ducks audio of all sound cards, not just the default. I assume Also, depending on the speed of the delay in the peak meters, it may
|
Actually, my last idea was a little too over engineered, and incorrect. Rather than changing On 9/12/2015 1:28 AM, Michael Curran wrote:
Michael Curran |
Ah, I was wondering what audio device(s) Windows ducked. I assumed it
was just the default.
I guess then it'd make sense to check for audio on all devices.
|
Using the winmm technique, no waveOut devices of my two sound cards support the peak metre control. Several posts on the web suggest that cards and/or Windows has not supported this for years. |
Damn.
Not that this matters, but out of interest, I assume you're referring to some other article you found (and I probably saw as well)? The article I linked here was from support.microsoft.com and dealt with metering, not volume. The StackOverflow article i linked was for Core Audio. Still, the support article was quite old.
IAudioMeterInformation has this to say:
So I presume that means we can get what we need. |
Incubated in 4b7eeb7. |
Very nice! Further info on the duck delay not happening sometimes as discussed yesterday. There are two issues. STR for the first issue:
STR for the second issue:
|
Incubated in dfa3261. |
I found a little issue with the current ducking implementation in next. STR in Windows 10:
|
Annoyingly this is not a bug we will be able to fix. The issue is how It should also be noted that we do not recommend running another Screen On 15/12/2015 7:59 PM, Leonard de Ruijter wrote:
Michael Curran |
Settings for controlling this are not present in the General settings dialog. They are present in the Synthesizer dialog. Fix in What's New only. |
They are in the Synthesizer dialog. What lead you to believe they were in General Settings?
Michael Curran |
Oddly I thought this at first as well. Maybe we should put what dialog On 1/7/2016 11:16 AM, Michael Curran wrote:
Websites: email me at derek.riemer@colorado.edu mailto:derek.riemer@colorado.edu |
@michaelDCurran in the What's New |
Err, my bad. Brain detached from fingers. :) I'll fix this.
|
…ing in Windows 8 and later. re nvaccess#6519 nvaccess#3830: confirmed by some users and perhaps an oversight: audio ducking isn't supported on portable and temporary copies in Windows 8 and later.
Reported by jteh on 2014-01-31 01:54
Windows 8 allows us to request that other audio be ducked. This means we can duck the volume of other audio while NVDA is speaking. This should be optional, as it isn't always desirable. Also, I wonder whether it might be useful to have a command to duck audio even if this option is disabled for times when unexpected loud audio clobbers speech.
See the audioDuckingPrototype branch.
The text was updated successfully, but these errors were encountered: