From 64c96c3245b99bee9fa2811f79f52838dd83927b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 3 Sep 2024 12:33:35 +0530 Subject: [PATCH] Fix very slow shutdown of piper --- src/calibre/gui2/tts2/piper.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/calibre/gui2/tts2/piper.py b/src/calibre/gui2/tts2/piper.py index 0725a75fd6..6e415e0e45 100644 --- a/src/calibre/gui2/tts2/piper.py +++ b/src/calibre/gui2/tts2/piper.py @@ -252,6 +252,9 @@ class Piper(TTSBackend): self._process.stateChanged.disconnect() self._process.kill() self._process.waitForFinished(-1) + # this dance is needed otherwise stop() is very slow on Linux + self._audio_sink.suspend() + self._audio_sink.reset() self._audio_sink.stop() sip.delete(self._audio_sink) sip.delete(self._process) @@ -310,6 +313,7 @@ class Piper(TTSBackend): cmdline.append('--debug') self._process.setProgram(cmdline[0]) self._process.setArguments(cmdline[1:]) + debug('Running piper:', cmdline) self._process.readyReadStandardError.connect(self.piper_stderr_available) self._process.readyReadStandardOutput.connect(self.piper_stdout_available) self._process.bytesWritten.connect(self.bytes_written)