mirror of https://github.com/coqui-ai/TTS.git
fix: make korean g2p deps optional
This commit is contained in:
parent
55ed162f2a
commit
865a48156d
|
@ -159,6 +159,7 @@ The following extras allow the installation of optional dependencies:
|
||||||
| `server` | Dependencies to run the TTS server |
|
| `server` | Dependencies to run the TTS server |
|
||||||
| `bn` | Bangla G2P |
|
| `bn` | Bangla G2P |
|
||||||
| `ja` | Japanese G2P |
|
| `ja` | Japanese G2P |
|
||||||
|
| `ko` | Korean G2P |
|
||||||
| `zh` | Chinese G2P |
|
| `zh` | Chinese G2P |
|
||||||
| `languages` | All language-specific dependencies |
|
| `languages` | All language-specific dependencies |
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,6 @@ import textwrap
|
||||||
from functools import cached_property
|
from functools import cached_property
|
||||||
|
|
||||||
import torch
|
import torch
|
||||||
from hangul_romanize import Transliter
|
|
||||||
from hangul_romanize.rule import academic
|
|
||||||
from num2words import num2words
|
from num2words import num2words
|
||||||
from spacy.lang.ar import Arabic
|
from spacy.lang.ar import Arabic
|
||||||
from spacy.lang.en import English
|
from spacy.lang.en import English
|
||||||
|
@ -592,6 +590,11 @@ def japanese_cleaners(text, katsu):
|
||||||
|
|
||||||
|
|
||||||
def korean_transliterate(text):
|
def korean_transliterate(text):
|
||||||
|
try:
|
||||||
|
from hangul_romanize import Transliter
|
||||||
|
from hangul_romanize.rule import academic
|
||||||
|
except ImportError as e:
|
||||||
|
raise ImportError("Korean requires: hangul_romanize") from e
|
||||||
r = Transliter(academic)
|
r = Transliter(academic)
|
||||||
return r.translit(text)
|
return r.translit(text)
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
from jamo import hangul_to_jamo
|
try:
|
||||||
|
from jamo import hangul_to_jamo
|
||||||
|
except ImportError as e:
|
||||||
|
raise ImportError("Korean requires: g2pkk, jamo") from e
|
||||||
|
|
||||||
from TTS.tts.utils.text.korean.korean import normalize
|
from TTS.tts.utils.text.korean.korean import normalize
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@ from TTS.tts.utils.text.phonemizers.base import BasePhonemizer
|
||||||
from TTS.tts.utils.text.phonemizers.belarusian_phonemizer import BEL_Phonemizer
|
from TTS.tts.utils.text.phonemizers.belarusian_phonemizer import BEL_Phonemizer
|
||||||
from TTS.tts.utils.text.phonemizers.espeak_wrapper import ESpeak
|
from TTS.tts.utils.text.phonemizers.espeak_wrapper import ESpeak
|
||||||
from TTS.tts.utils.text.phonemizers.gruut_wrapper import Gruut
|
from TTS.tts.utils.text.phonemizers.gruut_wrapper import Gruut
|
||||||
from TTS.tts.utils.text.phonemizers.ko_kr_phonemizer import KO_KR_Phonemizer
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from TTS.tts.utils.text.phonemizers.bangla_phonemizer import BN_Phonemizer
|
from TTS.tts.utils.text.phonemizers.bangla_phonemizer import BN_Phonemizer
|
||||||
|
@ -14,12 +13,17 @@ try:
|
||||||
except ImportError:
|
except ImportError:
|
||||||
JA_JP_Phonemizer = None
|
JA_JP_Phonemizer = None
|
||||||
|
|
||||||
|
try:
|
||||||
|
from TTS.tts.utils.text.phonemizers.ko_kr_phonemizer import KO_KR_Phonemizer
|
||||||
|
except ImportError:
|
||||||
|
KO_KR_Phonemizer = None
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from TTS.tts.utils.text.phonemizers.zh_cn_phonemizer import ZH_CN_Phonemizer
|
from TTS.tts.utils.text.phonemizers.zh_cn_phonemizer import ZH_CN_Phonemizer
|
||||||
except ImportError:
|
except ImportError:
|
||||||
ZH_CN_Phonemizer = None
|
ZH_CN_Phonemizer = None
|
||||||
|
|
||||||
PHONEMIZERS = {b.name(): b for b in (ESpeak, Gruut, KO_KR_Phonemizer)}
|
PHONEMIZERS = {b.name(): b for b in (ESpeak, Gruut)}
|
||||||
|
|
||||||
|
|
||||||
ESPEAK_LANGS = list(ESpeak.supported_languages().keys())
|
ESPEAK_LANGS = list(ESpeak.supported_languages().keys())
|
||||||
|
@ -40,7 +44,6 @@ DEF_LANG_TO_PHONEMIZER.update(_new_dict)
|
||||||
|
|
||||||
# Force default for some languages
|
# Force default for some languages
|
||||||
DEF_LANG_TO_PHONEMIZER["en"] = DEF_LANG_TO_PHONEMIZER["en-us"]
|
DEF_LANG_TO_PHONEMIZER["en"] = DEF_LANG_TO_PHONEMIZER["en-us"]
|
||||||
DEF_LANG_TO_PHONEMIZER["ko-kr"] = KO_KR_Phonemizer.name()
|
|
||||||
DEF_LANG_TO_PHONEMIZER["be"] = BEL_Phonemizer.name()
|
DEF_LANG_TO_PHONEMIZER["be"] = BEL_Phonemizer.name()
|
||||||
|
|
||||||
|
|
||||||
|
@ -50,6 +53,9 @@ if BN_Phonemizer is not None:
|
||||||
if JA_JP_Phonemizer is not None:
|
if JA_JP_Phonemizer is not None:
|
||||||
PHONEMIZERS[JA_JP_Phonemizer.name()] = JA_JP_Phonemizer
|
PHONEMIZERS[JA_JP_Phonemizer.name()] = JA_JP_Phonemizer
|
||||||
DEF_LANG_TO_PHONEMIZER["ja-jp"] = JA_JP_Phonemizer.name()
|
DEF_LANG_TO_PHONEMIZER["ja-jp"] = JA_JP_Phonemizer.name()
|
||||||
|
if KO_KR_Phonemizer is not None:
|
||||||
|
PHONEMIZERS[KO_KR_Phonemizer.name()] = KO_KR_Phonemizer
|
||||||
|
DEF_LANG_TO_PHONEMIZER["ko-kr"] = KO_KR_Phonemizer.name()
|
||||||
if ZH_CN_Phonemizer is not None:
|
if ZH_CN_Phonemizer is not None:
|
||||||
PHONEMIZERS[ZH_CN_Phonemizer.name()] = ZH_CN_Phonemizer
|
PHONEMIZERS[ZH_CN_Phonemizer.name()] = ZH_CN_Phonemizer
|
||||||
DEF_LANG_TO_PHONEMIZER["zh-cn"] = ZH_CN_Phonemizer.name()
|
DEF_LANG_TO_PHONEMIZER["zh-cn"] = ZH_CN_Phonemizer.name()
|
||||||
|
@ -78,6 +84,8 @@ def get_phonemizer_by_name(name: str, **kwargs) -> BasePhonemizer:
|
||||||
raise ValueError("You need to install JA phonemizer dependencies. Try `pip install coqui-tts[ja]`.")
|
raise ValueError("You need to install JA phonemizer dependencies. Try `pip install coqui-tts[ja]`.")
|
||||||
return JA_JP_Phonemizer(**kwargs)
|
return JA_JP_Phonemizer(**kwargs)
|
||||||
if name == "ko_kr_phonemizer":
|
if name == "ko_kr_phonemizer":
|
||||||
|
if KO_KR_Phonemizer is None:
|
||||||
|
raise ValueError("You need to install KO phonemizer dependencies. Try `pip install coqui-tts[ko]`.")
|
||||||
return KO_KR_Phonemizer(**kwargs)
|
return KO_KR_Phonemizer(**kwargs)
|
||||||
if name == "bn_phonemizer":
|
if name == "bn_phonemizer":
|
||||||
if BN_Phonemizer is None:
|
if BN_Phonemizer is None:
|
||||||
|
|
|
@ -65,10 +65,6 @@ dependencies = [
|
||||||
# Coqui stack
|
# Coqui stack
|
||||||
"coqui-tts-trainer>=0.1",
|
"coqui-tts-trainer>=0.1",
|
||||||
"coqpit>=0.0.16",
|
"coqpit>=0.0.16",
|
||||||
# Korean
|
|
||||||
"hangul_romanize",
|
|
||||||
"jamo",
|
|
||||||
"g2pkk>=0.1.1",
|
|
||||||
# Gruut + supported languages
|
# Gruut + supported languages
|
||||||
"gruut[de,es,fr]==2.2.3",
|
"gruut[de,es,fr]==2.2.3",
|
||||||
# Tortoise
|
# Tortoise
|
||||||
|
@ -114,6 +110,12 @@ bn = [
|
||||||
"bnnumerizer",
|
"bnnumerizer",
|
||||||
"bnunicodenormalizer",
|
"bnunicodenormalizer",
|
||||||
]
|
]
|
||||||
|
# Korean
|
||||||
|
ko = [
|
||||||
|
"hangul_romanize",
|
||||||
|
"jamo",
|
||||||
|
"g2pkk>=0.1.1",
|
||||||
|
]
|
||||||
# Japanese
|
# Japanese
|
||||||
ja = [
|
ja = [
|
||||||
"mecab-python3",
|
"mecab-python3",
|
||||||
|
@ -127,11 +129,11 @@ zh = [
|
||||||
]
|
]
|
||||||
# All language-specific dependencies
|
# All language-specific dependencies
|
||||||
languages = [
|
languages = [
|
||||||
"coqui-tts[bn,ja,zh]",
|
"coqui-tts[bn,ja,ko,zh]",
|
||||||
]
|
]
|
||||||
# Installs all extras (except dev and docs)
|
# Installs all extras (except dev and docs)
|
||||||
all = [
|
all = [
|
||||||
"coqui-tts[notebooks,server,bn,ja,zh]",
|
"coqui-tts[notebooks,server,bn,ja,ko,zh]",
|
||||||
]
|
]
|
||||||
|
|
||||||
[project.urls]
|
[project.urls]
|
||||||
|
|
Loading…
Reference in New Issue