From 3df12719e95e5967aa928f49e4a1bf1f498e7f6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=9D=CE=B1=CF=81=CE=BF=CF=85=CF=83=CE=AD=C2=B7=CE=BC?= =?UTF-8?q?=C2=B7=CE=B3=CE=B9=CE=BF=CF=85=CE=BC=CE=B5=CE=BC=CE=AF=C2=B7?= =?UTF-8?q?=CE=A7=CE=B9=CE=BD=CE=B1=CE=BA=CE=AC=CE=BD=CE=BD=CE=B1?= <40709280+NaruseMioShirakana@users.noreply.github.com> Date: Mon, 22 Apr 2024 22:55:07 +0800 Subject: [PATCH] Add files via upload --- tools/onnx/export_onnx.py | 55 ++------------------------------------- 1 file changed, 2 insertions(+), 53 deletions(-) diff --git a/tools/onnx/export_onnx.py b/tools/onnx/export_onnx.py index 099948c..d374f92 100644 --- a/tools/onnx/export_onnx.py +++ b/tools/onnx/export_onnx.py @@ -1,54 +1,3 @@ -import torch -from infer.lib.infer_pack.models_onnx import SynthesizerTrnMsNSFsidM +from infer.modules.onnx.export import export_onnx -if __name__ == "__main__": - MoeVS = True # 模型是否为MoeVoiceStudio(原MoeSS)使用 - - ModelPath = "Shiroha/shiroha.pth" # 模型路径 - ExportedPath = "model.onnx" # 输出路径 - encoder_dim = 256 # encoder_dim - cpt = torch.load(ModelPath, map_location="cpu") - cpt["config"][-3] = cpt["weight"]["emb_g.weight"].shape[0] # n_spk - print(*cpt["config"]) - - test_phone = torch.rand(1, 200, encoder_dim) # hidden unit - test_phone_lengths = torch.tensor([200]).long() # hidden unit 长度(貌似没啥用) - test_pitch = torch.randint(size=(1, 200), low=5, high=255) # 基频(单位赫兹) - test_pitchf = torch.rand(1, 200) # nsf基频 - test_ds = torch.LongTensor([0]) # 说话人ID - test_rnd = torch.rand(1, 192, 200) # 噪声(加入随机因子) - - device = "cpu" # 导出时设备(不影响使用模型) - - net_g = SynthesizerTrnMsNSFsidM( - *cpt["config"], is_half=False, encoder_dim=encoder_dim - ) # fp32导出(C++要支持fp16必须手动将内存重新排列所以暂时不用fp16) - net_g.load_state_dict(cpt["weight"], strict=False) - input_names = ["phone", "phone_lengths", "pitch", "pitchf", "ds", "rnd"] - output_names = [ - "audio", - ] - # net_g.construct_spkmixmap(n_speaker) 多角色混合轨道导出 - torch.onnx.export( - net_g, - ( - test_phone.to(device), - test_phone_lengths.to(device), - test_pitch.to(device), - test_pitchf.to(device), - test_ds.to(device), - test_rnd.to(device), - ), - ExportedPath, - dynamic_axes={ - "phone": [1], - "pitch": [1], - "pitchf": [1], - "rnd": [2], - }, - do_constant_folding=False, - opset_version=18, - verbose=False, - input_names=input_names, - output_names=output_names, - ) +export_onnx("pt/Justin Bieber.pth" ,"pt/TestRvc_Rvc.onnx") \ No newline at end of file