helios0l/RVC_HF
0
1import argparse2import os3import sys4 5now_dir = os.getcwd()6sys.path.append(now_dir)7from dotenv import load_dotenv8from scipy.io import wavfile9 10from configs.config import Config11from infer.modules.vc.modules import VC12 13####14# USAGE15#16# In your Terminal or CMD or whatever17 18 19def arg_parse() -> tuple:20 parser = argparse.ArgumentParser()21 parser.add_argument("--f0up_key", type=int, default=0)22 parser.add_argument("--input_path", type=str, help="input path")23 parser.add_argument("--index_path", type=str, help="index path")24 parser.add_argument("--f0method", type=str, default="harvest", help="harvest or pm")25 parser.add_argument("--opt_path", type=str, help="opt path")26 parser.add_argument("--model_name", type=str, help="store in assets/weight_root")27 parser.add_argument("--index_rate", type=float, default=0.66, help="index rate")28 parser.add_argument("--device", type=str, help="device")29 parser.add_argument("--is_half", type=bool, help="use half -> True")30 parser.add_argument("--filter_radius", type=int, default=3, help="filter radius")31 parser.add_argument("--resample_sr", type=int, default=0, help="resample sr")32 parser.add_argument("--rms_mix_rate", type=float, default=1, help="rms mix rate")33 parser.add_argument("--protect", type=float, default=0.33, help="protect")34 35 args = parser.parse_args()36 sys.argv = sys.argv[:1]37 38 return args39 40 41def main():42 load_dotenv()43 args = arg_parse()44 config = Config()45 config.device = args.device if args.device else config.device46 config.is_half = args.is_half if args.is_half else config.is_half47 vc = VC(config)48 vc.get_vc(args.model_name)49 _, wav_opt = vc.vc_single(50 0,51 args.input_path,52 args.f0up_key,53 None,54 args.f0method,55 args.index_path,56 None,57 args.index_rate,58 args.filter_radius,59 args.resample_sr,60 args.rms_mix_rate,61 args.protect,62 )63 wavfile.write(args.opt_path, wav_opt[0], wav_opt[1])64 65 66if __name__ == "__main__":67 main()68 