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)