aboutsummaryrefslogtreecommitdiffstats
path: root/epy.py
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@cepl.eu>2022-01-01 05:11:17 +0100
committerGitHub <noreply@github.com>2022-01-01 11:11:17 +0700
commita6a03cf77fa8a925ecd18c840c8a8f358e207fcc (patch)
tree189a664eec647df5f701b072ed466b8d966e56b1 /epy.py
parent20df9c527b543aeef905c53550e5da44ee8c203f (diff)
downloadepy-a6a03cf77fa8a925ecd18c840c8a8f358e207fcc.tar.gz
Use mimic instead of pico2wave. (#44)
Diffstat (limited to 'epy.py')
-rwxr-xr-xepy.py22
1 files changed, 9 insertions, 13 deletions
diff --git a/epy.py b/epy.py
index 6b131b7..6c9510b 100755
--- a/epy.py
+++ b/epy.py
@@ -1881,7 +1881,7 @@ class Reader:
self.jump_list: Mapping[str, ReadingState] = dict()
# TTS speaker utils
- self._tts_support: bool = any([shutil.which("pico2wave"), shutil.which("play")])
+ self._tts_support: bool = any([shutil.which("mimic")])
self.is_speaking: bool = False
# multi process & progress percentage
@@ -2344,19 +2344,16 @@ class Reader:
self.screen.refresh()
self.screen.timeout(1)
try:
- _, path = tempfile.mkstemp(suffix=".wav")
- subprocess.call(
- ["pico2wave", f"--lang={self.setting.TTSLang}", "-w", path, text],
- stdout=subprocess.DEVNULL,
- stderr=subprocess.DEVNULL,
- )
- speaker = subprocess.Popen(
- ["play", path, "tempo", str(self.setting.TTSSpeed)],
+ spk = subprocess.Popen(
+ ["mimic"], text=True,
+ stdin=subprocess.PIPE,
stdout=subprocess.DEVNULL,
- stderr=subprocess.DEVNULL,
+ stderr=subprocess.STDOUT,
)
+ spk.stdin.write(text)
+ spk.stdin.close()
while True:
- if speaker.poll() is not None:
+ if spk.poll() is not None:
k = self.keymap.PageDown[0]
break
tmp = self.screen.getch()
@@ -2383,12 +2380,11 @@ class Reader:
+ self.keymap.ScrollDown
+ (curses.KEY_RESIZE,)
):
- speaker.terminate()
+ spk.terminate()
# speaker.kill()
break
finally:
self.screen.timeout(-1)
- os.remove(path)
if k in self.keymap.Quit:
self.is_speaking = False