比win訓(xùn)練速度更快,不需要等一鍵包:Linux安裝so-vits-svc教程

話說最近2080Ti煉丹卡價(jià)格真是便宜,UP也入手了一張來進(jìn)行ai訓(xùn)練
折騰了幾天發(fā)現(xiàn)在Linux下訓(xùn)練速度確實(shí)要比win更快(同樣的svc版本4.0V1和訓(xùn)練集,batch_size:6,win大約是80s一個(gè)epoch,Linux是60s一個(gè)epoch),而且配置環(huán)境也更省心,但是中間還是有一些坑,所以寫了這篇教程,希望能幫助大家節(jié)約折騰的時(shí)間
本文的目的是讓沒接觸過Linux也能順利完成安裝so-vits-svc,并且可以最快用上新功能(如GUI界面,實(shí)時(shí)語音轉(zhuǎn)換),所以一切步驟盡力寫的通俗詳細(xì),但部分步驟仍可能有不清楚的地方,若遇到問題可以在評(píng)論區(qū)提問,UP看到會(huì)第一時(shí)間解答

一些新版本更新的小功能
1.音頻推理自動(dòng)切片
在推理的時(shí)候,可以直接一首歌直接推理,不需要手動(dòng)切片,推理時(shí)命令行加入:
-cl, --clip:音頻自動(dòng)切片,0為不切片,單位為秒/s。
2.打開tensorboard用圖像的方法查看loss

終端輸入:
tensorboard --logdir=填你的train.log文件的絕對(duì)路徑
例如:tensorboard --logdir=/home/cecilia/PycharmProjects/SVCV2PY38T2/so-vits-svc-4.0-v2/logs/44k
3.啟動(dòng)gui界面以及語音實(shí)時(shí)轉(zhuǎn)換

pip install -U so-vits-svc-fork //安裝分支
svcg //啟動(dòng)gui界面
若是遇到 No matching distribution found for PortAudio報(bào)錯(cuò),可以執(zhí)行下面代碼解決
sudo apt-get install libportaudio2
pip install sounddevice

一.安裝Ubuntu
下載Ubuntu,鏈接為:https://ubuntu.com/download/desktop,選擇Ubuntu 22.04.2 LTS即可
使用balenaEtcher制作啟動(dòng)盤,balenaEtcher下載鏈接為:https://www.balena.io/etcher
在計(jì)算機(jī)上安裝Ubuntu
為了節(jié)約篇幅并專注主題,安裝Ubuntu的詳細(xì)教程本文就不詳細(xì)展開了哦,可參考官方教程:https://ubuntu.com/tutorials/install-ubuntu-desktop#1-overview,或在互聯(lián)網(wǎng)上搜索安裝Ubuntu教程
二.安裝N卡驅(qū)動(dòng)
可使用Ubuntu自帶“軟件和更新”進(jìn)行一鍵安裝N卡驅(qū)動(dòng):
打開“軟件和更新”
點(diǎn)擊列表第五個(gè)的“附加驅(qū)動(dòng)”,選擇“Nvidia driver metapackage 來自 515 (專有)”驅(qū)動(dòng),并應(yīng)用(這個(gè)515自帶的CUDA版本應(yīng)該是11.7,正好適用于我們安裝so-vits-svc的環(huán)境)

?4.?安裝好重啟,打開終端,輸入nvidia-smi,如果驅(qū)動(dòng)正常安裝,這里會(huì)出現(xiàn)Driver版本和CUDA版本還有顯卡的使用情況(如果想要一直監(jiān)視顯卡使用情況,可以使用watch命令:watch -n 1 nvidia-smi,即可每秒刷新顯示顯卡使用情況)

使用本方法安裝N卡驅(qū)動(dòng)有可能失敗,為了節(jié)約篇幅并專注主題,本文僅介紹這一種方法,若安裝失敗,請(qǐng)?jiān)诨ヂ?lián)網(wǎng)搜索其他安裝N卡驅(qū)動(dòng)的方法哦(注意安裝的CUDA版本不要超過11.8,因?yàn)閜ytorch目前最新版本只支持11.8,本文建議安裝11.7)
三.安裝使用conda(可選,強(qiáng)烈建議)
(conda是一個(gè)開源的軟件包管理系統(tǒng)和環(huán)境管理系統(tǒng),用于安裝多個(gè)版本的軟件包及其依賴關(guān)系,并在它們之間輕松切換,通過conda,我們可以方便安裝調(diào)試各種環(huán)境,特別是安裝了各種亂七八糟的包導(dǎo)致沖突后,我們可以直接新建一個(gè)環(huán)境,省心省力)
1.?下載Anaconda,鏈接為https://www.anaconda.com/products/distribution,下載“64-Bit (x86) Installer”即可
2.?安裝conda很簡單,輸入以下兩行代碼即可
chmod +x 此處直接把下載好的sh拖進(jìn)來按回車即可
bash 此處直接把下載好的sh拖進(jìn)來按回車即可
3.一路按回車和輸入yes即可,安裝好后,會(huì)提醒你重啟終端生效,重啟終端后,命令行前面出現(xiàn)(base)說明安裝成功

4.安裝好conda后,我們可以專門為so-vits-svc創(chuàng)建一個(gè)新的環(huán)境,方便管理so-vits-svc需要的包
conda create -n SVCPY38T3 python=3.8 ??
//此處創(chuàng)建了一個(gè)名叫“SVCPY38T3”,python版本為3.8的環(huán)境(python版本推薦使用3.8,UP原來使用的3.10發(fā)現(xiàn)安裝環(huán)境的時(shí)候會(huì)有大大小小的問題,3.8就很順利,并且推薦使用官方源,不要換國內(nèi)源,)
四.安裝PyCharm(可選,強(qiáng)烈推薦)
1.(PyCharm可以方便編輯和運(yùn)行代碼,并通過插件自動(dòng)檢查安裝包是否符合requirements條件)
2.打開Ubuntu自帶應(yīng)用商店
3.搜索PyCharm,下載即可(如果你是學(xué)生,可以使用學(xué)生認(rèn)證免費(fèi)使用PyCharm Professional,否則直接下載community社區(qū)版即可)
4.PyCharm新建一個(gè)項(xiàng)目,名稱可以隨便取,而python解釋器選擇已經(jīng)存在的解釋器-添加本地解釋器-conda環(huán)境,選擇剛剛創(chuàng)建的conda環(huán)境即可

5.打開設(shè)置-插件,搜索requirements,可下載自動(dòng)檢查包版本的插件

五.配置環(huán)境
1.從https://github.com/svc-develop-team/so-vits-svc 下載你想要的版本(本文以4.0V1為例)
2.把下載好的代碼解壓后直接拖進(jìn)PyCharm,并打開目錄中的requirements.txt,可以看到PyCharm正在檢查包版本,若是包沒有安裝或者版本不對(duì),會(huì)自動(dòng)標(biāo)黃提醒我們
3.復(fù)制一份requirements.txt到桌面,打開終端輸入“conda activate SVCPY38T3“,激活上文創(chuàng)建的名為SVCPY38T3的環(huán)境,此時(shí)命令行前面的(base)應(yīng)該會(huì)切換到(SVCPY38)
4.輸入“pip install -r (把桌面的requirements.txt直接拖進(jìn)來)”,即可全程自動(dòng)安裝好環(huán)境,我們同時(shí)可以在PyCharm中看到已經(jīng)安裝好的包
六.試運(yùn)行以及處理報(bào)錯(cuò)
1.把checkpoint_best_legacy_500.pt文件放進(jìn)hubert目錄,把G_0.pth,D_0.pth放進(jìn)logs/44k目錄(底模也可以先不放,先試運(yùn)行一下,因?yàn)榈啄R前姹静粚?duì),也有可能報(bào)錯(cuò)的,會(huì)加大我們排錯(cuò)的難度),以及數(shù)據(jù)集放在dataset_raw目錄里,然后打開README_zh_CN.md,在里面按照步驟一步一步運(yùn)行即可
2.不出意外的話,應(yīng)該沒有那么順利能成功運(yùn)行,可能會(huì)一些報(bào)錯(cuò),我們可以根據(jù)報(bào)錯(cuò)信息進(jìn)行逐步排查(以下所有代碼請(qǐng)?jiān)谥耙呀?jīng)創(chuàng)建好的conda環(huán)境中進(jìn)行):
-CPU?training?is?not?allowe或者h(yuǎn)ome/cecilia/anaconda3/envs/SVCPY38T2/lib/python3.8/site-packages/torch/xxx…….:這種報(bào)錯(cuò)應(yīng)該是torch問題,我們可以在終端檢查torch是否安裝好:
打開終端,輸入python
然后復(fù)制輸入下面三行代碼,回車:
import torch
x = torch.rand(5, 3)
print(x)
輸出結(jié)果若為:
tensor([[0.3380, 0.3845, 0.3217],
? ? ? ? [0.8337, 0.9050, 0.2650],
? ? ? ? [0.2979, 0.7141, 0.9069],
? ? ? ? [0.1449, 0.1132, 0.1375],
? ? ? ? [0.4675, 0.3947, 0.1426]])
則說明torch安裝了,但是不知道是否打開了gpu加速,我們可以再輸入下面代碼檢查一下:
import torch
torch.cuda.is_available()
若返回true,則說明正確安裝了torch并正確使用了gpu加速
解決報(bào)錯(cuò)方法:
若第一段代碼沒有輸出結(jié)果,則說明torch沒有安裝好,我們可以打開https://pytorch.org/get-started/locally/,選擇并下載你電腦需要的版本安裝
若第一段代碼有結(jié)果,第二段代碼返回false,則說明沒有正確使用gpu加速,同樣,我們可以打開https://pytorch.org/get-started/locally/,選擇并下載你電腦需要的版本安裝
若第一段代碼和第二段代碼都正常得到結(jié)果,則可能是torch版本問題,我們可以“pip install -U torch”,進(jìn)行升級(jí)torch,up實(shí)測,torch2.0也是可以正常運(yùn)行的,不一定要安裝requirements的古老版本
-ModuleNotFoundError:?No?module?named matplotlib或者"/home/cecilia/anaconda/envs/SVCPY38/Lib/python3.8/site-packages/fairseg/checkpoint_utils.py”或者No?matching?distribution?found?for?librosa:這種報(bào)錯(cuò)應(yīng)該是安裝包缺失
解決報(bào)錯(cuò)方法:
pip install 報(bào)錯(cuò)的包
(如pip install?librosa)
-安裝pyworld或fairseq的時(shí)候報(bào)錯(cuò)Could not build wheels for fairseq, pyworld, which is required to install pyproject.toml-based:
解決方法:
https://github.com/svc-develop-team/so-vits-svc/issues/66