From c39aaafbfc679c630ee9f672b93f3d5ad0b8333e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eren=20G=C3=B6lge?= Date: Thu, 25 Nov 2021 17:28:17 +0100 Subject: [PATCH] Update EspeakWrapper for espeak-ng --- .../utils/text/phonemizers/espeak_wrapper.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/TTS/tts/utils/text/phonemizers/espeak_wrapper.py b/TTS/tts/utils/text/phonemizers/espeak_wrapper.py index 45169c17..f806f036 100644 --- a/TTS/tts/utils/text/phonemizers/espeak_wrapper.py +++ b/TTS/tts/utils/text/phonemizers/espeak_wrapper.py @@ -1,6 +1,5 @@ import logging import subprocess -import tempfile from typing import Dict, List from TTS.tts.utils.text.phonemizers.base import BasePhonemizer @@ -24,6 +23,7 @@ else: def _espeak_exe(espeak_lib: str, args: List, sync=False) -> List[str]: cmd = [ espeak_lib, + "-q", "-b", "1", # UTF8 text encoding ] @@ -107,11 +107,20 @@ class ESpeak(BasePhonemizer): with '_'. This option requires espeak>=1.49. Default to False. """ # set arguments - args = ["-q", "-v", f"{self._language}"] + args = ["-v", f"{self._language}"] + # espeak and espeak-ng parses `ipa` differently if tie: - args.append("--ipa=1") # use '͡' between phonemes + # use '͡' between phonemes + if _DEF_ESPEAK_LIB == "espeak": + args.append("--ipa=1") + else: + args.append("--ipa=3") else: - args.append("--ipa=3") # split with '_' + # split with '_' + if _DEF_ESPEAK_LIB == "espeak": + args.append("--ipa=3") + else: + args.append("--ipa=1") if tie: args.append("--tie=%s" % tie) args.append(text)