|
from voice_changer.RVC.RVCModelSlotGenerator import RVCModelSlotGenerator |
|
from voice_changer.VoiceChangerParamsManager import VoiceChangerParamsManager |
|
from voice_changer.utils.LoadModelParams import LoadModelParamFile, LoadModelParams |
|
from voice_changer.utils.VoiceChangerParams import VoiceChangerParams |
|
model_dir1 = "model_dir/"+model_slot+"/" |
|
is_pth = True |
|
file_extension = ".pth" if is_pth else ".onnx" |
|
|
|
pth_files = [f for f in os.listdir(model_dir1) if f.endswith(".pth") or f.endswith(".onnx")] |
|
print(pth_files) |
|
index_files = [f for f in os.listdir(model_dir1) if f.endswith(".index")] |
|
if pth_files: |
|
model_name = pth_files[0].replace(".pth", "") |
|
else: |
|
model_name = "Null" |
|
if index_files: |
|
index_name = index_files[0].replace(".index", "") |
|
else: |
|
index_name = "" |
|
original_string = str(pth_files) |
|
string_pth_files = original_string[2:-2] |
|
print("IM A STRING"+original_string) |
|
print(model_name) |
|
voiceChangerParams = VoiceChangerParams( |
|
model_dir="./model_dir/"+model_slot, |
|
content_vec_500="", |
|
content_vec_500_onnx="", |
|
content_vec_500_onnx_on="", |
|
hubert_base="", |
|
hubert_base_jp="", |
|
hubert_soft="", |
|
nsf_hifigan="", |
|
crepe_onnx_full="", |
|
crepe_onnx_tiny="", |
|
rmvpe="", |
|
rmvpe_onnx="", |
|
sample_mode="" |
|
) |
|
vcparams = VoiceChangerParamsManager.get_instance() |
|
vcparams.setParams(voiceChangerParams) |
|
file = LoadModelParamFile( |
|
name=string_pth_files, |
|
kind="rvcModel", |
|
dir="", |
|
) |
|
loadParam = LoadModelParams( |
|
voiceChangerType="RVC", |
|
files=[file], |
|
slot="", |
|
isSampleMode=False, |
|
sampleId="", |
|
params={}, |
|
) |
|
slotInfo = RVCModelSlotGenerator.loadModel(loadParam) |
|
print(slotInfo.samplingRate) |
|
|
|
params_content = { |
|
"slotIndex": -1, |
|
"voiceChangerType": "RVC", |
|
"name": model_name, |
|
"description": "", |
|
"credit": "", |
|
"termsOfUseUrl": "", |
|
"iconFile": iconFile, |
|
"speakers": { |
|
"0": "target" |
|
}, |
|
"modelFile": string_pth_files, |
|
"indexFile": f"{index_name}.index", |
|
"defaultTune": Tune, |
|
"defaultIndexRatio": Index, |
|
"defaultProtect": 0.5, |
|
"isONNX": False, |
|
"modelType": "pyTorchRVCv2", |
|
"samplingRate": slotInfo.samplingRate, |
|
"f0": True, |
|
"embChannels": 768, |
|
"embOutputLayer": 12, |
|
"useFinalProj": False, |
|
"deprecated": False, |
|
"embedder": "hubert_base", |
|
"sampleId": "" |
|
} |
|
|
|
with open(f"{model_dir1}/params.json", "w") as param_file: |
|
json.dump(params_content, param_file) |