현재 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 C2
f0_max: 800 # about G5
sampling_rate: 44100
block_size: 512 # Equal to hop_length
duration: 2 # Audio duration during training, must be less than the duration of the shortest audio clip
encoder: "contentvec768l12" # 'hubertsoft', 'hubertbase', 'hubertbase768', 'contentvec', 'contentvec768' or 'contentvec768l12' or 'cnhubertsoftfish'
cnhubertsoft_gate: 10 # only use with cnhubertsoftfish
encoder_sample_rate: 16000
encoder_hop_size: 320
encoder_out_channels: 768 # 256 if using 'hubertsoft'
encoder_ckpt: pretrain/contentvec/checkpoint_best_legacy_500.pt
units_forced_mode: "nearest" # Recommended 'nearest',experiment 'rfa512to441' and 'rfa441to512' ; 'left' only use for compatible with history code
volume_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 it
valid_path: data/val # Create a folder named "audio" under this path and put the audio clip in it
extensions: # List of extension included in the data collection
- wav
model:
type: "Diffusion"
n_layers: 20
n_chans: 512
n_hidden: 256
use_pitch_aug: true
n_spk: 1 # max number of different speakers
device: cuda
vocoder:
type: "nsf-hifigan"
ckpt: "pretrain/nsf_hifigan/model"
infer:
speedup: 10
method: "dpm-solver" # 'ddim', 'pndm', 'dpm-solver' or 'unipc'
env:
expdir: exp/diffusion-test
gpu_id: 0
train:
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: 64
cache_all_data: true # Save Internal-Memory or Graphics-Memory if it is false, but may be slow
cache_device: "cpu" # Set to 'cuda' to cache the data into the Graphics-Memory, fastest speed for strong gpu
cache_fp16: true
epochs: 100000
interval_log: 10
interval_val: 2000
interval_force_save: 10000
lr: 0.0002
decay_step: 100000
gamma: 0.5
weight_decay: 0
save_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가 제일 잘 따라하는것 같았음

저 두 메소드의 차이를 알려주는 사람은 안보이더라

아무튼 뭘 잘못한건지 잘 모르겠음

레포를 갈아타야 하나...