Add the patch
OBS-URL: https://build.opensuse.org/package/show/Education/epy?expand=0&rev=7
This commit is contained in:
parent
fba5bd228f
commit
de49d8830d
100
mimic.patch
Normal file
100
mimic.patch
Normal file
@ -0,0 +1,100 @@
|
||||
From 30596836fcd707098bbae6ebe453e67eb2caef87 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Mat=C4=9Bj=20Cepl?= <mcepl@cepl.eu>
|
||||
Date: Mon, 20 Dec 2021 19:50:30 +0100
|
||||
Subject: [PATCH] Use mimic instead of pico2wave.
|
||||
|
||||
Unfortunately, the language setting is gone again.
|
||||
|
||||
Fixes #42
|
||||
---
|
||||
README.md | 10 ++++------
|
||||
epy.py | 22 +++++++++-------------
|
||||
2 files changed, 13 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/README.md b/README.md
|
||||
index d434d79..a3950c3 100644
|
||||
--- a/README.md
|
||||
+++ b/README.md
|
||||
@@ -87,21 +87,19 @@ But you can enable it by setting `MouseSupport` to `true` in config file.
|
||||
|
||||
To get Text-to-Speech (TTS) support, you need to install these external dependencies:
|
||||
|
||||
-- `pico2wave` (from `libttspico-utils` package (Ubuntu) or `svox-pico-bin` package (AUR))
|
||||
-- `play` (from `sox` package)
|
||||
+- `mimic` package (AUR))
|
||||
|
||||
eg.
|
||||
|
||||
```shell
|
||||
$ # Ubuntu
|
||||
-$ apt install libttspico-utils sox
|
||||
+$ apt install mimic
|
||||
|
||||
$ # Arch
|
||||
-$ yay -S svox-pico-bin
|
||||
-$ pacman -S sox
|
||||
+$ pacman -S mimic
|
||||
```
|
||||
|
||||
-And then make sure `pico2wave` and `play` is in `$PATH`.
|
||||
+And then make sure `mimic` is in `$PATH`.
|
||||
|
||||
## Double Spread
|
||||
|
||||
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],
|
||||
+ spk = subprocess.Popen(
|
||||
+ ["mimic"], text=True,
|
||||
+ stdin=subprocess.PIPE,
|
||||
stdout=subprocess.DEVNULL,
|
||||
- stderr=subprocess.DEVNULL,
|
||||
- )
|
||||
- speaker = subprocess.Popen(
|
||||
- ["play", path, "tempo", str(self.setting.TTSSpeed)],
|
||||
- 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
|
||||
--
|
||||
2.34.1
|
||||
|
@ -1,21 +0,0 @@
|
||||
diff --git a/epy.py b/epy.py
|
||||
index 11eca60..d4ea184 100755
|
||||
--- a/epy.py
|
||||
+++ b/epy.py
|
||||
@@ -195,6 +195,7 @@ class Settings:
|
||||
MouseSupport: bool = False
|
||||
StartWithDoubleSpread: bool = False
|
||||
TTSSpeed: int = 1
|
||||
+ TTSLang: str = "en-US"
|
||||
# -1 is default terminal fg/bg colors
|
||||
DarkColorFG: int = 252
|
||||
DarkColorBG: int = 235
|
||||
@@ -2336,7 +2337,7 @@ class Reader:
|
||||
try:
|
||||
_, path = tempfile.mkstemp(suffix=".wav")
|
||||
subprocess.call(
|
||||
- ["pico2wave", "-w", path, text],
|
||||
+ ["pico2wave", f"--lang={self.setting.TTSLang}", "-w", path, text],
|
||||
stdout=subprocess.DEVNULL,
|
||||
stderr=subprocess.DEVNULL,
|
||||
)
|
Loading…
Reference in New Issue
Block a user