diff options
author | Matěj Cepl <mcepl@cepl.eu> | 2022-01-01 05:11:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-01 11:11:17 +0700 |
commit | a6a03cf77fa8a925ecd18c840c8a8f358e207fcc (patch) | |
tree | 189a664eec647df5f701b072ed466b8d966e56b1 /epy.py | |
parent | 20df9c527b543aeef905c53550e5da44ee8c203f (diff) | |
download | epy-a6a03cf77fa8a925ecd18c840c8a8f358e207fcc.tar.gz |
Use mimic instead of pico2wave. (#44)
Diffstat (limited to 'epy.py')
-rwxr-xr-x | epy.py | 22 |
1 files changed, 9 insertions, 13 deletions
@@ -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 |