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

Allow SAPI5 voices to be instantly interupted / paused by making use of the underlying ISPAudio interface. #8174

merged 1 commit into from Apr 30, 2018


Copy link

@michaelDCurran michaelDCurran commented Apr 13, 2018

Partly taken from #6166.

Link to issue number:


Summary of the issue:

Some SAPI5 voices, especially those from Microsoft included with Windows 8 and higher, feel as if they lag, due to the fact that interupting their last utterance does not work.
For instance, moving quickly though the synth settings ring causes these SAPI5 voices to read the entire current synth setting, rather than cutting off the end when new keyboard input is received. A more practical case would be quickly navigating up and down a document or left and right by character. In many cases the end of the line or character will be needlessly spoken.

Description of how this pull request fixes the issue:

Previously our SAPI5 synthDriver would instruct the SAPI5 engine to speak an empty string, interupting any previous speech and purging any remaining speech.
Now, we make use of the underlying ISPAudio interface to tell the audio to stop first, before we interupt and purge.
Similarly for pausing, we use ISPAudio to pause.
This allows us to instantainiously stop / pause with these newer SAPI5 voices.

Testing performed:

Tested various Microsoft voices on windows 10, noting that the lag has now disappeared.
Still requires testing on windows 7 and possibly 8. And also with some popular 3rd party SAPI5 voices.

Known issues with pull request:


Change log entry:

Bug fixes:

  • Newer Microsoft SAPI5 voices no longer lag at the end of speech, making it much more efficient to navigate with these voices.
…ng use of the underlying ISPAudio interface.
michaelDCurran added a commit that referenced this issue Apr 16, 2018
@michaelDCurran michaelDCurran merged commit 1efa20e into master Apr 30, 2018
@nvaccessAuto nvaccessAuto added this to the 2018.2 milestone Apr 30, 2018
Copy link

@tmthywynn8 tmthywynn8 commented Apr 30, 2018

Correction: It is #6166 rather than #7166 where @michaelDCurran wrote:

Partly taken from #7166.

Copy link
Member Author

@michaelDCurran michaelDCurran commented Apr 30, 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