https://github.com/voicepaw/so-vits-svc-fork
GitHub - voicepaw/so-vits-svc-fork: so-vits-svc fork with realtime support, improved interface and more features.
so-vits-svc fork with realtime support, improved interface and more features. - voicepaw/so-vits-svc-fork
github.com
위 GitHub에서 모델을 확인하고 사용하실 수 있습니다!
최소설정 값 중요!!!!!
CUDA 11.8 이상
PyTorch 2.1.0 이상
파이썬 3.9 이상
lightning 2.0 이상
하셔야합니다!
명령어는 다음과 같습니다! 학습 데이터는 dataset_raw에 두시고 학습을 시키시면 logs/44k/G.xxxx.pth로 train이 된 형태가 나오게 됩니다.
PYTHONPATH=src python -m so_vits_svc_fork --help
Usage: python -m so_vits_svc_fork [OPTIONS] COMMAND [ARGS]...
so-vits-svc allows any folder structure for training data.
However, the following folder structure is recommended.
When training: dataset_raw/{speaker_name}/**/{wav_name}.{any_format}
When inference: configs/44k/config.json, logs/44k/G_XXXX.pth
If the folder structure is followed, you DO NOT NEED TO SPECIFY model path, config path, etc.
(The latest model will be automatically loaded.)
To train a model, run pre-resample, pre-config, pre-hubert, train.
To infer a model, run infer.
Options:
-h, --help Show this message and exit.
Commands:
clean Clean up files, only useful if you are using the default file structure
gui Opens GUI for conversion and realtime inference
infer Inference
onnx Export model to onnx (currently not working)
pre-classify Classify multiple audio files into multiple files
pre-config Preprocessing part 2: config
pre-hubert Preprocessing part 3: hubert If the HuBERT model is not found, it will be...
pre-resample Preprocessing part 1: resample
pre-sd Speech diarization using pyannote.audio
pre-split Split audio files into multiple files
train Train model If D_0.pth or G_0.pth not found, automatically download from hub.
train-cluster Train k-means clustering
vc Realtime inference from microphone
config을 통해 "train", "data", "preprocessing" 데이터 형태를 만들어야합니다. root/configs/config.json file로 두셔야합니다.해보니깐 3. config.json 자동 생성 과정에서 만들어주는 config.json을 이용하는게 더 좋습니다!
{
"train": {
"log_interval": 100,
"eval_interval": 200,
"seed": 1234,
"epochs": 100,
"learning_rate": 0.0001,
"betas": [0.8, 0.99],
"eps": 1e-09,
"batch_size": 4,
"fp16_run": false,
"bf16_run": false,
"lr_decay": 0.999875,
"segment_size": 10240,
"init_lr_ratio": 1,
"warmup_epochs": 0,
"c_mel": 45,
"c_kl": 1.0,
"use_sr": true,
"max_speclen": 512,
"port": "8001",
"keep_ckpts": 3,
"num_workers": 4,
"log_version": 0,
"ckpt_name_by_step": false,
"accumulate_grad_batches": 1
},
"data": {
"training_files": "",
"validation_files": "",
"max_wav_value": 32768.0,
"sampling_rate": 44100,
"filter_length": 2048,
"hop_length": 512,
"win_length": 2048,
"n_mel_channels": 80,
"mel_fmin": 0.0,
"mel_fmax": 22050,
"contentvec_final_proj": false
},
"model": {
"inter_channels": 192,
"hidden_channels": 192,
"filter_channels": 768,
"n_heads": 2,
"n_layers": 6,
"kernel_size": 3,
"p_dropout": 0.1,
"resblock": "1",
"resblock_kernel_sizes": [3, 7, 11],
"resblock_dilation_sizes": [[1, 3, 5], [1, 3, 5], [1, 3, 5]],
"upsample_rates": [8, 8, 2, 2, 2],
"upsample_initial_channel": 512,
"upsample_kernel_sizes": [16, 16, 4, 4, 4],
"n_layers_q": 3,
"use_spectral_norm": false,
"gin_channels": 256,
"ssl_dim": 768,
"n_speakers": 200,
"type_": "hifi-gan",
"pretrained": {
"D_0.pth": "https://huggingface.co/datasets/ms903/sovits4.0-768vec-layer12/resolve/main/sovits_768l12_pre_large_320k/clean_D_320000.pth",
"G_0.pth": "https://huggingface.co/datasets/ms903/sovits4.0-768vec-layer12/resolve/main/sovits_768l12_pre_large_320k/clean_G_320000.pth"
}
},
"spk": {
"test": 0
},
"preprocessing": {
"f0_method": "crepe",
"save_as_npy": true
}
}
리눅스 so-vits-svc-fork 명령어 정리 (v4.1.59)
아래 경로는 모두 사용자 환경에 맞게 절대 경로로 수정해야 합니다.
예: /home/username/your_project_path/...
1. 샘플레이트 변경
PYTHONPATH=svc python -m so_vits_svc_fork pre-resample \
-i /경로/svc/dataset_raw \
-o /경로/svc/dataset/44k \
-s 44100
2. config.json 자동 생성
PYTHONPATH=svc python -m so_vits_svc_fork pre-config \
> -i /경로/svc/dataset/44k \
> -f /경로/svc/filelists/44k \
> -c /경로/svc/configs/44k/config.json
해보니 선택사항이 아니라 필수사항입니다 위에 있는 제것 처럼 하면 f0 값 추출을 못해서 제대로된 결과값을 출력하지 못합니다.
3. HuBERT Feature 추출 (전처리)
PYTHONPATH=svc python -m so_vits_svc_fork pre-hubert \
-c /경로/svc/configs/44k/config.json
data.pt 파일이 생성됩니다!
4. 학습 시작
CUDA_VISIBLE_DEVICES PYTHONPATH=svc python -m so_vits_svc_fork train \
-c /home/jiwon/PY/svc/configs/44k/config.json
예시: -m 44k → 학습 결과는 /logs/44k/에 저장됩니다.
만약에 GPU를 선택해서 사용하고 싶으시면 아래와 같이 GPU번호를 선택해서 사용하시면 됩니다!
CUDA_VISIBLE_DEVICES=0,1,2 PYTHONPATH=svc python -m so_vits_svc_fork train \
-c /home/jiwon/PY/svc/configs/44k/config.json
5. 음성 변환 (Inference)
PYTHONPATH=svc python -m so_vits_svc_fork infer \
/경로/svc/path/to/input_folder/파일.wav \
-o /경로/svc/path/to/output_folder/파일_out.wav \
-c /경로/svc/configs/44k/config.json \
-m /경로/svc/logs/44k/G_100.pth \
-s 화자번호 \
-fm crepe
만약에 폴더 안에 있는 모든 파일을 바꾸고 싶다면 아래의 명령어를 사용하시면 됩니다!
PYTHONPATH=svc python -m so_vits_svc_fork infer \
/home/jiwon/PY/svc/path/to/input_folder \
-o /home/jiwon/PY/svc/path/to/output_folder \
-c /home/jiwon/PY/svc/configs/44k/config.json \
-m /home/jiwon/PY/svc/logs/44k/G_100.pth \
-s 화자번호 \
-fm crepe \
--recursive'Artificial Intelligence > so-vits-svc-fork' 카테고리의 다른 글
| [so-vits-svc-fork] Windows 환경에서의 실행 방법 및 버전 변경 대응 가이드 (v4.1.59 → v4.2.26 기준) (2) | 2025.06.02 |
|---|---|
| Windows 환경에서 so-vits-svc-fork 설치 및 실행 방법 정리 (v4.1.59 기준) (0) | 2025.05.16 |
| so-vits-svc-fork로 음성 변환 모델 학습하기 (실전 로그 정리 v4.1.59) (0) | 2025.04.07 |