File size: 1,639 Bytes
1b9cb8c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
from models_onnx import SynthesizerTrn
import utils
from text.symbols import symbols
import os
import json
def export_onnx(export_path, model_path, config_path):
hps = utils.get_hparams_from_file(config_path)
net_g = SynthesizerTrn(
len(symbols),
hps.data.filter_length // 2 + 1,
hps.train.segment_size // hps.data.hop_length,
n_speakers=hps.data.n_speakers,
**hps.model,
)
_ = net_g.eval()
_ = utils.load_checkpoint(model_path, net_g, None, skip_optimizer=True)
net_g.export_onnx(export_path)
spklist = []
for key in hps.data.spk2id.keys():
spklist.append(key)
MoeVSConf = {
"Folder": f"{export_path}",
"Name": f"{export_path}",
"Type": "BertVits",
"Symbol": symbols,
"Cleaner": "",
"Rate": hps.data.sampling_rate,
"CharaMix": True,
"Characters": spklist,
"LanguageMap": {"ZH": [0, 0], "JP": [1, 6], "EN": [2, 8]},
"Dict": "BasicDict",
"BertPath": [
"chinese-roberta-wwm-ext-large",
"deberta-v2-large-japanese",
"bert-base-japanese-v3",
],
}
with open(f"onnx/{export_path}.json", "w") as MoeVsConfFile:
json.dump(MoeVSConf, MoeVsConfFile, indent=4)
if __name__ == "__main__":
print(symbols)
export_path = "HimenoSena"
model_path = "G_53000.pth"
config_path = "config.json"
if not os.path.exists("onnx"):
os.makedirs("onnx")
if not os.path.exists(f"onnx/{export_path}"):
os.makedirs(f"onnx/{export_path}")
export_onnx(export_path, model_path, config_path)
|