Applio / rvc /train /extract /preparing_files.py
Aitron Emper
Upload 175 files
55adc26 verified
raw
history blame contribute delete
No virus
2.75 kB
import os
import json
import pathlib
from random import shuffle
from rvc.configs.config import Config
config = Config()
current_directory = os.getcwd()
def generate_config(rvc_version, sampling_rate, model_path):
if rvc_version == "v1" or sampling_rate == "40000":
config_path = f"v1/{sampling_rate}.json"
else:
config_path = f"v2/{sampling_rate}.json"
config_save_path = os.path.join(model_path, "config.json")
if not pathlib.Path(config_save_path).exists():
with open(config_save_path, "w", encoding="utf-8") as f:
json.dump(
config.json_config[config_path],
f,
ensure_ascii=False,
indent=4,
sort_keys=True,
)
f.write("\n")
def generate_filelist(f0_method, model_path, rvc_version, sampling_rate):
gt_wavs_dir = f"{model_path}/0_gt_wavs"
feature_dir = (
f"{model_path}/3_feature256"
if rvc_version == "v1"
else f"{model_path}/3_feature768"
)
if f0_method:
f0_dir = f"{model_path}/2a_f0"
f0nsf_dir = f"{model_path}/2b-f0nsf"
names = (
set([name.split(".")[0] for name in os.listdir(gt_wavs_dir)])
& set([name.split(".")[0] for name in os.listdir(feature_dir)])
& set([name.split(".")[0] for name in os.listdir(f0_dir)])
& set([name.split(".")[0] for name in os.listdir(f0nsf_dir)])
)
else:
names = set([name.split(".")[0] for name in os.listdir(gt_wavs_dir)]) & set(
[name.split(".")[0] for name in os.listdir(feature_dir)]
)
options = []
for name in names:
if f0_method:
options.append(
f"{gt_wavs_dir}/{name}.wav|{feature_dir}/{name}.npy|{f0_dir}/{name}.wav.npy|{f0nsf_dir}/{name}.wav.npy|0"
)
else:
options.append(f"{gt_wavs_dir}/{name}.wav|{feature_dir}/{name}.npy|0")
fea_dim = 256 if rvc_version == "v1" else 768
if f0_method:
for _ in range(2):
options.append(
f"{current_directory}/logs/mute/0_gt_wavs/mute{sampling_rate}.wav|{current_directory}/logs/mute/3_feature{fea_dim}/mute.npy|{current_directory}/logs/mute/2a_f0/mute.wav.npy|{current_directory}/logs/mute/2b-f0nsf/mute.wav.npy|0"
)
else:
for _ in range(2):
options.append(
f"{current_directory}/logs/mute/0_gt_wavs/mute{sampling_rate}.wav|{current_directory}/logs/mute/3_feature{fea_dim}/mute.npy|0"
)
shuffle(options)
with open(f"{model_path}/filelist.txt", "w") as f:
f.write("\n".join(options))