訓練
colab運行記錄僅供參考2023.8.17
免費用戶的使用,會員的不適用
紅色需要注意/藍色是目錄位置
diffsingerdatsaet模型歌手名稱

#@title 查看是否顯卡是否在gpu模式
!nvidia-smi

#第1步谷歌云盤加載
from google.colab import drive
drive.mount('/content/drive')

#DiffSinger直接安裝到網盤只第一次使用。之后不更新不要使用
#用完刪除推薦需要更新在用,不然有文件或者目錄更新無法使用很麻煩
%cd /content/drive/MyDrive
!git clone https://github.com/openvpi/DiffSinger.git

#第2步安裝依賴
%cd /content/drive/MyDrive/DiffSinger
!pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

#預處理數據集config_acoustic.yaml提前編輯
#這步第一次運行有了binary不需要每次都運行
%cd /content/drive/MyDrive/DiffSinger
!python scripts/binarize.py --config /content/drive/MyDrive/DiffSinger/data/diffsingerdatsaet/config_acoustic.yaml

使用你自己的config_acoustic.yaml目錄位置
我把config_acoustic.yaml保存到數據集diffsingerdatsaet目錄了
預處理后在diffsingerdatsaet里會生成binary文件夾

# 第3步啟動訓練
%cd /content/drive/MyDrive/DiffSinger
# 下面是可視化訓練數據
tensorboard_on = True ?#@param {type:"boolean"}
if tensorboard_on:
? %load_ext tensorboard
? %tensorboard --logdir /content/drive/MyDrive/DiffSinger/checkpoints/diffsingerdatsaet/lightning_logs
!python scripts/train.py --config /content/drive/MyDrive/diff/DiffSinger/data/diffsingerdatsaet/config_acoustic.yaml --exp_name?diffsingerdatsaet_acoustic?--reset

這樣應該就在訓練聲音模型了
之后在次繼續(xù)訓練只需要
1安裝網盤
2安裝依賴
3訓練
不要運行其他
安裝到網盤會產生模型每次自動刪除都在回收站需要清理我的免費賬戶就3-4小時沒幾個文件,如果空間不夠可以新建個免費賬戶共享一下DiffSinger這個目錄給自己另一個號,然后在共享里把文件夾放到相同目錄就可以,共享文件只保存在上傳者網盤,不影響新號空間,共享文件夾刪除文件在根目錄每次刪除就可以,這樣123這3步,可以每個新號共享,有風險慎用過多。
#我的config_acoustic.yaml僅供參考

base_config: configs/acoustic.yaml
raw_data_dir:
? - data/diffsingerdatsaet/raw
speakers:
? -?diffsingerdatsaet
spk_ids: []
test_prefixes:
? -?2001000001? ? ? ? ? ? ? ? ? ? ? ?#修改你自己音頻名
? -?2001000002
? -?2001000003
? -?2001000004
? -?2001000005
dictionary: dictionaries/opencpop-extension.txt
binary_data_dir: data/diffsingerdatsaet/binary
binarization_args:
? num_workers: 0
use_spk_id: false
num_spk: 1? ? ? ? #幾個人聲
use_energy_embed: false
use_breathiness_embed: false
use_key_shift_embed:?ture
use_speed_embed:?ture
augmentation_args:
? random_pitch_shifting:
? ? enabled:?ture
? ? range: [-5., 5.]
? ? scale: 1.0
? fixed_pitch_shifting:
? ? enabled:?false
? ? targets: [-5., 5.]
? ? scale: 0.75
? random_time_stretching:
? ? enabled:?ture
? ? range: [0.5, 2.]
? ? domain: log? # or linear
? ? scale: 1.0
residual_channels: 512
residual_layers: 20
optimizer_args:
? lr: 0.0004
lr_scheduler_args:
? scheduler_cls: torch.optim.lr_scheduler.StepLR
? step_size: 5000
? gamma: 0.5
max_batch_frames:?100000? ?#根據數據和設備調整越大越好,感覺數據少于反倒太高運行不了3000條數據可以調100000但300條只能調70000
max_batch_size:?64? ? ? ? ?#bs,較?的bs在訓練時消耗更多的 GPU 內存,不能太小,我看默認是48
max_updates: 32000000? ? ? ?#?即截至step
num_valid_plots: 10? ? ? ? ? ? ? ? ??
val_with_vocoder: true? ? ? ? ? ? ? ?
val_check_interval: 1000? ? ? ? ? ? ? ? ?#每多少保存一次
num_ckpt_keep: 2? ? ? ? ? ? ? ? ? ? ? ? #模型保存?zhèn)€數
permanent_ckpt_start: 100? ? ? ? ?#永久ckpt 保存起始step
permanent_ckpt_interval: 40000
pl_trainer_devices: 'auto'
pl_trainer_precision: '16-mixed'? ? ? ? ? ? ? ? #精度選擇 ,默認的是32-true可選
