mirror of https://github.com/coqui-ai/TTS.git
Fix the bug in eSpeak wrapper for eSpeak version 1.48.15 (#1560)
This commit is contained in:
parent
e45ae57aef
commit
a97eed696a
|
@ -107,15 +107,6 @@ class ESpeak(BasePhonemizer):
|
||||||
if backend not in ["espeak", "espeak-ng"]:
|
if backend not in ["espeak", "espeak-ng"]:
|
||||||
raise Exception("Unknown backend: %s" % backend)
|
raise Exception("Unknown backend: %s" % backend)
|
||||||
self._ESPEAK_LIB = backend
|
self._ESPEAK_LIB = backend
|
||||||
# skip first two characters of the retuned text
|
|
||||||
# "_ p_ɹ_ˈaɪ_ɚ t_ə n_oʊ_v_ˈɛ_m_b_ɚ t_w_ˈɛ_n_t_i t_ˈuː\n"
|
|
||||||
# ^^
|
|
||||||
self.num_skip_chars = 2
|
|
||||||
if backend == "espeak-ng":
|
|
||||||
# skip the first character of the retuned text
|
|
||||||
# "_p_ɹ_ˈaɪ_ɚ t_ə n_oʊ_v_ˈɛ_m_b_ɚ t_w_ˈɛ_n_t_i t_ˈuː\n"
|
|
||||||
# ^
|
|
||||||
self.num_skip_chars = 1
|
|
||||||
|
|
||||||
def auto_set_espeak_lib(self) -> None:
|
def auto_set_espeak_lib(self) -> None:
|
||||||
if is_tool("espeak-ng"):
|
if is_tool("espeak-ng"):
|
||||||
|
@ -163,7 +154,16 @@ class ESpeak(BasePhonemizer):
|
||||||
phonemes = ""
|
phonemes = ""
|
||||||
for line in _espeak_exe(self._ESPEAK_LIB, args, sync=True):
|
for line in _espeak_exe(self._ESPEAK_LIB, args, sync=True):
|
||||||
logging.debug("line: %s", repr(line))
|
logging.debug("line: %s", repr(line))
|
||||||
phonemes += line.decode("utf8").strip()[self.num_skip_chars :] # skip initial redundant characters
|
ph_decoded = line.decode("utf8").strip()
|
||||||
|
# espeak need to skip first two characters of the retuned text:
|
||||||
|
# version 1.48.03: "_ p_ɹ_ˈaɪ_ɚ t_ə n_oʊ_v_ˈɛ_m_b_ɚ t_w_ˈɛ_n_t_i t_ˈuː\n"
|
||||||
|
# version 1.48.15: " p_ɹ_ˈaɪ_ɚ t_ə n_oʊ_v_ˈɛ_m_b_ɚ t_w_ˈɛ_n_t_i t_ˈuː\n"
|
||||||
|
# espeak-ng need to skip the first character of the retuned text:
|
||||||
|
# "_p_ɹ_ˈaɪ_ɚ t_ə n_oʊ_v_ˈɛ_m_b_ɚ t_w_ˈɛ_n_t_i t_ˈuː\n"
|
||||||
|
|
||||||
|
# dealing with the conditions descrived above
|
||||||
|
ph_decoded = ph_decoded[:1].replace("_", "") + ph_decoded[1:]
|
||||||
|
phonemes += ph_decoded.strip()
|
||||||
return phonemes.replace("_", separator)
|
return phonemes.replace("_", separator)
|
||||||
|
|
||||||
def _phonemize(self, text, separator=None):
|
def _phonemize(self, text, separator=None):
|
||||||
|
|
Loading…
Reference in New Issue