From 122afe0251d1a6232741f7f864a7ad02d220af30 Mon Sep 17 00:00:00 2001 From: OedoSoldier <31711261+OedoSoldier@users.noreply.github.com> Date: Mon, 27 Nov 2023 13:08:43 +0800 Subject: [PATCH] Update infer.py (#196) * Update * Update --- infer.py | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/infer.py b/infer.py index dcc4c36..ad6322a 100644 --- a/infer.py +++ b/infer.py @@ -82,7 +82,7 @@ def get_net_g(model_path: str, version: str, device: str, hps): return net_g -def get_text(text, reference_audio, emotion, language_str, hps, device): +def get_text(text, language_str, hps, device): # 在此处实现当前版本的get_text norm_text, phone, tone, word2ph = clean_text(text, language_str) phone, tone, language = cleaned_text_to_sequence(phone, tone, language_str) @@ -113,12 +113,6 @@ def get_text(text, reference_audio, emotion, language_str, hps, device): else: raise ValueError("language_str should be ZH, JP or EN") - emo = ( - torch.from_numpy(get_emo(reference_audio)) - if reference_audio - else torch.Tensor([emotion]) - ) - assert bert.shape[-1] == len( phone ), f"Bert seq len {bert.shape[-1]} != {len(phone)}" @@ -126,7 +120,16 @@ def get_text(text, reference_audio, emotion, language_str, hps, device): phone = torch.LongTensor(phone) tone = torch.LongTensor(tone) language = torch.LongTensor(language) - return bert, ja_bert, en_bert, emo, phone, tone, language + return bert, ja_bert, en_bert, phone, tone, language + + +def get_emo(reference_audio, emotion): + emo = ( + torch.from_numpy(get_emo(reference_audio)) + if reference_audio + else torch.Tensor([emotion]) + ) + return emo def infer( @@ -191,9 +194,10 @@ def infer( device, ) # 在此处实现当前版本的推理 - bert, ja_bert, en_bert, emo, phones, tones, lang_ids = get_text( - text, reference_audio, emotion, language, hps, device + bert, ja_bert, en_bert, phones, tones, lang_ids = get_text( + text, language, hps, device ) + emo = get_emo(reference_audio, emotion) if skip_start: phones = phones[1:] tones = tones[1:] @@ -261,10 +265,8 @@ def infer_multilang( skip_start=False, skip_end=False, ): - bert, ja_bert, en_bert, emo, phones, tones, lang_ids = [], [], [], [], [], [], [] - # bert, ja_bert, en_bert, phones, tones, lang_ids = get_text( - # text, language, hps, device - # ) + bert, ja_bert, en_bert, phones, tones, lang_ids = [], [], [], [], [], [] + emo = get_emo(reference_audio, emotion) for idx, (txt, lang) in enumerate(zip(text, language)): skip_start = (idx != 0) or (skip_start and idx == 0) skip_end = (idx != len(text) - 1) or (skip_end and idx == len(text) - 1) @@ -300,7 +302,6 @@ def infer_multilang( bert = torch.concatenate(bert, dim=1) ja_bert = torch.concatenate(ja_bert, dim=1) en_bert = torch.concatenate(en_bert, dim=1) - emo = torch.concatenate(emo, dim=1) phones = torch.concatenate(phones, dim=0) tones = torch.concatenate(tones, dim=0) lang_ids = torch.concatenate(lang_ids, dim=0)