Fix piper beckend audio getting discarded on windows

This commit is contained in:
Kovid Goyal 2024-09-05 14:22:38 +05:30
parent 1aa97dbcf6
commit 8166621971
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -308,6 +308,9 @@ class Piper(TTSBackend):
self._audio_sink = QAudioSink(fmt, self) self._audio_sink = QAudioSink(fmt, self)
if s.volume is not None: if s.volume is not None:
self._audio_sink.setVolume(s.volume) self._audio_sink.setVolume(s.volume)
# On Windows, the buffer is zero causing data to be discarded.
# Ensure we have a nice large buffer on all platforms.
self._audio_sink.setBufferSize(2 * 1024 * 1024)
self._audio_sink.stateChanged.connect(self._utterances_being_spoken.audio_state_changed) self._audio_sink.stateChanged.connect(self._utterances_being_spoken.audio_state_changed)
self._process.start() self._process.start()
self._audio_sink.start(self._utterances_being_spoken) self._audio_sink.start(self._utterances_being_spoken)