BertVits2使用教程分享體驗丨最強中文語音克隆項目
曾經(jīng)我寫過一篇做語音克隆的AI音頻工具:11Labs
效果好是好,也非常傻瓜簡單,但是很多朋友都跟我反饋說,11Labs中文效果不好。
沒辦法,畢竟國外的產(chǎn)品,在世界的AI產(chǎn)品舞臺上,中文從來不是主流語言。這也是一個非常讓人傷心的話題,明明世界AI圈里,主流的從業(yè)人員都是華人,但是中文的數(shù)據(jù)集和效果...哎。
而國內(nèi)的AI音頻產(chǎn)品,比如出門問問的魔音工坊,效果確實很好,而且他們也有做媲美11Labs語音克隆的實力,但是因為國內(nèi)很多很多的原因,內(nèi)部做出來了,有時候也不太對外放出來...具體的原因我就不細聊了,反正,懂得都懂。
總之,還是得靠自己,所以去年我12月翻了很久的TTS項目之后,找到了這個:
Bert-Vits-2
但是吧,這個效果雖好,但是沒有好的特別影響代差的地步,直到上周有個大佬傳了一個分支項目:
我覺得,中文語音克隆TTS的最強項目,到來了。
可以聽聽看,我去網(wǎng)上扒了B站UP主“峰哥亡命天涯”的音頻,訓練成TTS模型之后,說話的效果:
AI峰哥說話demo,數(shù)字生命卡茲克,22秒
這可能是目前市面上,開源TTS這塊,我能體驗到的最好的中文音頻克隆效果了。
話不多說,開始教程,這次不是那么傻瓜,會有一點點麻煩,需要點好多下,但是畢竟各種亂七八糟的坑我都基本踩了個遍,所以我盡量寫的清晰明白,讓大家都能最方便快捷的訓練自己的中文TTS。
首先,第一步,肯定是上云,云會讓大家成功率最高,少踩一些坑,也花不了幾塊錢;
打開我們的國際標準煉丹平臺AutoDL:https://www.autodl.com/
沒注冊的自己去鏈接注冊去,我就不管了。
然后在西北A區(qū)租一臺4090的機器。
這里要注意一下,CPU型號別選AMD的,右邊有一列叫“最高CUDA”,一定要大于11.8的,西北A區(qū)的一般都是12.0所以沒啥問題,但是還是要留心一下,CUDA版本小于11.8必報錯。
然后在下方,選擇社區(qū)鏡像,就是別人已經(jīng)做好的系統(tǒng)我們直接拿來用就行了。在輸入框中輸入Bert-Vits,就會自動聯(lián)想出來一堆,一定!一定!一定要選V11.1版本!!!要不然必報錯!!!
選完之后,我們就可以點擊創(chuàng)建鏡像。
第一次創(chuàng)建鏡像,可能會非常久,大概需要將近10分鐘,不要急,耐心等等就好。
創(chuàng)建完成之后,點擊JupyterLab進入系統(tǒng)。
進來后就會看到一大堆文字,不用管,直接往下滑,直到看到分割線頁面,點擊第一個代碼塊,然后點上方的三角按鈕運行這個代碼塊。
同時注意一下右上角這個圓圈的狀態(tài)。
實心圓則代表系統(tǒng)正在運行中,空心圓則代表上一步已經(jīng)運行完成,目前系統(tǒng)空閑中。
所以只有當看到右上角圓圈是空心圓的時候,再去運行下面的代碼塊。
第二個代碼塊比較重要,你可以先把這句話的speaker="Neuro" ,后面的這個Neuro改成你自己的名字,比如我就改成了speaker="Khazix"
改完以后,再點頂上的三角按鈕運行。
后續(xù)的兩個代碼塊,都不需要運行任何東西,跟著運行即可。但是記得右上角的圓圈狀態(tài)一定要是空心圓再運行!
這四步都運行完了之后,接下來就是數(shù)據(jù)集的上傳與切割,我們大概需要半個小時到1個小時的純?nèi)寺曊f話的干聲,一定要干聲!盡量不要有任何雜音,這樣效果才好。
同時注意你的口吻,最好是比較日常的、說話的,不要唱歌的、不要念課文的,要不然出來的效果也是稀奇古怪的朗讀腔。
TTS大模型這種東西,90%的效果其實都跟原始數(shù)據(jù)集有密切的關系。
數(shù)據(jù)集這塊,我們一般都是需要處理成多段10~15秒的音頻的,如果你沒有切割過的話,你可以直接把你的文件傳到autodl-tmp/workdir/audio-slicer/input這個文件夾里,然后自己直接在代碼塊點擊后運行即可。
如果你是已經(jīng)在本地用slicer-gui切過的同學,你就可以直接把數(shù)據(jù)集上傳到autodl-tmp/workdir/auto-VITS-DataLabeling/raw_audio這個路徑下,直接拖進來就行。
就像這樣,注意一下下面的藍色的進度條就行,沒傳完別亂點。
傳完以后,我們就要進行數(shù)據(jù)集的標注了。這兩個代碼塊,連這運行就行。
然后我們開始正兒八經(jīng)的標注,繼續(xù)運行代碼塊就行。數(shù)據(jù)集嘛,標注一下效果才好,你懂的。
這一步會有一點點久,畢竟得一條條語音識別出來。我1093條音頻,大概花了9分鐘,你們可以自己類推一下下~
直到看到Done的提示,說明標注就完成啦。
然后就是后面的5步,生成出各種東西,這5個代碼塊你也不需要改任何東西,看著右上角圓圈狀態(tài),無腦點擊運行就行。
每一步都運行完的提示大概長這樣,你們可以對著驗證一下:
最后,我們就要開始最后的一步!訓練了!!!
訓練一共是3步,前兩步還是跟之前一樣,無腦點擊就行。
前兩部運行完之后,等一等,停手!先別點第3步那個開始訓練的代碼塊,而是返回頂部,找到我們最開始的speaker="Khazix"那個代碼塊,運行一下后,再回來開始訓練!!!就是這個:
一定要,運行完以后,再回來開始訓練!!要不然到時候報錯了別來問我= =
OK,一切完畢,直接點擊訓練的那個代碼塊。如果你一切按我的來,從選機器開始,到最后的運行,基本是不會有BUG或者報錯的,都能跑起來。你就能看到開始蠕動的進度條了。
等著就行,跟SVC類似,每1000步會在autodl-tmp/workdir/Bert-VITS2/Data這個文件夾里保存一個模型,我一般推薦4000步、5000步的模型可以聽聽效果了,沒有大問題的話,就可以繼續(xù)往后煉,10000步的模型差不多就可以用了,但是我還是推薦你10000步以后的每個保存下來的模型,都聽一下,挑個最好的。
最后,模型差不多了,我們就要開始推理了~也就是真正的把文字轉成語音了~推理我建議還是上云推理,本地推理要求最低也是8G顯存,挺高的。。。像我這種垃圾3060想都不敢想。
推理第一步,先去改一下配置文件,因為這個項目比較新,所以用戶體驗不是特別好,大家忍耐一下,馬上就完事了~
我們在autodl-tmp/workdir/Bert-VITS2這個路徑下,找到一個叫config.yml的文件。雙擊點開它。
找到105行。
把這行的路徑model: "Data/maolei/models/G_0.pth",換成你自己的。
比如我的說話人最開始設的叫Khazix,現(xiàn)在我想用5000步的模型去做推理,那我就把這行改成:
model: "Data/Khazix/models/G_5000.pth"
標紅的這塊就是需要你去修改的。改完以后,記得多按幾下Ctrl+S保存。
然后,保持在autodl-tmp/workdir/Bert-VITS2目錄下,再點擊右上角的+號,再點終端,進入命令行頁面。
輸入代碼:
python webui.py
就會出來一串推理地址:
如果遇到報錯,可以先把那邊訓練給停了,按頂上的方塊停止按鈕就行,下次再開是接著訓練的,不影響。
看到這個地址后,別直接點進去,會啥也看不到的,因為這是云機器的本地連接,所以我們要通過一些額外手段接進去。
回到AutoDL的控制臺首頁,點擊這個自定義服務,就可以進去了。
然后,你就可以看到推理的WebUI了。
在左上角正常輸入你的文字內(nèi)容就行。
有個有趣的東西是音頻Prompt,你可以再傳一段音頻上去,把這段音頻的風格作為Prompt,他就可以生成差不多效果的音頻。
比如我傳了一段峰哥8秒的說話切片作為參考,然后所有參數(shù)都不變,就生成了這么一段話。
實在是太還原了,除了氣口這個老大難問題,其他的都幾乎一樣,連峰哥語氣詞都還原出來了。
下面的這些參數(shù),其實只用看最后一個Length那個就行,那個是語速,有時候AI會賊快,所以可以適當?shù)募哟髤?shù),參數(shù)越大越慢,另外三個最好別動,默認就行。
最后,你訓練的模型如果要保存下來,記得去autodl-tmp/workdir/Bert-VITS2/Data/你的文件夾名字/models里,把三個模型下載下來,一定要保證后綴是一樣的,下次直接傳到同一個文件夾里,就可以繼續(xù)推理了。
以上,就是這一版Bert-Vits2中文特化版的全部用法。
說實話,蹚坑挺累的,作為一個不懂技術的,我蹚坑真的蹚了好幾個晚上,沒有前路,只能自己把各種報錯原因拿去跟GPT對話,然后研究怎么整。。。
但是好在,最后還是OK了。
希望,大家都能發(fā)揮出它的強大,用AI,真的去做一些有趣的事。
近期文章
更多