Text-to-Speech
coqui

Can you tell me how to fix it, I'm using the example given by the official

#113
by zjzjzjzjzjzjzj - opened

i try it :def convert():

config = XttsConfig()
config.load_json(r"D:\test\xtts\XTTS-v2\config.json")
model = Xtts.init_from_config(config)
checkpoint_dir = r"D:\test\xtts\XTTS-v2"
model.load_checkpoint(config, checkpoint_dir=checkpoint_dir, eval=True)
model.cuda()

outputs = model.synthesize(
    "It took me quite a long time to develop a voice and now that I have it I am not going to be silent.",
    config,
    speaker_wav=r"C:\Users\Administrator.DESKTOP-9VRVEFV\Desktop\789.MP3",
    gpt_cond_len=3,
    language="en",
),

but:
D:\Anaconda3\envs\xtts\python.exe D:\test\xtts\xtts_main\tests.py
Traceback (most recent call last):
File "D:\test\xtts\xtts_main\tests.py", line 32, in
main()
File "D:\test\xtts\xtts_main\tests.py", line 28, in main
convert()
File "D:\test\xtts\xtts_main\tests.py", line 18, in convert
model.load_checkpoint(config, checkpoint_dir=r"D:\test\xtts\XTTS-v2", eval=True)
File "D:\Anaconda3\envs\xtts\Lib\site-packages\TTS\tts\models\xtts.py", line 771, in load_checkpoint
checkpoint = self.get_compatible_checkpoint_state_dict(model_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Anaconda3\envs\xtts\Lib\site-packages\TTS\tts\models\xtts.py", line 714, in get_compatible_checkpoint_state_dict
checkpoint = load_fsspec(model_path, map_location=torch.device("cpu"))["model"]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Anaconda3\envs\xtts\Lib\site-packages\TTS\utils\io.py", line 54, in load_fsspec
return torch.load(f, map_location=map_location, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Anaconda3\envs\xtts\Lib\site-packages\torch\serialization.py", line 1470, in load
raise pickle.UnpicklingError(_get_wo_message(str(e))) from None
_pickle.UnpicklingError: Weights only load failed. This file can still be loaded, to do so you have two options, do those steps only if you trust the source of the checkpoint.
(1) In PyTorch 2.6, we changed the default value of the weights_only argument in torch.load from False to True. Re-running torch.load with weights_only set to False will likely succeed, but it can result in arbitrary code execution. Do it only if you got the file from a trusted source.
(2) Alternatively, to load with weights_only=True please check the recommended steps in the following error message.
WeightsUnpickler error: Unsupported global: GLOBAL TTS.config.shared_configs.BaseDatasetConfig was not an allowed global by default. Please use torch.serialization.add_safe_globals([BaseDatasetConfig]) or the torch.serialization.safe_globals([BaseDatasetConfig]) context manager to allowlist this global if you trust this class/function.

Check the documentation of torch.load to learn more about types accepted by default with weights_only https://pytorch.org/docs/stable/generated/torch.load.html.

进程已结束,退出代码为 1
Can you tell me how to fix it, I'm using the example given by the official

I think it can't find model file, you need to directly point it... using model_path or similar
(I encountered this too)

向环境变量里面新增关闭 WEIGHTS_ONLY 就可以了
os.environ["TORCH_FORCE_NO_WEIGHTS_ONLY_LOAD"] = "1"

I switched to docker, check server.py there, it uses a bit different approach.
first time I use python3 TTS/server/server.py --model_name to download model, it downloads, then fails to find model
next, python3 TTS/server/server.py --model_path to actually load model

I think it can't find model file, you need to directly point it... using model_path or similar
(I encountered this too)

thx,it is very useful

向环境变量里面新增关闭 WEIGHTS_ONLY 就可以了
os.environ["TORCH_FORCE_NO_WEIGHTS_ONLY_LOAD"] = "1"

感谢

I switched to docker, check server.py there, it uses a bit different approach.
first time I use python3 TTS/server/server.py --model_name to download model, it downloads, then fails to find model
next, python3 TTS/server/server.py --model_path to actually load model

okay , thx it is very useful

Your need to confirm your account before you can post a new comment.

Sign up or log in to comment