Fish Diffusion一鍵包&使用教程 V1.0
請自行解決數(shù)據(jù)集授權(quán)問題,禁止使用非授權(quán)數(shù)據(jù)集進行訓(xùn)練!任何由于使用非授權(quán)數(shù)據(jù)集進行訓(xùn)練造成的問題,需自行承擔(dān)全部責(zé)任和后果!嚴(yán)禁損害他人名譽權(quán)以及肖像權(quán)!

倉庫鏈接:https://github.com/fishaudio/fish-diffusion
wiki鏈接(英文):https://fishaudio.github.io/fish-diffusion/
配置要求:一張NVIDIA顯卡(CPU也可以訓(xùn)練,但是速度慘不忍睹,A卡需要安裝ROCm,目前已知最低能在GTX1650 4G顯卡上成功訓(xùn)練)
充足的硬盤空間(不少于50G)
CPU和內(nèi)存的要求不高,基本上不會拖慢訓(xùn)練速度
軟件要求:建議安裝一個編輯器,例如Sublime Text,VS Code等等,并且將.py文件的默認(rèn)打開方式設(shè)置為編輯器,方便修改文件。
數(shù)據(jù)集要求:不低于2小時的高質(zhì)量干聲,并且所有音頻文件已經(jīng)裁切至5-15秒,刪除了過重的呼吸聲。(無需標(biāo)注,少那么十幾分鐘也沒啥問題)
不適用的數(shù)據(jù)集:時長短(比如只有30分鐘),人聲是用Demucs,MDX-Net這類AI算法分離出來的
本教程不保證多人可以正常訓(xùn)練,請使用單人訓(xùn)練
第1步:下載解壓一鍵包
百度網(wǎng)盤:https://pan.baidu.com/s/1taq3cCl3A3tbkhqGTk663Q?pwd=wiyn
阿里云盤:https://www.aliyundrive.com/s/pewzzWMoZ5Q 提取碼: zd20
文件結(jié)構(gòu):
checkpoints:存放聲碼器模型
configs:預(yù)處理和訓(xùn)練所用到的配置文件
configs_backup:配置文件的備份,玩壞了直接覆蓋configs文件夾即可
dataset:存放數(shù)據(jù)集
dictionaries:字典(功能未知?)
env:python3.10以及依賴庫文件
fish_diffusion:項目主體
logs:存放tensorboard的訓(xùn)練日志以及模型文件
tests:測試(功能未知?)
tools:各種工具
然后運行 “?0.復(fù)制緩存文件.bat ” ,復(fù)制模型文件。
第2步:存放數(shù)據(jù)集
如果只需要訓(xùn)練一位說話人,如圖1中的格式存放數(shù)據(jù)集
train文件夾是訓(xùn)練集,存放你的音頻文件。(必須是同一個人的聲音)
valid文件夾是驗證集,在訓(xùn)練集里面隨機選擇5-10條音頻放入即可。(不要塞太多,否則會加長驗證時間)

如果需要訓(xùn)練多位說話人,如圖2中的格式存放數(shù)據(jù)集
train文件夾是訓(xùn)練集,一位說話人對應(yīng)一個文件夾。(speaker_0,speaker_1這些文件夾的名字可以更換,但是要記得正確填入配置文件中)
valid文件夾是驗證集,在訓(xùn)練集里面隨機選擇一位說話人的5-10條音頻放入即可。(不要塞太多,否則會加長驗證時間。如果你有能力修改配置文件,可以選擇多位說話人作為驗證集)

第三步:預(yù)處理
單人訓(xùn)練:運行?“ 1.單人-預(yù)處理.bat ” ,耐心等待進度條跑完即可。
多人訓(xùn)練:1.運行 “?1a.多人-配置文件.bat ” ,打開配置文件,對照注釋修改成適合自己數(shù)據(jù)集的配置文件

2.確認(rèn)配置文件修改完成后再運行 “ 1b.多人-預(yù)處理.bat ” ,耐心等待進度條跑完即可。
第四步:調(diào)整訓(xùn)練參數(shù)
運行 “?2a.調(diào)整訓(xùn)練參數(shù).bat?“ ,對照注釋修改配置文件
文件位于.\configs\_base_\datasets\naive_svc.py

運行 “?2b.調(diào)整模型參數(shù).bat?“ ,對照注釋修改配置文件
文件位于.\configs\_base_\trainers\base.py

第五步:訓(xùn)練
運行 ”?3a.開始訓(xùn)練.bat “ 開始訓(xùn)練。
運行 “?3c.Tensorboard.bat ”,輸入Version_n的序號來打開啟動服務(wù),然后在瀏覽器內(nèi)輸入http://localhost:6006/打開可視化界面。(如果命令報錯運行一下 “?3d.修復(fù)Tensorboard.bat ” 即可)
如果中途退出訓(xùn)練,則需要運行 "?3b.繼續(xù)訓(xùn)練.bat " 輸入Version_n的序號,并且指定要從哪個模型繼續(xù)訓(xùn)練。
模型文件位于.\logs\DiffSVC\version_n\checkpoints\
訓(xùn)練過程中要注意train_loss和valid_loss曲線:
Train_loss和valid_loss都在下降,并趨近于收斂:這通常是好的表現(xiàn),表明模型在訓(xùn)練集和驗證集上都有良好的性能表現(xiàn),并且沒有出現(xiàn)過擬合或欠擬合現(xiàn)象。
Train_loss下降,但valid_loss沒有下降或開始上升:這表明模型在訓(xùn)練集上表現(xiàn)得很好,但在驗證集上可能存在過擬合現(xiàn)象。需要進一步檢查模型的復(fù)雜度是否合適,是否需要調(diào)整超參數(shù)等。
Train_loss和valid_loss都在上升:這通常是欠擬合的表現(xiàn),可能是模型過于簡單或訓(xùn)練集數(shù)據(jù)不足導(dǎo)致的。需要增加模型復(fù)雜度或增加數(shù)據(jù)量等。
Train_loss下降,valid_loss在變化的過程中出現(xiàn)了震蕩:這可能是因為模型過擬合了,需要采取措施進行正則化等。
與此同時還要經(jīng)常聽一下Audio面板的音頻,前面的是原始音頻,后面的是用模型推理出來的結(jié)果。
第六步:推理
運行 “?4.推理.bat ”,輸入模型文件路徑并使用webui進行推理
模型文件位于.\logs\DiffSVC\version_n\checkpoints\