mirror of
https://github.com/fumiama/Retrieval-based-Voice-Conversion-WebUI.git
synced 2026-06-06 01:30:24 +08:00
32 lines
855 B
Python
32 lines
855 B
Python
import torch
|
|
|
|
from rvc.layers.synthesizers import SynthesizerTrnMsNSFsid
|
|
|
|
|
|
def get_synthesizer_ckpt(cpt, device=torch.device("cpu")):
|
|
cpt["config"][-3] = cpt["weight"]["emb_g.weight"].shape[0]
|
|
if_f0 = cpt.get("f0", 1)
|
|
version = cpt.get("version", "v1")
|
|
if version == "v1":
|
|
encoder_dim = 256
|
|
elif version == "v2":
|
|
encoder_dim = 768
|
|
net_g = SynthesizerTrnMsNSFsid(
|
|
*cpt["config"],
|
|
encoder_dim=encoder_dim,
|
|
use_f0=if_f0 == 1,
|
|
)
|
|
del net_g.enc_q
|
|
net_g.load_state_dict(cpt["weight"], strict=False)
|
|
net_g = net_g.float()
|
|
net_g.eval().to(device)
|
|
net_g.remove_weight_norm()
|
|
return net_g, cpt
|
|
|
|
|
|
def get_synthesizer(pth_path, device=torch.device("cpu")):
|
|
return get_synthesizer_ckpt(
|
|
torch.load(pth_path, map_location=torch.device("cpu")),
|
|
device,
|
|
)
|