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

OneCore speech: do not append silence at the end of every speech utterance #8985

merged 4 commits into from Nov 28, 2018


Copy link

@michaelDCurran michaelDCurran commented Nov 27, 2018

Link to issue number:


Summary of the issue:

By default, OneCore speech appends a large annoying chunk of silence at the end of every speech utterance. For example, when NVDA announces a newly opened dialog, there is a large chunk of silence after announcing the dialog itself, and befor announcing the control with focus within the dialog.
Up until the Windows 10 Fall 2017 release, it was impossible to disable this feature.
As it is now possible to disable, NVDA should.

Description of how this pull request fixes the issue:

Code taken directly from #8934. If supported, this PR sets OneCore speech's appendSilence synth option to the minimum value (essentially disabling the feature).

Testing performed:

Tested NVDA using OneCore speech on Windows 10 Fall 2018: silence is no longer appended.

Known issues with pull request:


Change log entry:

Bug fixes:
OneCore speech synthesizer: On Windows 10 Fall 2017 and above, large chunks of silence are no longer inserted between speech utterances.

@michaelDCurran michaelDCurran requested a review from jcsteh Nov 27, 2018
Copy link

@josephsl josephsl left a comment

Wait, if API level 7 is in use, then it'll be limited to Version 1809 (October 2018 Update) and later, whereas the PR description says fall 2017 (Fall Creators Update), which defines API level 5.

Copy link

@josephsl josephsl left a comment

Correction: it is API level 6 (April 2018 Update), as seen from the following:


jcsteh approved these changes Nov 28, 2018

OcSpeech* __stdcall ocSpeech_initialize() {
auto instance = new OcSpeech;
instance->synth = ref new SpeechSynthesizer();
// By default, OneCore speech appends a large annoying chunk of silence at the end of every utterance.
// Newer versions of OneCore speech allow disabling this feature, so turn it off where possible.
if (ApiInformation::IsApiContractPresent("Windows.Foundation.UniversalApiContract", 7, 0)) {
Copy link

@jcsteh jcsteh Nov 28, 2018

Joseph is correct: this should be 6, not 7. I'm not sure where I got 7 from. :)

@michaelDCurran michaelDCurran merged commit 9e5f410 into master Nov 28, 2018
1 check passed
@nvaccessAuto nvaccessAuto added this to the 2018.4 milestone Nov 28, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

4 participants