wlsdml1114 / DDSP-SVC-KOR

Real-time end-to-end singing voice conversion system based on DDSP (Differentiable Digital Signal Processing)
MIT License
38 stars 7 forks source link

학습을 중간에 끊으면 챕터4로 못 넘어가나요? #21

Open Mimroin opened 1 year ago

Mimroin commented 1 year ago

총합 25시간(추정) 학습을 진행한 것 같은데, 현재 269K steps인 상황입니다. 중간중간 몇 번 끊으면서 챕터4 결과물 뽑기로 넘어가려고 했으나 진행이 안 되어 학습이 전부 끝나야 되는 건가 싶어 다시 하기를 반복했는데, 챕터3 학습 과정에서 마무리 될 때까지 기다리는 것이 맞나요?

유튜브 댓글에서는 로스율이 수렴하면 중간에 끊어도 괜찮다는 말씀도 있으셨는데 실제로 끊으니까 챕터4에서 오류를 뱉어내어 진행이 안 되었습니다.(config.json이 없다는 오류)

디스코드 서버에 참여해 여쭤보려 했으나 접속이 안 된다고 나오네요ㅠㅠ...

wlsdml1114 commented 1 year ago

학습에 사용한 exp/어쩌구 path를 넣어줘야합니다.

Mimroin commented 1 year ago

저의 경우는 exp/sins-test/인데 이곳에 있는 가장 최신 학습 .pt파일인 model_292000.pt를 적어 'model_path' : 'exp/sins-test/model_292000.pt'로 실행었는데도 config.json이 없다는 오류를 내는데 혹시 다른 문제가 있는 걸까요?ㅠㅠ 코딩쪽 지식이 얕아서 어렵네요...

Mimroin commented 1 year ago

지난번에 돌렸을 때 나왔던 에러 로그는 아래와 같습니다.


FileNotFoundError Traceback (most recent call last) Cell In[5], line 21 4 configures = { 5 'model_path' : 'exp/sins-test/model_180000.pt', # 추론에 사용하고자 하는 모델, 바로위에서 학습한 모델을 가져오면댐 6 'input' : 'data/train/audio/planetes.wav', # 추론하고자 하는 노래파일의 위치 - 님들이 바꿔야댐 (...) 17 'enhancer_adaptive_key' : '0' 18 } 19 cmd = SimpleNamespace(**configures) ---> 21 inference(cmd)

File ~\Downloads\DDSP-SVC-KOR-master\DDSP-SVC-KOR-master\main.py:234, in inference(cmd) 232 if cmd.enhance == 'true': 233 print('Enhancer type: ' + args.enhancer.type) --> 234 enhancer = Enhancer(args.enhancer.type, args.enhancer.ckpt, device=device) 235 else: 236 print('Enhancer type: none (using raw output of ddsp)')

File ~\Downloads\DDSP-SVC-KOR-master\DDSP-SVC-KOR-master\enhancer.py:15, in Enhancer.init(self, enhancer_type, enhancer_ckpt, device) 12 self.device = device 14 if enhancer_type == 'nsf-hifigan': ---> 15 self.enhancer = NsfHifiGAN(enhancer_ckpt, device=self.device) 16 else: 17 raise ValueError(f" [x] Unknown enhancer: {enhancer_type}")

File ~\Downloads\DDSP-SVC-KOR-master\DDSP-SVC-KOR-master\enhancer.py:95, in NsfHifiGAN.init(self, model_path, device) 93 self.device = device 94 print('| Load HifiGAN: ', model_path) ---> 95 self.model, self.h = load_model(model_path, device=self.device) 96 self.stft = STFT( 97 self.h.sampling_rate, 98 self.h.num_mels, (...) 102 self.h.fmin, 103 self.h.fmax)

File ~\Downloads\DDSP-SVC-KOR-master\DDSP-SVC-KOR-master\nsf_hifigan\models.py:17, in load_model(model_path, device) 15 def load_model(model_path, device='cuda'): 16 config_file = os.path.join(os.path.split(model_path)[0], 'config.json') ---> 17 with open(config_file) as f: 18 data = f.read() 20 json_config = json.loads(data)

FileNotFoundError: [Errno 2] No such file or directory: 'pretrain/nsf_hifigan\config.json'

Mimroin commented 1 year ago

하나씩 처음 부분부터 복기를 해보았는데

  1. checkpoint 다운로드 (필수) HubertSoft 인코더를 다운로드 받아서 pretrain/hubert 폴더 아래에 넣어준다. ContentVec을 humbert 대신에 사용할 수 있음(Optional), config를 좀 바꾸긴 해야댐 (필수) 사전학습된 vocoder를 쓸 수도 있음 DiffSinger Community Vocoders Project 에서 맨 아래에 link에서 nsf_hifigan_20221211.zip 다운로드 받아서 pretrain/ 폴더 안에 압축 해제

여기서 아래 nsf_hifigan_20221211.zip을 받지 않았네요...ㅠㅠ 두 개 다 필수라고 적혀있었으면 두 개 다 했어야했는데 아래쪽에는 쓸 '수도 있음' 이라고 적혀있어서 두 개 중 하나만 택하면 된다고 생각했나봅니다... 해결되었습니다!! 시간 내주셔서 감사합니다 :)

ajujoa commented 1 year ago

학습에 사용한 exp/어쩌구 path를 넣어줘야합니다. <<<어디에 넣어줘야 하나요? yaml 파일인거 같은데 많네요 이게...

wlsdml1114 commented 1 year ago

학습에 사용한 exp/어쩌구 path를 넣어줘야합니다. <<<어디에 넣어줘야 하나요? yaml 파일인거 같은데 많네요 이게...

@ajujoa yaml이 아니라 맨 마지막 결과물뽑는 셀에서 설정해줘야합니다. 'model_path' : 'exp/combsub-test/model_best.pt'