From 32b38bf26d1e1dd4754c0f3855c60cfcde83db9d Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Tue, 25 Feb 2020 16:25:17 +1000 Subject: [PATCH] ensure Anki starts on Windows systems that don't have TTS installed --- qt/aqt/sound.py | 4 ---- qt/aqt/tts.py | 7 ++++++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/qt/aqt/sound.py b/qt/aqt/sound.py index 0b0c5be8c..fcebb3662 100644 --- a/qt/aqt/sound.py +++ b/qt/aqt/sound.py @@ -639,10 +639,6 @@ def setup_audio(taskman: TaskManager, base_folder: str) -> None: mplayer = SimpleMplayerSlaveModePlayer(taskman) av_player.players.append(mplayer) - # currently unused - # mpv = SimpleMpvPlayer(base_folder) - # av_player.players.append(mpv) - # tts support if isMac: from aqt.tts import MacTTSPlayer diff --git a/qt/aqt/tts.py b/qt/aqt/tts.py index a78300e31..66dee8cbc 100644 --- a/qt/aqt/tts.py +++ b/qt/aqt/tts.py @@ -472,9 +472,14 @@ if isWin: return LCIDS.get(dec_str, "unknown") class WindowsTTSPlayer(TTSProcessPlayer): - speaker = win32com.client.Dispatch("SAPI.SpVoice") + try: + speaker = win32com.client.Dispatch("SAPI.SpVoice") + except: + speaker = None def get_available_voices(self) -> List[TTSVoice]: + if self.speaker is None: + return [] return list(map(self._voice_to_object, self.speaker.GetVoices())) def _voice_to_object(self, voice: Any):