From b9972032e54ed4ed7e473e7590d62a10ff76ad0b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 15 Dec 2020 07:51:01 +0530 Subject: [PATCH] Windows: Ignore failures to set SAPI parameters --- src/calibre/gui2/tts/windows.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/tts/windows.py b/src/calibre/gui2/tts/windows.py index c69b48093a..adc79038f5 100644 --- a/src/calibre/gui2/tts/windows.py +++ b/src/calibre/gui2/tts/windows.py @@ -127,9 +127,18 @@ class Client: self.synthesizing = False if new_settings is not None: self.settings = new_settings - self.sp_voice.set_current_rate(self.settings.get('rate', self.default_system_rate)) - self.sp_voice.set_current_voice(self.settings.get('voice') or self.default_system_voice) - self.sp_voice.set_current_sound_output(self.settings.get('sound_output') or self.default_system_sound_output) + try: + self.sp_voice.set_current_rate(self.settings.get('rate', self.default_system_rate)) + except OSError: + self.settings.pop('rate', None) + try: + self.sp_voice.set_current_voice(self.settings.get('voice') or self.default_system_voice) + except OSError: + self.settings.pop('voice', None) + try: + self.sp_voice.set_current_sound_output(self.settings.get('sound_output') or self.default_system_sound_output) + except OSError: + self.settings.pop('sound_output', None) def wait_for_events(self): while True: