From 55ce445432d8600fd613a884341a734cb3fe617a Mon Sep 17 00:00:00 2001 From: CyberWon Date: Fri, 25 Apr 2025 18:19:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=9C=A8=E5=85=B6?= =?UTF-8?q?=E4=BB=96=E8=BD=AF=E4=BB=B6import=E6=97=B6=EF=BC=8C=E6=89=BE?= =?UTF-8?q?=E4=B8=8D=E5=88=B0=E6=A8=A1=E5=9E=8B=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GPT_SoVITS/TTS_infer_pack/TTS.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/GPT_SoVITS/TTS_infer_pack/TTS.py b/GPT_SoVITS/TTS_infer_pack/TTS.py index d20daee3..9017d396 100644 --- a/GPT_SoVITS/TTS_infer_pack/TTS.py +++ b/GPT_SoVITS/TTS_infer_pack/TTS.py @@ -565,6 +565,8 @@ class TTS: self.t2s_model = self.t2s_model.half() def init_vocoder(self, version: str): + # 防止第三方导入时,找不到模型文件 + root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) if version == "v3": if self.vocoder is not None and self.vocoder.__class__.__name__ == "BigVGAN": return @@ -574,7 +576,7 @@ class TTS: self.empty_cache() self.vocoder = BigVGAN.from_pretrained( - "%s/GPT_SoVITS/pretrained_models/models--nvidia--bigvgan_v2_24khz_100band_256x" % (now_dir,), + f"{root_dir}/pretrained_models/models--nvidia--bigvgan_v2_24khz_100band_256x", use_cuda_kernel=False, ) # if True, RuntimeError: Ninja is required to load C++ extensions # remove weight norm in the model and set to eval mode @@ -605,7 +607,7 @@ class TTS: gin_channels=0, is_bias=True ) self.vocoder.remove_weight_norm() - state_dict_g = torch.load("%s/GPT_SoVITS/pretrained_models/gsv-v4-pretrained/vocoder.pth" % (now_dir,), map_location="cpu") + state_dict_g = torch.load(f"{root_dir}/pretrained_models/gsv-v4-pretrained/vocoder.pth", map_location="cpu") print("loading vocoder",self.vocoder.load_state_dict(state_dict_g)) self.vocoder_configs["sr"] = 48000