From 1d89aa737a584619af2265e975862551b21cdcfe Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 12 Jan 2021 07:15:49 +0530 Subject: [PATCH] Fix detection of missing speech-dispatcher on linux --- src/calibre/gui2/tts/linux.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/calibre/gui2/tts/linux.py b/src/calibre/gui2/tts/linux.py index 2e09affa92..b95429fd3d 100644 --- a/src/calibre/gui2/tts/linux.py +++ b/src/calibre/gui2/tts/linux.py @@ -41,9 +41,14 @@ class Client: self.system_default_output_module = None def create_ssip_client(self): - from speechd.client import Priority, SpawnError, SSIPClient + from speechd.client import Priority, SpawnError, SSIPClient, SSIPCommunicationError try: self.ssip_client = SSIPClient('calibre') + except SSIPCommunicationError as err: + ex = err.additional_exception() + if isinstance(ex, SpawnError): + raise TTSSystemUnavailable(_('Could not find speech-dispatcher on your system. Please install it.'), str(err)) + raise except SpawnError as err: raise TTSSystemUnavailable(_('Could not find speech-dispatcher on your system. Please install it.'), str(err)) self.ssip_client.set_priority(Priority.TEXT)