From 035dcbad031fb98da42c890c9959a2ff8d31ad88 Mon Sep 17 00:00:00 2001 From: Jialiang Zhu <56442462+TzRain@users.noreply.github.com> Date: Thu, 5 Jun 2025 10:55:21 +0800 Subject: [PATCH] Fix AttributeError when prompt_cache['refer_spec'][0] is a tuple (#2428) Co-authored-by: tzrain --- GPT_SoVITS/TTS_infer_pack/TTS.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/GPT_SoVITS/TTS_infer_pack/TTS.py b/GPT_SoVITS/TTS_infer_pack/TTS.py index 80de430..c353180 100644 --- a/GPT_SoVITS/TTS_infer_pack/TTS.py +++ b/GPT_SoVITS/TTS_infer_pack/TTS.py @@ -1407,7 +1407,10 @@ class TTS: ): prompt_semantic_tokens = self.prompt_cache["prompt_semantic"].unsqueeze(0).unsqueeze(0).to(self.configs.device) prompt_phones = torch.LongTensor(self.prompt_cache["phones"]).unsqueeze(0).to(self.configs.device) - refer_audio_spec = self.prompt_cache["refer_spec"][0].to(dtype=self.precision, device=self.configs.device) + raw_entry = self.prompt_cache["refer_spec"][0] + if isinstance(raw_entry, tuple): + raw_entry = raw_entry[0] + refer_audio_spec = raw_entry.to(dtype=self.precision,device=self.configs.device) fea_ref, ge = self.vits_model.decode_encp(prompt_semantic_tokens, prompt_phones, refer_audio_spec) ref_audio: torch.Tensor = self.prompt_cache["raw_audio"] @@ -1474,7 +1477,10 @@ class TTS: ) -> List[torch.Tensor]: prompt_semantic_tokens = self.prompt_cache["prompt_semantic"].unsqueeze(0).unsqueeze(0).to(self.configs.device) prompt_phones = torch.LongTensor(self.prompt_cache["phones"]).unsqueeze(0).to(self.configs.device) - refer_audio_spec = self.prompt_cache["refer_spec"][0].to(dtype=self.precision, device=self.configs.device) + raw_entry = self.prompt_cache["refer_spec"][0] + if isinstance(raw_entry, tuple): + raw_entry = raw_entry[0] + refer_audio_spec = raw_entry.to(dtype=self.precision,device=self.configs.device) fea_ref, ge = self.vits_model.decode_encp(prompt_semantic_tokens, prompt_phones, refer_audio_spec) ref_audio: torch.Tensor = self.prompt_cache["raw_audio"]