| 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) |
|
|