Skip to content

Fix SAPI5 #18300

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

Merged
merged 35 commits into from
Jul 29, 2025
Merged
Show file tree
Hide file tree
Changes from 29 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
9cbf543
Only call idle() when the last stream closes
gexgd0419 Jun 29, 2025
0d4457e
Only send bookmarks when speaking
gexgd0419 Jun 30, 2025
8e684f0
Fix
gexgd0419 Jun 30, 2025
2dbf76e
Put new bookmark lists in a queue
gexgd0419 Jul 4, 2025
1ac9a56
Process SpVoice.Speak() calls in a separate thread, one at a time
gexgd0419 Jul 9, 2025
2b326f2
Set SAPI5 audio output to the first available output to reset audio f…
gexgd0419 Jul 9, 2025
01d14b6
Set the audio output device to reset the audio format parameters
gexgd0419 Jul 10, 2025
7fbe186
Fix speak thread
gexgd0419 Jul 12, 2025
fb93f1a
Merge branch 'master' into sapi5-fix
gexgd0419 Jul 15, 2025
3337feb
Merge branch 'master' into sapi5-fix
gexgd0419 Jul 15, 2025
e2fc7d8
Change `_bookmarks` to `_bookmarkLists`
gexgd0419 Jul 15, 2025
1eedc93
Add checks for WASAPI state
gexgd0419 Jul 15, 2025
20b7c82
Add SPEVENT utils; change type hints for pointers
gexgd0419 Jul 15, 2025
00eae90
Change `SynthDriverAudioStream` to be based on `ISpAudio`
gexgd0419 Jul 15, 2025
22d3300
Rename to `SynthDriverAudio`; change docstrings and type hints
gexgd0419 Jul 15, 2025
6fe554a
Pre-commit auto-fix
pre-commit-ci[bot] Jul 15, 2025
8c1540a
Apply suggestions from code review
gexgd0419 Jul 16, 2025
959062b
Update source/synthDrivers/sapi5.py
gexgd0419 Jul 16, 2025
2da3b03
Rename `SPDFID_WaveFormatEx` to `_SPDFID_WaveFormatEx`
gexgd0419 Jul 16, 2025
55d6752
Add `_SPEventEnum`
gexgd0419 Jul 16, 2025
4745f85
Rename `SynthDriverAudio` to `SynthDriverAudioStream`
gexgd0419 Jul 16, 2025
77f6702
Wait for cancellation to complete
gexgd0419 Jul 16, 2025
cf60b02
Add type aliases back to prevent breaking the API; add doc strings
gexgd0419 Jul 17, 2025
6f425df
Move condition variable predicates to class level
gexgd0419 Jul 17, 2025
f81e983
Comments
gexgd0419 Jul 17, 2025
f63ca28
Preserve `isSpeaking` to not break the API
gexgd0419 Jul 17, 2025
68950d8
Clear `_isCancelling` flag in time
gexgd0419 Jul 17, 2025
9fe7a29
Add changelog entries
gexgd0419 Jul 17, 2025
9f1ebf3
Set `restype` for `CoTaskMemAlloc`
gexgd0419 Jul 17, 2025
f9b17a0
Apply suggestions from code review
gexgd0419 Jul 24, 2025
5753eb5
Deprecate type aliases and isSpeaking
gexgd0419 Jul 24, 2025
7a52348
Add COM type hints; capitalize COM method names to match the actual n…
gexgd0419 Jul 27, 2025
555f70f
Add deprecation in changelog
gexgd0419 Jul 27, 2025
9373a16
Apply suggestions from code review
seanbudd Jul 29, 2025
be8519d
Update source/synthDrivers/sapi5.py
seanbudd Jul 29, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions source/synthDrivers/sapi4.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,9 @@
from speech.types import SpeechSequence


windll.ole32.CoTaskMemAlloc.restype = c_void_p


class SynthDriverBufSink(COMObject):
_com_interfaces_ = [ITTSBufNotifySink]

Expand Down
Loading
Loading