国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

so-vits-svc3.0 中文詳細(xì)安裝、訓(xùn)練、推理使用教程

這篇具有很好參考價(jià)值的文章主要介紹了so-vits-svc3.0 中文詳細(xì)安裝、訓(xùn)練、推理使用教程。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

SO-VITS-SVC3.0詳細(xì)安裝、訓(xùn)練、推理使用步驟

2023-3-12文檔更新說明:
由于特殊原因,本項(xiàng)目文檔將停止更新,詳情請(qǐng)見原作者首頁,感謝各位的支持!

本文檔的Github項(xiàng)目地址 點(diǎn)擊前往

本幫助文檔為項(xiàng)目 so-vits-svc補(bǔ)檔 的詳細(xì)中文安裝、調(diào)試、推理教程,您也可以直接選擇官方README文檔
撰寫:Sucial 點(diǎn)擊跳轉(zhuǎn)B站主頁


1. 環(huán)境依賴

  • 本項(xiàng)目需要的環(huán)境:
    NVIDIA-CUDA
    Python <= 3.10
    Pytorch
    FFmpeg

- Cuda

  • 在cmd控制臺(tái)里輸入nvidia-smi.exe以查看顯卡驅(qū)動(dòng)版本和對(duì)應(yīng)的cuda版本

  • 前往 NVIDIA-Developer 官網(wǎng)下載與系統(tǒng)對(duì)應(yīng)的Cuda版本
    Cuda-11.7版本為例(注:本文下述所有配置均在Cuda-11.7下演示)Cuda11.7下載地址 根據(jù)自己的系統(tǒng)和需求選擇安裝(一般本地Windows用戶請(qǐng)依次選擇Windows, x86_64, 系統(tǒng)版本, exe(local)

  • 安裝成功之后在cmd控制臺(tái)中輸入nvcc -V, 出現(xiàn)類似以下內(nèi)容則安裝成功:

    nvcc: NVIDIA (R) Cuda compiler driver
    Copyright (c) 2005-2022 NVIDIA Corporation
    Built on Tue_May__3_19:00:59_Pacific_Daylight_Time_2022
    Cuda compilation tools, release 11.7, V11.7.64
    Build cuda_11.7.r11.7/compiler.31294372_0
特別注意!
  • 目前為止pytorch最高支持到cuda11.7
  • 如果您在上述第一步中查看到自己的Cuda版本>11.7,請(qǐng)依然選擇11.7進(jìn)行下載安裝(Cuda有版本兼容性)并且安裝完成后再次在cmd輸入nvidia-smi.exe并不會(huì)出現(xiàn)cuda版本變化,即任然顯示的是>11,7的版本
  • Cuda的卸載方法:**打開控制面板-程序-卸載程序,將帶有NVIDIA CUDA的程序全部卸載即可(一共5個(gè))

- Python

  • 前往 Python官網(wǎng) 下載Python,版本需要低于3.10(詳細(xì)安裝方法以及添加Path此處省略,網(wǎng)上隨便一查都有)
  • 安裝完成后在cmd控制臺(tái)中輸入python出現(xiàn)類似以下內(nèi)容則安裝成功:
    Python 3.10.4 (tags/v3.10.4:9d38120, Mar 23 2022, 23:13:41) [MSC v.1929 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 
  • 配置python下載鏡像源(有國外網(wǎng)絡(luò)條件可跳過)
    在cmd控制臺(tái)依次執(zhí)行
    # 設(shè)置清華大學(xué)下載鏡像
    pip config set global.index-url http://pypi.tuna.tsinghua.edu.cn/simple
    pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn
安裝依賴庫
  • 在任意位置新建名為requirements.txt的文本文件,輸入以下內(nèi)容保存
    Flask==2.1.2
    Flask_Cors==3.0.10
    gradio==3.4.1
    numpy==1.23.5
    playsound==1.3.0
    PyAudio==0.2.12
    pydub==0.25.1
    pyworld==0.3.2
    requests==2.28.1
    scipy==1.10.0
    sounddevice==0.4.5
    SoundFile==0.10.3.post1
    starlette==0.19.1
    tqdm==4.63.0
    scikit-maad
    praat-parselmouth
    tensorboard
    librosa
  • 在該文本文件所處文件夾內(nèi)右擊空白處選擇 在終端中打開 并執(zhí)行下面命令以安裝庫(若出現(xiàn)報(bào)錯(cuò)請(qǐng)嘗試用pip install [庫名稱]重新單獨(dú)安裝直至成功)
    pip install -r requirements.txt
  • 接下來我們需要單獨(dú)安裝torch, torchaudio, torchvision這三個(gè)庫,下面提供兩種方法
方法1(便捷但不建議,因?yàn)槲以跍y(cè)試這種方法過程中發(fā)現(xiàn)有問題,對(duì)后續(xù)配置AI有影響

直接前往 Pytorch官網(wǎng) 選擇所需版本然后復(fù)制Run this Command欄顯示的命令至cmd安裝(不建議)

方法2(較慢但穩(wěn)定,建議)
  • 前往該地址使用Ctrl+F搜索直接下載whl包 點(diǎn)擊前往 https://download.pytorch.org/whl/
  • 這個(gè)項(xiàng)目需要的是
    torch==1.13.0+cu117
    torchaudio==0.13.0+cu117
    torchvision-0.14.0+cu117
    1.13.0 和0.13.0表示是pytorch版本,cu117表示cuda版本11.7
    以此類推,請(qǐng)選擇 適合自己的版本 安裝
  • 下面我將以Cuda11.7版本為例
    –示例開始–
  • 我們需要安裝以下三個(gè)庫
  1. torch-1.13.0+cu117點(diǎn)擊下載:torch-1.13.0+cu117-cp310-cp310-win_amd64.whl
    其中cp310指python3.10, win-amd64表示windows 64位操作系統(tǒng)
  2. torchaudio-0.13.0+cu117點(diǎn)擊下載:torchaudio-0.13.0+cu117-cp310-cp310-win_amd64.whl
  3. torchvision-0.14.0+cu117點(diǎn)擊下載:torchvision-0.14.0+cu117-cp310-cp310-win_amd64.whl
  • 下載完成后進(jìn)入進(jìn)入下載的whl文件的目錄,在所處文件夾內(nèi)右擊空白處選擇 在終端中打開 并執(zhí)行下面命令以安裝庫
    pip install .\torch-1.13.0+cu117-cp310-cp310-win_amd64.whl
    # 回車運(yùn)行(安裝時(shí)間較長)
    pip install .\torchaudio-0.13.0+cu117-cp310-cp310-win_amd64.whl
    # 回車運(yùn)行
    pip install .\torchvision-0.14.0+cu117-cp310-cp310-win_amd64.whl 
    # 回車運(yùn)行
  • 務(wù)必在出現(xiàn)Successfully installed ...之后再執(zhí)行下一條命令,第一個(gè)torch包安裝時(shí)間較長
    –示例結(jié)束–

安裝完torch, torchaudio, torchvision這三個(gè)庫之后,在cmd控制臺(tái)運(yùn)用以下命令檢測(cè)cuda與torch版本是否匹配

    python
    # 回車運(yùn)行
    import torch
    # 回車運(yùn)行
    print(torch.__version__)
    # 回車運(yùn)行
    print(torch.cuda.is_available())
    # 回車運(yùn)行
  • 最后一行出現(xiàn)True則成功,出現(xiàn)False則失敗,需要重新安裝

- FFmpeg

  • 前往 FFmpeg官網(wǎng) 下載。解壓至任意位置并在高級(jí)系統(tǒng)設(shè)置-環(huán)境變量中添加Path定位至.\ffmpeg\bin(詳細(xì)安裝方法以及添加Path此處省略,網(wǎng)上隨便一查都有)
  • 安裝完成后在cmd控制臺(tái)中輸入ffmpeg -version出現(xiàn)類似以下內(nèi)容則安裝成功
ffmpeg version git-2020-08-12-bb59bdb Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 10.2.1 (GCC) 20200805
configuration: [此處省略一大堆內(nèi)容]
libavutil      56. 58.100 / 56. 58.100
libavcodec     58.100.100 / 58.100.100
...

2. 預(yù)訓(xùn)練AI

- 下載項(xiàng)目源碼

  • 前往 so-vits-svc補(bǔ)檔 選擇32k分支(本教程針對(duì)32k)下載源代碼。

  • 解壓到任意文件夾

- 下載預(yù)訓(xùn)練模型

  • 這部分官方文檔寫得很詳細(xì),我這邊直接引用

hubert
https://github.com/bshall/hubert/releases/download/v0.1/hubert-soft-0d54a1f4.pt
G與D預(yù)訓(xùn)練模型
https://huggingface.co/innnky/sovits_pretrained/resolve/main/G_0.pth
https://huggingface.co/innnky/sovits_pretrained/resolve/main/D_0.pth
上述三個(gè)底模如果原鏈接下載不了請(qǐng)點(diǎn)擊下方的鏈接
https://pan.baidu.com/s/1uw6W3gOBvMbVey1qt_AzhA?pwd=80eo 提取碼:80eo

  • hubert-soft-0d54a1f4.pt放入.\hubert文件夾
  • D_0.pth和G_0.pth文件放入.\logs\32k文件夾

- 準(zhǔn)備訓(xùn)練樣本

準(zhǔn)備的訓(xùn)練數(shù)據(jù),建議60-100條語音(格式務(wù)必為wav,不同的說話人建立不同的文件夾),每條語音控制在4-8秒!(確保語音不要有噪音或盡量降低噪音,一個(gè)文件夾內(nèi)語音必須是一個(gè)人說的),可以訓(xùn)練出效果不錯(cuò)的模型

  • 將語音連帶文件夾(有多個(gè)人就多個(gè)文件夾)一起放入.\dataset_raw文件夾里,文件結(jié)構(gòu)類似如下:
dataset_raw
├───speaker0
│   ├───xxx1-xxx1.wav
│   ├───...
│   └───Lxx-0xx8.wav
└───speaker1
    ├───xx2-0xxx2.wav
    ├───...
    └───xxx7-xxx007.wav
  • 此外還需要在.\dataset_raw文件夾內(nèi)新建并編輯config.json,代碼如下:
"n_speakers": 10    //修改數(shù)字為說話人的人數(shù)
"spk":{
    "speaker0": 0,  //修改speaker0為第一個(gè)說話人的名字,需要和文件夾名字一樣,后面的: 0, 不需要改
    "speaker1": 1,  //以此類推
    "speaker2": 2,
    //以此類推
}

- 樣本預(yù)處理

下面的所有步驟若出現(xiàn)報(bào)錯(cuò)請(qǐng)多次嘗試,若一直報(bào)錯(cuò)就是第一部分環(huán)境依賴沒有裝到位,可以根據(jù)報(bào)錯(cuò)內(nèi)容重新安裝對(duì)應(yīng)的庫。(一般如果正確安裝了的話出現(xiàn)報(bào)錯(cuò)請(qǐng)多次嘗試或者關(guān)機(jī)重啟,肯定可以解決報(bào)錯(cuò)的。)
1. 重采樣
  • so-vits-svc文件夾內(nèi)運(yùn)行終端,直接執(zhí)行:
    python resample.py

注意:如果遇到如下報(bào)錯(cuò):

...
E:\vs\so-vits-svc-32k\resample.py:17: FutureWarning: Pass sr=None as keyword args. From version 0.10 passing these as positional arguments will result in an error
  wav, sr = librosa.load(wav_path, None)
E:\vs\so-vits-svc-32k\resample.py:17: FutureWarning: Pass sr=None as keyword args. From version 0.10 passing these as positional arguments will result in an error
  wav, sr = librosa.load(wav_path, None)
...

請(qǐng)打開resample.py,修改第17行內(nèi)容

# 第17行修改前如下
wav, sr = librosa.load(wav_path, None)
# 第17行修改后如下
wav, sr = librosa.load(wav_path, sr = None)

保存,重新執(zhí)行python resample.py命令

  • 成功運(yùn)行后,在.\dataset\32k文件夾中會(huì)有說話人的wav語音,之后dataset_raw文件夾就可以刪除了
2. 自動(dòng)劃分訓(xùn)練集,驗(yàn)證集,測(cè)試集,自動(dòng)生成配置文件
  • so-vits-svc文件夾內(nèi)運(yùn)行終端,直接執(zhí)行:
    python preprocess_flist_config.py
  • 出現(xiàn)類似以下內(nèi)容則處理成功:
PS E:\vs\so-vits-svc-32k> python preprocess_flist_config.py
100%|██████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00, 1993.49it/s]
Writing ./filelists/train.txt
100%|██████████████████████████████████████████████████████████████████████████████████████████| 16/16 [00:00<?, ?it/s]
Writing ./filelists/val.txt
100%|████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:00<?, ?it/s]
Writing ./filelists/test.txt
100%|████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:00<?, ?it/s]
Writing configs/config.json
3. 生成hubert和f0
  • so-vits-svc文件夾內(nèi)運(yùn)行終端,直接執(zhí)行:
    python preprocess_hubert_f0.py
  • 出現(xiàn)類似以下內(nèi)容則處理成功:(我這里演示時(shí)只用了20條音頻)
PS E:\vs\so-vits-svc-32k> python preprocess_hubert_f0.py
Loading hubert for content...
Loaded hubert.
  0%|                                                                                  | 0/20 [00:00<?, ?it/s]dataset/32k\speaker\1_01.wav
  5%|████                                                                              | 1/20 [00:03<01:00,  3.20s/it]dataset/32k\speaker\1_02.wav
 10%|████████                                                                          | 2/20 [00:03<00:25,  1.40s/it]dataset/32k\speaker\1_03.wav
 15%|████████████                                                                      | 3/20 [00:03<00:14,  1.19it/s]dataset/32k\speaker\1_04.wav
 20%|████████████████▌                                                                 | 4/20 [00:03<00:09,  1.69it/s]dataset/32k\speaker\1_05.wav
 25%|████████████████████                                                              | 5/20 [00:03<00:06,  2.39it/s]dataset/32k\speaker\1_06.wav
 30%|████████████████████████                                                          | 6/20 [00:04<00:04,  2.98it/s]dataset/32k\speaker\1_07.wav
 35%|█████████████████████████████                                                     | 7/20 [00:04<00:03,  3.48it/s]dataset/32k\speaker\1_08.wav
 40%|█████████████████████████████████                                                 | 8/20 [00:04<00:03,  3.78it/s]dataset/32k\speaker\1_09.wav
 45%|█████████████████████████████████████                                             | 9/20 [00:04<00:02,  4.13it/s]dataset/32k\speaker\1_10.wav
 50%|█████████████████████████████████████████                                         | 10/20 [00:04<00:02,  4.41it/s]dataset/32k\speaker\1_11.wav
 55%|█████████████████████████████████████████████                                     | 11/20 [00:04<00:01,  4.71it/s]dataset/32k\speaker\1_12.wav
 60%|█████████████████████████████████████████████████                                 | 12/20 [00:05<00:01,  4.93it/s]dataset/32k\speaker\1_13.wav
 65%|█████████████████████████████████████████████████████                             | 13/20 [00:05<00:01,  5.25it/s]dataset/32k\speaker\1_14.wav
 70%|█████████████████████████████████████████████████████████                         | 14/20 [00:05<00:01,  5.46it/s]dataset/32k\speaker\1_15.wav
 75%|█████████████████████████████████████████████████████████████▌                    | 15/20 [00:05<00:00,  6.19it/s]dataset/32k\speaker\1_16.wav
 80%|█████████████████████████████████████████████████████████████████▌                | 16/20 [00:05<00:00,  5.84it/s]dataset/32k\speaker\1_17.wav
 85%|█████████████████████████████████████████████████████████████████████             | 17/20 [00:06<00:00,  5.43it/s]dataset/32k\speaker\1_18.wav
 90%|█████████████████████████████████████████████████████████████████████████         | 18/20 [00:06<00:00,  5.27it/s]dataset/32k\speaker\1_19.wav
 95%|█████████████████████████████████████████████████████████████████████████████     | 19/20 [00:06<00:00,  5.26it/s]dataset/32k\speaker\1_20.wav
100%|██████████████████████████████████████████████████████████████████████████████████| 20/20 [00:06<00:00,  3.03it/s]
4. 修改配置文件和部分源代碼
  • 打開上面第二步過程中生成的配置文件.\configs\config.json修改第13行代碼"batch_size"的數(shù)值。這邊解釋一下"batch_size": 12,數(shù)值12要根據(jù)自己電腦的顯存(任務(wù)管理器-GPU-專用GPU內(nèi)存)來調(diào)整
  • 修改建議
    6G顯存 建議修改成2或3
    8G顯存 建議修改成4
    "batch_size"參數(shù)調(diào)小可以解決顯存不夠的問題
  • 修改train.py
# 第60行將nccl改成gloo(如果后續(xù)開始訓(xùn)練時(shí)gloo報(bào)錯(cuò)就改回nccl,一般不會(huì)報(bào)錯(cuò))
# 修改前如下
    dist.init_process_group(backend='nccl', init_method='env://', world_size=n_gpus, rank=rank)
# 修改后如下
    dist.init_process_group(backend='gloo', init_method='env://', world_size=n_gpus, rank=rank)

# 第44行開始
# 修改前如下
    n_gpus = torch.cuda.device_count()
    os.environ['MASTER_ADDR'] = 'localhost'
    os.environ['MASTER_PORT'] = hps.train.port
#修改后增加代碼后如下
    n_gpus = torch.cuda.device_count()
    os.environ['MASTER_ADDR'] = 'localhost'
    os.environ['MASTER_PORT'] = hps.train.port
    os.environ["CUDA_VISIBLE_DEVICES"] = "0"    # 這里的0代表GPU0是用來訓(xùn)練的顯卡,不知道是0還是1的可以在任務(wù)管理器查看,如果是雙顯卡的話一定要選擇適合的顯卡
    os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:32"  # 這里的32如果懂的話也可以修改,不懂別改

3. 開始訓(xùn)練

  • so-vits-svc文件夾內(nèi)運(yùn)行終端,直接執(zhí)行下面命令開始訓(xùn)練
    注意:開始訓(xùn)練前建議重啟一下電腦清理內(nèi)存和顯存,并且關(guān)閉后臺(tái)游戲,動(dòng)態(tài)壁紙等等軟件,最好只留一個(gè)cmd窗口
    python train.py -c configs/config.json -m 32k
  • 出現(xiàn)以下報(bào)錯(cuò)就是顯存不夠了
torch.cuda.OutOfMemoryError: CUDA out of menory. Tried to allocate 16.80 MiB (GPU 0; 8.0 GiB total capacity; 7.11 Gi8 already allocated; 0 bytes free; 7.30 GiB reserved in total by PyTorch) If reserved memory is >> allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_cUDA_ALLOC_CONF
# 注意:一定是 0 bytes free < Tried to allocate 16.80 MiB 才是顯存不足,不然就是別的問題
  • 這邊報(bào)錯(cuò)可能會(huì)比較多,如果出現(xiàn)報(bào)錯(cuò)先嘗試重新執(zhí)行python train.py -c configs/config.json -m 32k,多重試幾遍,或者關(guān)機(jī)重啟,一般是會(huì)成功的。如果報(bào)錯(cuò)一直是同一個(gè)報(bào)錯(cuò),那就是對(duì)應(yīng)的那里出問題了(要靠報(bào)錯(cuò)找問題所在)
  • 成功執(zhí)行以后應(yīng)該是類似如下內(nèi)容:
2023-02-08 18:07:42,439 32k INFO {'train': {'log_interval': 200, 'eval_interval': 1000, 'seed': 1234, 'epochs': 10000, 'learning_rate': 0.0001, 'betas': [0.8, 0.99], 'eps': 1e-09, 'batch_size': 2, 'fp16_run': False, 'lr_decay': 0.999875, 'segment_size': 17920, 'init_lr_ratio': 1, 'warmup_epochs': 0, 'c_mel': 45, 'c_kl': 1.0, 'use_sr': True, 'max_speclen': 384, 'port': '8001'}, 'data': {'training_files': 'filelists/train.txt', 'validation_files': 'filelists/val.txt', 'max_wav_value': 32768.0, 'sampling_rate': 32000, 'filter_length': 1280, 'hop_length': 320, 'win_length': 1280, 'n_mel_channels': 80, 'mel_fmin': 0.0, 'mel_fmax': None}, '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': [10, 8, 2, 2], 'upsample_initial_channel': 512, 'upsample_kernel_sizes': [16, 16, 4, 4], 'n_layers_q': 3, 'use_spectral_norm': False, 'gin_channels': 256, 'ssl_dim': 256, 'n_speakers': 2}, 'spk': {'Sucial': 0}, 'model_dir': './logs\\32k'}
2023-02-08 18:07:42,440 32k WARNING E:\vs\so-vits-svc-32k is not a git repository, therefore hash value comparison will be ignored.
2023-02-08 18:07:45,451 32k INFO Loaded checkpoint './logs\32k\G_0.pth' (iteration 1)
2023-02-08 18:07:45,998 32k INFO Loaded checkpoint './logs\32k\D_0.pth' (iteration 1)
2023-02-08 18:07:55,722 32k INFO Train Epoch: 1 [0%]
2023-02-08 18:07:55,723 32k INFO [1.376741886138916, 3.908522129058838, 12.127800941467285, 35.539894104003906, 4.270486354827881, 0, 0.0001]
2023-02-08 18:08:01,381 32k INFO Saving model and optimizer state at iteration 1 to ./logs\32k\G_0.pth
2023-02-08 18:08:02,344 32k INFO Saving model and optimizer state at iteration 1 to ./logs\32k\D_0.pth
2023-02-08 18:08:19,482 32k INFO ====> Epoch: 1
2023-02-08 18:08:40,093 32k INFO ====> Epoch: 2
2023-02-08 18:09:01,010 32k INFO ====> Epoch: 3
2023-02-08 18:09:21,715 32k INFO ====> Epoch: 4
2023-02-08 18:09:42,242 32k INFO ====> Epoch: 5
2023-02-08 18:10:02,528 32k INFO ====> Epoch: 6
2023-02-08 18:10:22,965 32k INFO ====> Epoch: 7
2023-02-08 18:10:29,149 32k INFO Train Epoch: 8 [14%]
2023-02-08 18:10:29,150 32k INFO [2.378505229949951, 2.3670239448547363, 10.534687042236328, 19.235595703125, 1.8958038091659546, 200, 9.991253280566489e-05]
2023-02-08 18:10:43,388 32k INFO ====> Epoch: 8
2023-02-08 18:11:03,722 32k INFO ====> Epoch: 9
2023-02-08 18:11:23,859 32k INFO ====> Epoch: 10
...
  • 出現(xiàn)類似以上的內(nèi)容就說明是在開始訓(xùn)練了(顯存會(huì)直接爆滿)。停止訓(xùn)練有下面兩種方法:
  1. Ctrl+C
  2. 直接右上角叉掉
    在控制臺(tái)中運(yùn)行 python train.py -c config/config.json -m 32k即可繼續(xù)訓(xùn)練

- 日志及訓(xùn)練次數(shù)的查看

  • 日志保存的位置:.\logs\32k\train.log
    閱讀舉例:
# 示例3
2023-02-08 18:32:24,942 32k INFO [2.252035617828369, 2.5846095085144043, 8.220404624938965, 5   17.75478744506836, 0.9781494140625, 2000, 9.911637167309565e-05]
2023-02-08 18:32:28,889 32k INFO Saving model and optimizer state at iteration 72 to ./logs\32k\G_2000.pth
2023-02-08 18:32:29,661 32k INFO Saving model and optimizer state at iteration 72 to ./logs\32k\D_2000.pth
# 示例1
2023-02-08 18:32:39,907 32k INFO ====> Epoch: 72
2023-02-08 18:33:00,099 32k INFO ====> Epoch: 73
2023-02-08 18:33:20,682 32k INFO ====> Epoch: 74 
2023-02-08 18:33:40,887 32k INFO ====> Epoch: 75
2023-02-08 18:34:01,460 32k INFO ====> Epoch: 76
2023-02-08 18:34:21,798 32k INFO ====> Epoch: 77
2023-02-08 18:34:41,866 32k INFO ====> Epoch: 78
2023-02-08 18:34:54,712 32k INFO Train Epoch: 79 [57%]
# 示例2
2023-02-08 18:34:54,712 32k INFO [2.282658100128174, 2.5492446422576904, 10.027194023132324, 15.401838302612305, 1.598284363746643, 2200, 9.902967736366644e-05]

以下的解釋我引用了B站up主inifnite_loop的解釋,相關(guān)視頻 相關(guān)專欄

  • 需要關(guān)注兩個(gè)參數(shù):Epoch和global_step
    Epoch表示迭代批次,每一批次可以看作一個(gè)迭代分組
    Global_step表示總體迭代次數(shù)
  • 兩者的關(guān)系是global_step = 最多語音說話人的語音數(shù) / batch_size * epoch
    batch_size是配置文件中的參數(shù)
  • 示例1: 每一次迭代輸出內(nèi) ====> Epoch: 74表示第74迭代批次完成
  • 示例2: Global_step每200次輸出一次 (配置文件中的參數(shù)log_interval
  • 示例3: Global_step每1000次輸出一次(配置文件中的參數(shù)eval_interval),會(huì)保存模型到新的文件
一般情況下訓(xùn)練10000次(大約2小時(shí))就能得到一個(gè)不錯(cuò)的聲音模型了

- 保存的訓(xùn)練模型

以上,我們談?wù)摰搅嗣?000次迭代才會(huì)保存一次模型樣本,那么,這些樣本保存在哪里呢?如何處理這些樣本呢?下面我將詳細(xì)講述。

  • 訓(xùn)練模型保存位置:.\logs\32k
  • 訓(xùn)練一定時(shí)間后打開這個(gè)路徑,你會(huì)發(fā)現(xiàn)有很多文件:
D_0.pth
D_1000.pth
D_2000.pth
D_3000.pth
D_4000.pth
...
G_0.pth
G_1000.pth
G_2000.pth
G_3000.pth
G_4000.pth
...
  • 如果你的硬盤空間不足,那么只要留下最后一次的G和D就可以了,前面的都可以刪除(但是不要?jiǎng)h別的文件)

4. 推理使用

按上述方法訓(xùn)練得到最后一次的G和D后,該如何使用這些模型呢?下面我將講述具體的使用操作方法文章來源地址http://www.zghlxwxcb.cn/news/detail-810846.html

- 準(zhǔn)備干聲

  • 準(zhǔn)備一首歌的干聲,干聲可以靠軟件提取,我這邊推薦的是Ultimate Vocal Remover,該軟件開源并且可以在Github上下載到。下載地址
  • 用音頻處理軟件(如Au,Studio One等)將這個(gè)干聲分成若干段不超過40秒的片段并且一一保存
  • 將你處理好的干聲片段放入.\raw文件夾

- 修改推理代碼

  • 打開inference_main.py,修改第17-27行,具體修改內(nèi)容如下:
model_path = "logs/32k/G_10000.pth" # 這里改成你最新訓(xùn)練出來的G模型路徑
config_path = "configs/config.json"
svc_model = Svc(model_path, config_path)
infer_tool.mkdir(["raw", "results"])

# 支持多個(gè)wav文件,放在raw文件夾下
clean_names = ["vocals_01", "vocals_02","vocals_03"] # 這里修改成你要處理的干聲片段的文件名,支持多個(gè)文件
trans = [0]  # 音高調(diào)整,支持正負(fù)(半音)
spk_list = ['Sucial']  # 這里是說話人的名字,之前準(zhǔn)備訓(xùn)練樣本的文件夾名字
slice_db = -40  # 默認(rèn)-40,嘈雜的音頻可以-30,干聲保留呼吸可以-50
wav_format = 'wav'  # 音頻輸出格式

  • 如果下一步推理生成時(shí)出現(xiàn)錯(cuò)誤,請(qǐng)嘗試以下修改:(感謝kahotv提供建議) 詳細(xì)信息
#inference_main.py line35 第35行,
wav_path = Path(raw_audio_path).with_suffix('.wav')
#改為
wav_path = str(Path(raw_audio_path).with_suffix('.wav'))

- 推理生成

  • 修改完成后保存代碼,在so-vits-svc文件夾內(nèi)運(yùn)行終端,執(zhí)行下面命令開始推理生成
    python .\inference_main.py
  • 待黑窗口自動(dòng)關(guān)閉后,推理生成完成。生成的音頻文件在.\results文件夾下
  • 如果聽上去效果不好,就多訓(xùn)練模型,10000次不夠就訓(xùn)練20000次

- 后期處理

  • 將生成的干音和歌曲伴奏(也可以通過Ultimate Vocal Remover提?。?dǎo)入音頻處理軟件&宿主軟件(如Au,Studio One等)進(jìn)行混音和母帶處理,最終得到成品。

5. 感謝名單

  • 以下是對(duì)本文檔的撰寫有幫助的感謝名單:
    so-vits-svc 官方源代碼和幫助文檔
    B站up主inifnite_loop 相關(guān)視頻 相關(guān)專欄
    所有提供訓(xùn)練音頻樣本的人員

到了這里,關(guān)于so-vits-svc3.0 中文詳細(xì)安裝、訓(xùn)練、推理使用教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • AI孫燕姿爆火背后:語音轉(zhuǎn)換技術(shù)so-vits-svc

    AI孫燕姿爆火背后:語音轉(zhuǎn)換技術(shù)so-vits-svc

    AIGC的風(fēng)最近終于吹到了語音生成領(lǐng)域。上面視頻中\(zhòng)\\"孫燕姿\\\"翻唱周杰倫的《七里香》,該歌是AI歌唱,并非孫燕姿本人。背后核心技術(shù)來自聲音轉(zhuǎn)換,voice convertion,而不是之前我們講過的聲音克隆,voice clone。 語音轉(zhuǎn)換,voice convertion,簡(jiǎn)稱VC。簡(jiǎn)單來說,就是把一個(gè)人的聲音

    2024年02月12日
    瀏覽(25)
  • 基于中文金融知識(shí)的 LLaMA 系微調(diào)模型的智能問答系統(tǒng):LLaMA大模型訓(xùn)練微調(diào)推理等詳細(xì)教學(xué)

    基于中文金融知識(shí)的 LLaMA 系微調(diào)模型的智能問答系統(tǒng):LLaMA大模型訓(xùn)練微調(diào)推理等詳細(xì)教學(xué)

    項(xiàng)目設(shè)計(jì)集合(人工智能方向):助力新人快速實(shí)戰(zhàn)掌握技能、自主完成項(xiàng)目設(shè)計(jì)升級(jí),提升自身的硬實(shí)力(不僅限NLP、知識(shí)圖譜、計(jì)算機(jī)視覺等領(lǐng)域) :匯總有意義的項(xiàng)目設(shè)計(jì)集合,助力新人快速實(shí)戰(zhàn)掌握技能,助力用戶更好利用 CSDN 平臺(tái),自主完成項(xiàng)目設(shè)計(jì)升級(jí),提升自

    2024年02月14日
    瀏覽(22)
  • 基于VITS 快速微調(diào)的本地環(huán)境配置、本地訓(xùn)練以及本地推理的教程

    該教程能教會(huì)讀者如何使用本地服務(wù)器使用VITS微調(diào)訓(xùn)練自己的想要的角色的聲音并且本地推理,注意只能使用linux版本進(jìn)行訓(xùn)練,但是推理可以在windows上完成。 STEP 0? 使用conda配置虛擬環(huán)境(個(gè)人習(xí)慣,也可以直接在本地服務(wù)器上嗯配) STEP 1 復(fù)制代碼庫并安裝運(yùn)行環(huán)境 記得沒

    2023年04月27日
    瀏覽(27)
  • AI孫燕姿 ?AI東雪蓮 !—— 本地部署DDSP-SVC一鍵包,智能音頻切片,本地訓(xùn)練,模型推理,為你喜歡的角色訓(xùn)練AI語音模型小教程

    AI孫燕姿 ?AI東雪蓮 !—— 本地部署DDSP-SVC一鍵包,智能音頻切片,本地訓(xùn)練,模型推理,為你喜歡的角色訓(xùn)練AI語音模型小教程

    目錄 感謝B站UP羽毛布團(tuán) 演示視頻 稻香——東雪蓮 虛擬——東雪蓮 反方向的鐘——東雪蓮 晴天+龍卷風(fēng)——東雪蓮 ZOOD——東雪蓮 DDSP-SVC?3.0?(D3SP)?是什么? 下載資源: 解壓整合包 準(zhǔn)備數(shù)據(jù)集 智能音頻切片? 數(shù)據(jù)集準(zhǔn)備 填寫訓(xùn)練設(shè)置和超參數(shù) ?開始訓(xùn)練 推理模型 羽毛布団

    2024年02月06日
    瀏覽(23)
  • Bert-vits2最終版Bert-vits2-2.3云端訓(xùn)練和推理(Colab免費(fèi)GPU算力平臺(tái))

    Bert-vits2最終版Bert-vits2-2.3云端訓(xùn)練和推理(Colab免費(fèi)GPU算力平臺(tái))

    對(duì)于深度學(xué)習(xí)初學(xué)者來說,JupyterNoteBook的腳本運(yùn)行形式顯然更加友好,依托Python語言的跨平臺(tái)特性,JupyterNoteBook既可以在本地線下環(huán)境運(yùn)行,也可以在線上服務(wù)器上運(yùn)行。GoogleColab作為免費(fèi)GPU算力平臺(tái)的執(zhí)牛耳者,更是讓JupyterNoteBook的腳本運(yùn)行形式如虎添翼。 本次我們利用

    2024年02月04日
    瀏覽(23)
  • AI數(shù)字人:基于VITS模型的中文語音生成訓(xùn)練

    AI數(shù)字人:基于VITS模型的中文語音生成訓(xùn)練

    ????????VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)是一種結(jié)合變分推理(variational inference)、標(biāo)準(zhǔn)化流(normalizing flows)和對(duì)抗訓(xùn)練的高表現(xiàn)力語音合成模型。 ??????? VITS模型是韓國科學(xué)院在2021年6月提出的,VITS通過隱變量而非頻譜串聯(lián)起來語

    2024年02月11日
    瀏覽(21)
  • 民謠女神唱流行,基于AI人工智能so-vits庫訓(xùn)練自己的音色模型(葉蓓/Python3.10)

    流行天后孫燕姿的音色固然是極好的,但是目前全網(wǎng)都是她的聲音復(fù)刻,聽多了難免會(huì)有些審美疲勞,在網(wǎng)絡(luò)上檢索了一圈,還沒有發(fā)現(xiàn)民謠歌手的音色模型,人就是這樣,得不到的永遠(yuǎn)在騷動(dòng),本次我們自己構(gòu)建訓(xùn)練集,來打造自己的音色模型,讓民謠女神來唱流行歌曲,

    2024年02月04日
    瀏覽(74)
  • [玩轉(zhuǎn)AIGC]LLaMA2訓(xùn)練中文文章撰寫神器(數(shù)據(jù)準(zhǔn)備,數(shù)據(jù)處理,模型訓(xùn)練,模型推理)

    [玩轉(zhuǎn)AIGC]LLaMA2訓(xùn)練中文文章撰寫神器(數(shù)據(jù)準(zhǔn)備,數(shù)據(jù)處理,模型訓(xùn)練,模型推理)

    好久沒更新這個(gè)專欄的文章了,今天抽空寫了一篇?!?023.12.28 摘要:文體包括新聞,法律文書,公告,廣告等,每種文體的書寫風(fēng)格不一樣,如果擁有自己的數(shù)據(jù)集,想針對(duì)特定文體來訓(xùn)練一個(gè)內(nèi)容生成的工具,來幫助自己寫點(diǎn)文章,如果沒接觸過AIGC,可能一開始會(huì)

    2024年01月17日
    瀏覽(25)
  • 本地訓(xùn)練,立等可取,30秒音頻素材復(fù)刻霉霉講中文音色基于Bert-VITS2V2.0.2

    本地訓(xùn)練,立等可取,30秒音頻素材復(fù)刻霉霉講中文音色基于Bert-VITS2V2.0.2

    之前我們使用Bert-VITS2V2.0.2版本對(duì)現(xiàn)有的原神數(shù)據(jù)集進(jìn)行了本地訓(xùn)練,但如果克隆對(duì)象脫離了原神角色,我們就需要自己構(gòu)建數(shù)據(jù)集了,事實(shí)上,深度學(xué)習(xí)模型的性能和泛化能力都依托于所使用的數(shù)據(jù)集的質(zhì)量和多樣性,本次我們?cè)诒镜乩肂ert-VITS2V2.0.2對(duì)霉霉講中文的音色進(jìn)

    2024年02月05日
    瀏覽(19)
  • PaddleSeg的訓(xùn)練與測(cè)試推理全流程(超級(jí)詳細(xì))

    PaddleSeg的訓(xùn)練與測(cè)試推理全流程(超級(jí)詳細(xì))

    PaddleSeg 自建訓(xùn)練集訓(xùn)練+評(píng)估+模型部署: PaddleSeg官網(wǎng):https://gitee.com/paddlepaddle/PaddleSeg 我之前找到了一個(gè)paddleSeg的鏈接就下載了,結(jié)果調(diào)試的時(shí)候怎么都不對(duì),會(huì)有奇奇怪怪的錯(cuò)誤,并且非常棘手,解決不了 結(jié)果我后來發(fā)現(xiàn) 我原來是0.4版本,太舊了,所以出現(xiàn)各種由于不適

    2024年01月16日
    瀏覽(49)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包