import torch, pdb, os,sys,librosa,warnings,traceback warnings.filterwarnings("ignore") torch.manual_seed(114514) sys.path.append(os.getcwd()) from config import inp_root,opt_root,f0_up_key,person,is_half,device os.makedirs(opt_root,exist_ok=True) import soundfile as sf from infer_pack.models import SynthesizerTrnMs256NSF as SynthesizerTrn256 from scipy.io import wavfile from fairseq import checkpoint_utils import scipy.signal as signal from vc_infer_pipeline import VC models, saved_cfg, task = checkpoint_utils.load_model_ensemble_and_task(["hubert_base.pt"],suffix="",) model = models[0] model = model.to(device) if(is_half):model = model.half() else:model = model.float() model.eval() cpt=torch.load(person,map_location="cpu") dv=cpt["dv"] tgt_sr=cpt["config"][-1] net_g = SynthesizerTrn256(*cpt["config"],is_half=is_half) net_g.load_state_dict(cpt["weight"],strict=True) net_g.eval().to(device) if(is_half):net_g = net_g.half() else:net_g = net_g.float() vc=VC(tgt_sr,device,is_half) for name in os.listdir(inp_root): try: wav_path="%s\%s"%(inp_root,name) print("processing %s"%wav_path) audio, sampling_rate = sf.read(wav_path) if len(audio.shape) > 1: audio = librosa.to_mono(audio.transpose(1, 0)) if sampling_rate != vc.sr: audio = librosa.resample(audio, orig_sr=sampling_rate, target_sr=vc.sr) times = [0, 0, 0] audio_opt=vc.pipeline(model,net_g,dv,audio,times,f0_up_key,f0_file=None) wavfile.write("%s/%s"%(opt_root,name), tgt_sr, audio_opt) except: traceback.print_exc() print(times)