diff --git a/src/calibre/gui2/tts/implementation.py b/src/calibre/gui2/tts/implementation.py index 23de156f74..7f8c3ffe36 100644 --- a/src/calibre/gui2/tts/implementation.py +++ b/src/calibre/gui2/tts/implementation.py @@ -5,7 +5,7 @@ from calibre.constants import iswindows, ismacos if iswindows: - pass + from .windows import Client elif ismacos: pass else: diff --git a/src/calibre/gui2/tts/windows.py b/src/calibre/gui2/tts/windows.py new file mode 100644 index 0000000000..73310a49dd --- /dev/null +++ b/src/calibre/gui2/tts/windows.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python +# vim:fileencoding=utf-8 +# License: GPL v3 Copyright: 2020, Kovid Goyal + + +class Client: + + def __init__(self): + from calibre.utils.windows.winsapi import ISpVoice + self.sp_voice = ISpVoice() + + def __del__(self): + self.sp_voice = None + + def speak_simple_text(self, text): + from calibre_extensions.winsapi import SPF_ASYNC, SPF_PURGEBEFORESPEAK, SPF_IS_NOT_XML + self.sp_voice.speak(text, SPF_ASYNC | SPF_PURGEBEFORESPEAK | SPF_IS_NOT_XML)