前言:
在使用 SO-VITS-SVC 進行聲音模型訓練時,數據集的準備與預處理是至關重要的步驟。本文將詳細介紹如何進行音訊切片、響度匹配、數據預處理以及訓練參數的設置,幫助你高效完成模型訓練,打造專屬的 AI 歌姬。
在切片之前,請將待切片的音訊檔案以純數字、字母、底線命名,避免使用特殊符號,確保文件名規範化。
響度匹配 —— 重採樣 —— 產生設定檔 —— 擷取特徵。
使用下面的指令(若已經經過響度匹配,請跳過該行看下面的 NOTE):
1.python resample.py
注意:雖然 So-VITS 專案自帶響度匹配腳本,但該腳本會將音訊配對到 0db, 這 可能會造成音質的受損。最佳的做法是使用專業音訊處理軟體, 如Adobe Audition自行將資料集響度配對處理後再進入預處理流程。如果資料集已經 完成了響度匹配或啟用了響度嵌入,可以在預處理時跳過程式自帶的響度匹配 流程。
可以在執行上述指令時新增 --skip_loudnorm 跳過響度匹配步驟。如:
1.python resample.py --skip_loudnorm
請注意檔案結構:dataset_raw/speaker_name/*.wav。
勾選訓練擴散後將會擷取擴散模型所需的特徵文件,會佔用更多硬碟空間。有關擴散模型的詳細說明,請參考训练参数详解.。
啟用響度嵌入需要選擇 Vec768L12 編碼器,其它編碼器沒有響度嵌入的底模。
資料預處理的輸出資訊中可能存在報錯資訊。如果出現報錯,則代表資料預處理未完 成。你可以參考常見報錯和解決方案自行排障。
數據預處理可以多進程執行,但會顯著佔用顯存和内存。建議 6G 以下顯存不要 開啟多線程。12G 以下顯存不要將線程數設置為 2 以上。
同一個數據集只需要預處理一次,往後繼續訓練不需要也不可以重新預處理!
提供一個好用的響度匹配工具:
使用下面的指令(若需要響度嵌入,請跳過該行看下面的使用響度嵌入):
1.python preprocess_flist_config.py --speech_encoder vec768l12
擁有以下七個選擇,具體講解請看2.2.1必須項及各編碼器的詳解。如果省略 speech_encoder 參數,預設值為 vec768l12。
1.vec768l12
2.vec256l9
3.hubertsoft
4.whisper-ppg
5.whisper-ppg-large
6.cnhubertlarge
7.dphubert
8.
更多的編碼器選項,請參考 訓練參數詳解 - 關於特徵編碼器。
音色洩漏指的是輸出的音色向底模/推理輸入源的原始音色接近,模型說話者越多, 音色洩漏越嚴重。考慮到大多數人都希望盡可能還原目標說話者的音色,因此音色洩露 被認為是一種不受歡迎的結果。
1.python preprocess_flist_config.py --speech_encoder vec768l12 --vol_aug
3-1. 基本參數:
1.nsf-hifigan
2.nsf-snake-hifigan
3.
3-2. 擴散模型參數:
注意事項:
4-1. 使用下面的指令(若需要訓練淺擴散,請跳過該行看下面的淺擴散):
1.# 下面的命令使用了rmvpe作为f0预测器,你可以手动进行修改
2.python preprocess_hubert_f0.py --f0_predictor rmvpe
4-2. 擁有六個選擇,部分 f0 預測器需要額外下載預處理模型,請參考2.2.3-可選項-根據情況選擇
1.crepe
2.dio
3.pm
4.harvest
5.rmvpe(推荐!)
6.fcpe
7.
4-3. 各 f0 預測器的優缺點:
4-4. 注意:
1.# 下面的命令使用了rmvpe作为f0预测器,你可以手动进行修改
2.python preprocess_hubert_f0.py --f0_predictor rmvpe --use_diff
執行完以上步驟後產生的 dataset 目錄便是預處理完成的數據,此時你可以按需刪除 dataset_raw 資料夾了。
如果你是初次接觸,面對眼花撩亂的可選項,不知道該如何設定預處理參數,這裡為你 提供了一些不同使用場景下的最佳實踐:
完成數據集的準備與預處理是 SO-VITS-SVC 訓練的關鍵步驟。通過規範的音訊切片、響度匹配與參數設置,你可以顯著提升模型的訓練效果。希望本文能幫助你順利完成專屬 AI 歌姬的打造!如果遇到問題,請參考官方文檔或社群資源進行排障。