From ed96ffd752bc28be571a23fcbd6e238e98af43b5 Mon Sep 17 00:00:00 2001 From: KamioRinn Date: Fri, 27 Jun 2025 02:10:43 +0800 Subject: [PATCH] sync api --- api.py | 50 ++++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/api.py b/api.py index b7e94e77..7d8587b0 100644 --- a/api.py +++ b/api.py @@ -532,32 +532,34 @@ from text import chinese def get_phones_and_bert(text, language, version, final=False): - if language in {"en", "all_zh", "all_ja", "all_ko", "all_yue"}: - formattext = text - while " " in formattext: - formattext = formattext.replace(" ", " ") - if language == "all_zh": - if re.search(r"[A-Za-z]", formattext): - formattext = re.sub(r"[a-z]", lambda x: x.group(0).upper(), formattext) - formattext = chinese.mix_text_normalize(formattext) - return get_phones_and_bert(formattext, "zh", version) - else: - phones, word2ph, norm_text = clean_text_inf(formattext, language, version) - bert = get_bert_feature(norm_text, word2ph).to(device) - elif language == "all_yue" and re.search(r"[A-Za-z]", formattext): - formattext = re.sub(r"[a-z]", lambda x: x.group(0).upper(), formattext) - formattext = chinese.mix_text_normalize(formattext) - return get_phones_and_bert(formattext, "yue", version) - else: - phones, word2ph, norm_text = clean_text_inf(formattext, language, version) - bert = torch.zeros( - (1024, len(phones)), - dtype=torch.float16 if is_half == True else torch.float32, - ).to(device) - elif language in {"zh", "ja", "ko", "yue", "auto", "auto_yue"}: + if language in {"all_zh", "all_yue", "all_ja", "all_ko", "zh", "ja", "ko", "yue", "en", "auto", "auto_yue"}: textlist = [] langlist = [] - if language == "auto": + if language == "all_zh": + for tmp in LangSegmenter.getTexts(text,"zh"): + langlist.append(tmp["lang"]) + textlist.append(tmp["text"]) + elif language == "all_yue": + for tmp in LangSegmenter.getTexts(text,"zh"): + if tmp["lang"] == "zh": + tmp["lang"] = "yue" + langlist.append(tmp["lang"]) + textlist.append(tmp["text"]) + elif language == "all_ja": + for tmp in LangSegmenter.getTexts(text,"ja"): + langlist.append(tmp["lang"]) + textlist.append(tmp["text"]) + elif language == "all_ko": + for tmp in LangSegmenter.getTexts(text,"ko"): + langlist.append(tmp["lang"]) + textlist.append(tmp["text"]) + elif language == "en": + formattext = text + while " " in formattext: + formattext = formattext.replace(" ", " ") + langlist.append("en") + textlist.append(formattext) + elif language == "auto": for tmp in LangSegmenter.getTexts(text): langlist.append(tmp["lang"]) textlist.append(tmp["text"])