cantora-svc-base / README.md
ohgi07's picture
add README.md
9689774 verified
|
Raw
History Blame Contribute Delete
5.49 kB
---
license: cc-by-nc-sa-4.0
pipeline_tag: audio-to-audio
library_name: pytorch
tags:
- singing-voice-conversion
- voice-conversion
- audio
- rectified-flow
- diffusion-transformer
extra_gated_prompt: >-
이 모델은 CC BY-NC-SA 4.0으로 배포되며 **비영리(NonCommercial) 사용만
허용**됩니다 (보코더 서브시스템 PC-NSF-HiFiGAN의 라이선스 전이).
또한 실존 인물의 목소리를 본인 동의 없이 합성·배포하는 행위를 금지합니다.
This model is released under CC BY-NC-SA 4.0 (NonCommercial only, due to the
PC-NSF-HiFiGAN vocoder subsystem license). Synthesizing or distributing any
real person's voice without their consent is prohibited.
extra_gated_fields:
I agree to use this model for non-commercial purposes only (CC BY-NC-SA): checkbox
I will not synthesize or distribute any real person's voice without their consent: checkbox
---
# Cantora M4 베이스 (v0.4.0)
RVC 스타일 SVC(Singing Voice Conversion) 베이스 모델. 소스 가창의 콘텐츠(ContentVec)·F0·RMS를 조건으로 타깃 화자의 목소리로 노래를 변환한다.
- **코드**: https://github.com/ohgi07/Cantora (tag `v0.4.0`)
## 모델
- **아키텍처**: DiT 768×12(131M 파라미터) + rectified flow. 조건: ContentVec(cvec),
F0(RMVPE), RMS, voiced-prob, 화자 임베딩(228행). 보코더: PC-NSF-HiFiGAN(44.1kHz, **본 저장소에 미포함** — 아래 참조).
- **체크포인트**: run-c(`m4-pcvec`) step 100k — `step100000.ckpt`
(sha256 `3acc5c641f8a2e63292d3f8d0c02ae9d4198d9f919c464203deb7cd684bd4d38`,
1,576,852,327 bytes). PyTorch Lightning full-state(옵티마이저 상태 포함, 재개 가능);
모델 가중치는 `state_dict`(`net.*`)에 있다.
- **학습 구성**: `base-pcvec.yaml` — 0→70k는 base(`loss_weight none`, 섭동 없음),
70k→100k는 `perturbed_cvec_prob 0.8`(full-state fork). batch 64, bf16-mixed,
schedule-free AdamW, GCP L4 단일 GPU.
- **학습 crop: 256프레임 ≈ 2.97초.** 이보다 긴 프레이즈의 장거리 거동(비브라토
주기·프레이즈 단위 다이내믹스)은 학습 분포 밖이며 품질이 달라질 수 있다.
## 파일
| 파일 | 내용 |
|---|---|
| `step100000.ckpt` | 승자 체크포인트 (PL full-state, 1.58GB) |
| `base-pcvec.yaml` | 학습 구성 (섭동 확률 0.8 근거 주석 포함) |
| `speakers.json` | 화자 이름 → 임베딩 인덱스 (228행, 인덱스 0 = `<null>`) |
| `THIRD_PARTY_NOTICES.md` | 서드파티 코드·가중치·데이터셋 라이선스 검증 기록 |
**포함되지 않는 것**: PC-NSF-HiFiGAN 보코더 가중치(CC BY-NC-SA 4.0, 재배포 의무 조항
있음)와 RMVPE·ContentVec 가중치는 재배포하지 않는다. Cantora 저장소의
`scripts/download_assets.py`가 각 업스트림 릴리스에서 직접 내려받는다
(PC-NSF-HiFiGAN: `openvpi/vocoders` release `pc-nsf-hifigan-44.1k-hop512-128bin-2025.02`).
## 사용
```bash
git clone https://github.com/ohgi07/Cantora && cd Cantora
pip install -e .
python scripts/download_assets.py # RMVPE / ContentVec / PC-NSF-HiFiGAN 취득
cantora sample --spk-scale 0.8 --ds-scale 0.36 --rescale 0.7 --steps 32
```
마지막 줄은 판정에 사용된 **동결 추론 설정**(CFG spk 0.8 / ds 0.36 / rescale 0.7 /
steps 32)이다.
## 학습 데이터 (총 196.69h / 227화자 / 163,630청크)
| 데이터셋 | 시간 | 화자 | 라이선스 |
|---|---|---|---|
| GTSinger | 100.94h | 20 | CC BY-NC-SA 4.0 |
| OpenSinger | 51.93h | 76 | CC BY-NC-SA |
| M4Singer | 29.70h | 20 | CC BY-NC-SA 4.0 |
| VCTK 0.92 | 9.29h | 110 | CC BY 4.0 |
| CSD | 4.83h | 1 | CC BY-NC-SA 4.0 |
데이터셋은 재배포하지 않으며, 각 라이선스의 인용 의무에 따라 다음을 인용한다:
GTSinger (NeurIPS 2024, arXiv:2409.13832), Multi-Singer/OpenSinger (ACM MM 2021,
arXiv:2112.10358), M4Singer (NeurIPS 2022), CSD (Zenodo DOI 10.5281/zenodo.4785016),
VCTK 0.92 (DOI 10.7488/ds/2645). 평가 전용 화자 3인은 학습에서 영구 제외됐다.
## 판정 기록 (2026-08-14~15, 사전등록 프로토콜)
- **entropy-balance 분기(run-b)**: 보류(fork 희석으로 판정 불가) — 블라인드 36셀
타깃 표 A2:B2:기권2, val/loss_unweighted 대응차 −0.000166(95% CI 0 포함).
- **음색 누출**: run-a에서 누출 확정(ECAPA 셀별-바닥 34/36 + 청취) → run-c(pert-cvec
p=0.8) 재판정 = **잔존**. 단 A 대 C 블라인드 비교에서 C가 핵심 3셀 중 2셀 방향성
개선, 열세 0 — C를 승자로 확정.
- **변환 품질**: ECAPA sim(출력, 타깃)이 동일 화자 천장 대비 평균 결손 0.029
(36셀 중 28셀이 천장 1σ 이내).
## 알려진 한계
- **잔존 음색 누출**: 동성·근접 음역 변환(예: 여성 소스 → 소프라노/알토 타깃)에서
소스 가수의 음색·창법이 감지 가능한 수준으로 비칠 수 있다.
- 학습 crop 2.97초(위 참조). 보코더 기인 전이 노이즈 존재.
## 라이선스·사용 고지
- **CC BY-NC-SA 4.0** — 보코더 서브시스템(PC-NSF-HiFiGAN)의 라이선스가 전이되어
**비영리 사용만 허용**된다. 상세는 `THIRD_PARTY_NOTICES.md`.
- **무단 합성 금지**: 실존 인물의 목소리를 본인 동의 없이 합성·배포하는 행위를
금지한다. 학습 데이터의 화자는 공개 연구용 코퍼스 출처이며, 변환 대상으로
실존 가수·개인의 음성을 사용할 경우 당사자 동의가 필요하다.