현재 1시간 40분 정도의 분량의 보컬 데이터를 학습시키고 있는데
내가 설정을 잘못한건지 데이터가 너무 적은건지 생각보다 고음 지를때 특징이 잘 안살아서 문제야
지금 써본 레포가 RVC 베타 v2랑 Diffusion SVC 1.0인데
RVC는 잘 부르기는 하는데 학습된 음성보다 원곡의 음성의 목소리인가 헷갈릴 정도로 뭔가 싱크로율이 낮음
https://arca.live/b/aispeech/80694874
세팅은 이 글을 완전히 따라함
epoch는 가수라서 한 40정도 돌렸고
loss_disc=3.356, loss_gen=3.863, loss_fm=15.002,loss_mel=23.874, loss_kl=1.319
data:f0_extractor: "crepe" # 'parselmouth', 'dio', 'harvest', or 'crepe'f0_min: 65 # about C2f0_max: 800 # about G5sampling_rate: 44100block_size: 512 # Equal to hop_lengthduration: 2 # Audio duration during training, must be less than the duration of the shortest audio clipencoder: "contentvec768l12" # 'hubertsoft', 'hubertbase', 'hubertbase768', 'contentvec', 'contentvec768' or 'contentvec768l12' or 'cnhubertsoftfish'cnhubertsoft_gate: 10 # only use with cnhubertsoftfishencoder_sample_rate: 16000encoder_hop_size: 320encoder_out_channels: 768 # 256 if using 'hubertsoft'encoder_ckpt: pretrain/contentvec/checkpoint_best_legacy_500.ptunits_forced_mode: "nearest" # Recommended 'nearest',experiment 'rfa512to441' and 'rfa441to512' ; 'left' only use for compatible with history codevolume_noise: 0 # if not 0 ,add noise for volume in train ;;;;EXPERIMENTAL FUNCTION, NOT RECOMMENDED FOR USE;;;;train_path: data/train # Create a folder named "audio" under this path and put the audio clip in itvalid_path: data/val # Create a folder named "audio" under this path and put the audio clip in itextensions: # List of extension included in the data collection- wavmodel:type: "Diffusion"n_layers: 20n_chans: 512n_hidden: 256use_pitch_aug: truen_spk: 1 # max number of different speakersdevice: cudavocoder:type: "nsf-hifigan"ckpt: "pretrain/nsf_hifigan/model"infer:speedup: 10method: "dpm-solver" # 'ddim', 'pndm', 'dpm-solver' or 'unipc'env:expdir: exp/diffusion-testgpu_id: 0train:num_workers: 0 # If your cpu and gpu are both very strong, set to 0 may be faster!amp_dtype: fp32 # fp32, fp16 or bf16 (fp16 or bf16 may be faster if it is supported by your gpu)batch_size: 64cache_all_data: true # Save Internal-Memory or Graphics-Memory if it is false, but may be slowcache_device: "cpu" # Set to 'cuda' to cache the data into the Graphics-Memory, fastest speed for strong gpucache_fp16: trueepochs: 100000interval_log: 10interval_val: 2000interval_force_save: 10000lr: 0.0002decay_step: 100000gamma: 0.5weight_decay: 0save_opt: false
이건 Diffusion SVC에 사용한 yaml임
둘다 멀티 스피커 그런거 아니고 혼자 학습시킴
그래야 원본 느낌이 살것 같아서
아직 epoch 10만 못채워서 현재 loss 그래프랑 csv, json 첨부함
https://files.catbox.moe/xnitu4.csv
https://files.catbox.moe/mbwgi8.json
근데 갠적으론 diffusion svc가 특징을 더 잘 따는것 같기도 함
중간에 잠깐 멈추고 method는 dpm-solver, pndm로 하나씩 출력 해봤는데
dpm-solver가 제일 잘 따라하는것 같았음
저 두 메소드의 차이를 알려주는 사람은 안보이더라
아무튼 뭘 잘못한건지 잘 모르겠음
레포를 갈아타야 하나...