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)