diff --git a/src/calibre/gui2/tts/macos.py b/src/calibre/gui2/tts/macos.py index 6e16eb6eef..0d2b71767f 100644 --- a/src/calibre/gui2/tts/macos.py +++ b/src/calibre/gui2/tts/macos.py @@ -27,7 +27,7 @@ class Client: self.current_marked_text = self.last_mark = None self.dispatch_on_main_thread = dispatch_on_main_thread self.status = {'synthesizing': False, 'paused': False} - self.settings = settings + self.settings = settings or {} self.ignore_next_stop_event = False self.apply_settings() diff --git a/src/calibre/gui2/viewer/tts.py b/src/calibre/gui2/viewer/tts.py index 4f86528802..349549c306 100644 --- a/src/calibre/gui2/viewer/tts.py +++ b/src/calibre/gui2/viewer/tts.py @@ -64,7 +64,10 @@ class TTS(QObject): @property def tts_client(self): if self._tts_client is None: - self._tts_client = self.tts_client_class(self.backend_settings, self.dispatch_on_main_thread_signal.emit) + settings = self.backend_settings + self._tts_client = self.tts_client_class(settings, self.dispatch_on_main_thread_signal.emit) + if self._tts_client.settings != settings: + self.backend_settings = self._tts_client.settings return self._tts_client def shutdown(self):