本篇要介紹的是so-vits-svc,使用的是so-vits-svc4-1版本。
原文來自:
以下內容會包括我在使用過程中遇到的問題,以及解決方法。
這個項目是為了讓開發者最喜歡的動畫角色唱歌而開發的,任何涉及真人的東西都與開發者的意圖背道而馳。
本專案為開源、離線的項目,SvcDevelopTeam 的所有成員與本專案的所有開發者以及維護者(以下簡稱貢獻者)對本專案沒有控制力。本計畫的貢獻者從未向任何組織或個人提供包括但不限於資料集擷取、資料集加工、算力支援、訓練支援、推理等一切形式的幫助;本計畫的貢獻者不知曉也無法知曉使用者使用該物品的用途。故一切基於本計畫訓練的 AI 模型和合成的音訊都與本計畫貢獻者無關。一切由此造成的問題由使用者自行承擔。
此項目完全離線運行,不能收集任何使用者資訊或取得使用者輸入資料。因此,這個專案的貢獻者不知道所有的使用者輸入和模型,因此不負責任何使用者輸入。
本項目只是一個框架項目,本身並沒有語音合成的功能,所有的功能都需要使用者自己訓練模型。同時,這個項目沒有任何模型,任何二次分發的項目都與這個項目的貢獻者無關。
硬體建議:
推理環境:
推理對硬體要求較低,可使用 CPU,但速度會較慢。支持命令行推理和 WebUI 推理。
訓練注意事項:
• 訓練過程中顯卡負載極高,可能持續數小時,建議避免同時使用電腦。
• 如果需要使用電腦,建議選擇雲端訓練(如 Autodl 或 Google Colab)。
用 SO-VITS-SVC 打造 AI 歌姬,零基礎也能輕鬆上手!-數據集的錄製與準備
用 SO-VITS-SVC 打造 AI 歌姬,零基礎也能輕鬆上手-數據預處理
注意事項:
使用 git 拉取源碼。通過以下命令:
git clone https://github.com/svc-develop-team/so-vits-svc.git
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
※ 注意事項:
python版本:3.8版本。
版本過高會導致依賴安装不上。
# 进入SVC目录
cd D:/so-vits-svc/
# python虚拟环境创建
xxxx/python-3.8.9/python.exe -m venv 虚拟环境名
# 此后每次使用前,先执行activate脚本激活虚拟环境
D:/so-vits-svc/venv/Scripts/activate
Python 3.8.9 (tags/v3.8.9:9d38120, Mar 23 2022, 23:13:41) [MSC v.1929 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
※ 此處安裝的 Pytorch 需要與安裝的 Cuda 版本相符。例如:安裝的cuda為11.7,則下載的pytorch則需要是符合cu117的版本。
參考以下文章:
Anaconda安裝pytorch(GPU和CPU)超簡單的兩種方法-CSDN博客。
※ 安裝 torch , torchaudio , torchvision 這三個函式庫之後,在 cmd 控制台運用下列指令偵測 torch 能否成功呼叫 CUDA。最後一行出現 True 則成功,出現 False 則失敗,需要重新安裝正確的版本。
python
# 回车运行
import torch
# 回车运行
print(torch.cuda.is_available())
# 回车运行
進入之後點選下載,選擇自己的版本,我是windows。
下載好後解壓縮到一個自己不常動的資料夾。開啟bin目錄,複製此路徑。
如我的路徑:D:\1863\ffmpeg-2024-11-28-git-bc991ca048-full_build\bin
將此路徑添加到環境變量:
此電腦 > 右鍵 > 屬性 > 進階系統設定 > 環境變數 > 點開path > 新建 > 貼上路徑。
然後一直按確認就可以了。
查看是否可用:
ffmpeg -version
出現以上表示安裝成功。
在開始其他相依性安裝之前,請務必下載並安裝Visual Studio 2022 或 Microsoft C++ 產生工具(體積較前者較小)。 勾選並安裝元件包:“使用 C++的桌面開發”,執行修改並等待其安裝完成。 (依賴項中的fairseq、faiss等需要使用VC編譯器輔助編譯才能產生wheel,進而才能安裝到python環境)。
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
注意:請先安裝pythorch在安裝fairseq,否則會自動安裝cpu版本的pythorch。
pip install fairseq==0.12.2
cd /dD:\hina\hina_vits\so-vits-svc-4.1-Stable
pip install --upgrade pip wheel setuptools
pip install -r requirements_win.txt
pip install --upgrade fastapi==0.84.0
pip install --upgrade pydantic==1.10.12
pip install --upgrade gradio==3.41.2
注意:此處指定這三個函式庫版本,是因為SVC原始碼中對於該三個函式庫所呼叫的部分介面在不多的版本號後就被棄用甚至移除了。所以,若版本較新會造成SVC原始碼呼叫錯誤。
"model":
{
# 省略其他内容
# "ssl_dim",填256或者768,需要和下面"speech_encoder"匹配
"ssl_dim": 256,
# 说话人个数
"n_speakers": 200,
# 或者"vec768l12",但请注意此项的值要和上面的"ssl_dim"相互匹配。即256对应vec256l9,768对应vec768l12。
"speech_encoder":"vec256l9"
# 如果不知道自己的模型是vec768l12还是vec256l9,可以看"gin_channels"字段的值来确认。
# 省略其他内容
}
百度網盤:
提取碼:g8n4
Google Drive:https://drive.google.com/file/d/19e7HJYk32WHVIXm-CuhvbwF8IHjZ48QU/view?usp=sharing
v1.x 版本的整合包無法通過增量更新更新至 v2,请参考這裡瞭解更新方式。
v2.3.14 以前版本请直接下载完整整合包。
百度網盤:
提取碼::yryv
使用下面的指令訓練主模型,訓練暫停後也可使用下面的指令繼續訓練。
1.python train.py -c configs/config.json -m 44k
擴散模型訓練方法為:
1.python train_diff.py -c configs/diffusion.yaml
簡單來說,即SVC在使用模型推理出的音頻,會被當做輸入使用擴散模型做進一步推理,此操作可大幅提高輸出品質。
除了你自己,沒有人能回答這個問題。
模型的訓練關聯於你的數據集品質、時長,所選的編碼器、f0 演算法,甚至一些超自然的 玄學因素;即使你有一個成品模型,最終的轉換效果也要取決於你的輸入來源以及推理參 數。這不是一個線性的過程,之間的變數實在是太多,所以你必須問「為什麼我的模 型出來不像啊」、「模型怎麼算訓練好了」這樣的問題,我只能說 WHO F**KING KNOWS?請用你的耳朵來聽。
你可以用 Tensorboard 來查看訓練過程中的損失函數值 (loss) 趨勢,試聽音頻,從而輔助判斷模型訓練狀態。但是,就 So-VITS-SVC 這個項目而言,損失函數值(loss)並沒有什麼實際參考意義(你不用刻意對比研究這個值的高低),真正有參考意義的還是推理後靠你的耳朵來聽!
tensorboard --logdir=./logs/44k
Tensorboard 是根據訓練時預設每 200 步的評估產生日誌的,如果訓練未滿 200 步,則 Tensorboard 中不會出現任何影像。 200 這個數值可以透過修改 config.json 中的 log_interval 值來修改。
你不需要理解每一個 loss 的具體意義,大致上:
觀察 losses 曲線的趨勢可以幫助你判斷模型的訓練狀態。但 losses 並不能作為判斷模型訓練狀態的唯一參考,甚至它的參考價值其實並不大,你仍需要透過自己的耳朵來判斷模型是否訓練好了。
AutoDL算力雲:
Google Colab:
這篇是SO-VITS-SVC製作數據集、處理數據集,以及訓練的說明。本來想把推理的部分也寫完,但一次給太多東西可能會很難吸收,就放到下一篇文章吧!
我自己都使用過後的感覺是Autodl算力雲>Google Colab>本地訓練。
像我這種命令行跟python的小白…部署環境真的挺吃力的,我選擇雲端。(具體參照個人能力及硬體)。
如果對於文章內容部分在實際操作中遇到問題的,可以提問喔!
到目前為止,我已經訓練了 4-5 個模型,前幾次因數據集質量問題導致失敗,推理出的音頻慘不忍聽。重新訓練的過程非常耗時且令人疲憊,因此數據集的準備至關重要!
下一篇文章將分享推理的詳細步驟,並提供一些推理音頻樣本供大家參考。希望這篇文章能幫助到有需要的朋友,若有問題歡迎提問,我會盡量回答!
感謝閱讀,你們的鼓勵是我最大的動力!