From 36b690538f9c48fb7ebdeef11c5ed08b1a4555db Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 5 Aug 2025 22:36:32 +0530 Subject: [PATCH] piper: ensure an utterance is queued only once regression introduced in the piper re-write --- src/calibre/gui2/tts/piper.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/tts/piper.py b/src/calibre/gui2/tts/piper.py index 94b760dde6..2b0c386fb0 100644 --- a/src/calibre/gui2/tts/piper.py +++ b/src/calibre/gui2/tts/piper.py @@ -395,9 +395,10 @@ class Piper(TTSBackend): def _queue_current_utterance(self) -> None: if self._utterances_being_synthesized: u = self._utterances_being_synthesized[0] - global_piper_instance().synthesize(u.id, u.sentence) - u.started = True - debug(f'Utterance {u.id} synthesis queued') + if not u.started: + global_piper_instance().synthesize(u.id, u.sentence) + u.started = True + debug(f'Utterance {u.id} synthesis queued') def audio_sink_state_changed(self, state: QAudio.State) -> None: self._update_status()