最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Amadeus復刻計劃(AI擬聲篇 二 VITS的訓練)

2023-04-30 16:49 作者:寂滅光-  | 我要投稿

前言:

前文提到,筆者之前使用so-vits-svc模型,從原游戲中提取角色語音2906條進行訓練,跑了10400個step,效果較為良好。但可惜的是so-vits是用于音色轉(zhuǎn)換的模型,因此需要原始音頻作為輸入,使用不是很方便。輾轉(zhuǎn)考慮后,筆者決定從原始的VITS模型入手,希望達到文本轉(zhuǎn)語音的效果。

簡單介紹:

目前VITS主要有兩個倉庫,一個是該論文提出時原作者開源放出的倉庫(最近更新在兩年前),一個是疑似國人fork維護的一個快速微調(diào)版本(ps:國內(nèi)的二次元濃度很高?。?,筆者使用的是后者提供的腳本參考與預(yù)訓練模型。

二者的github鏈接會放在文章底部。

訓練準備:

1. 前文提到的2906條角色語音數(shù)據(jù)(不過據(jù)colab文件中所說樣本少于100條也有一定效果,實在找不到音頻數(shù)據(jù)的角色也可以試試)

2. GTX 3090顯卡(租賃,原則上不少于8G顯存的N卡即可)

3. 可以訪問外網(wǎng)的設(shè)備

開始訓練:

由于AutoDl中提供的vits鏡像問題很大,因此本文基本上是根據(jù)colab筆記及源代碼訓練的,基本上可以看作不需要前提條件。不過因為是在真實linus系統(tǒng)上訓練的,其中與colab的訓練有些微不同需要注意。

第一種方式:直接使用官網(wǎng)colab進行訓練(鏈接在文尾),基本上不需要考慮太多,上傳完數(shù)據(jù)集就可以直接訓練了,該筆記的擁有者已經(jīng)將大部分腳本封裝起來可以實現(xiàn)打開即用,但是colab使用的是Tesla T4,雖然顯存很大(16G),但訓練速度還是比較慢,而且免費用戶無法后臺訓練,訓練時間也有限制。筆者如此多的數(shù)據(jù)量,一天的免費時間是無法訓練完成的,因此采用了第二種方法。

第二種方法:即租賃一個帶GPU資源的服務(wù)器,筆者使用的AutoDl(不太建議,要搶GPU,但勝在便宜),租賃了3090的服務(wù)器,準備開始訓練。

具體流程(因為是從零開始的所以有些步驟可以跳過):

1. 將項目源文件clone下來,并安裝好可能需要使用的python庫(原文使用的python3.8)

2. 進入項目文件夾并安裝所需依賴,但筆者不建議直接安裝該requirements.txt,因為有些庫可能很難安裝,而報錯了又不知道究竟是哪個庫沒安裝上(點明批評pyopenjtalk)

3. 2中方法可能難以定位錯誤,因此筆者建議手動打開requirements文件,一行一行的安裝依賴庫(雖然有些麻煩,但勝在保險)

ps:其中的torch, torchvision,torchaudio版本不一定要保持一致,因為他們與cuda版本相關(guān),安裝時無須指定版本號

4. 創(chuàng)建一些后面腳本需要用到的文件夾并將輔助訓練集下載下來.

5. 下載預(yù)訓練模型及config文件(中日雙語模型,更多選擇請在colab筆記中尋找)

6. 上傳角色音頻(wav格式),將其放置在如下路徑,其中角色名表示你要訓練的角色,盡量使用英文命名

7. 音頻去噪?colab中沒有提到,但源碼中的寫的是僅通過自動方式上傳的長視頻、長音頻(存儲在raw_audio文件夾的)才會被去噪,因此手動上傳至custom_character_voice/文件夾的并不會(怪不得感覺沒什么變化……)

8. 調(diào)用whisper對音頻進行標注,這個腳本做了兩件事,一件是分割(對長音頻)并將音頻名稱改為process_*.wav的格式,一件是使用whisper對音頻進行標注,并保存音頻與標注的對應(yīng)關(guān)系在short_character_anno.txt文件中,格式見下,由文件路徑+角色名+語種+標注組成

9.重采樣

10. 輔助樣本的添加與否

4中提到預(yù)先下載好了輔助訓練集,該數(shù)據(jù)集包括143名角色的1092條已標注音頻,官方的解釋是“輔助訓練數(shù)據(jù)是從預(yù)訓練的大數(shù)據(jù)集抽樣得到的,作用在于防止模型在標注不準確的數(shù)據(jù)上形成錯誤映射。”不過筆者的考慮是,該輔助訓練集平均下來一個人只有10條不到的音頻,大量的角色混合訓練沖淡了音色的影響,如果你的角色數(shù)據(jù)在一百條左右,既不至于數(shù)據(jù)量太少無法訓練,又不會因為其他數(shù)據(jù)的添加導致音色變形,此時建議使用。如果音頻過少就不建議了,可能會導致訓練出來的音色是底模的音色(未親身嘗試,如有相關(guān)經(jīng)驗的請不吝賜教)

11. 更改訓練配置,在如下文件路徑中修改batch_size與learning_rate以及多少步保存一次模型等設(shè)置,不了解的建議直接默認配置

12. 開始訓練

{Maximum_epochs}視情況改為你所需的最大epoch數(shù),個人建議大數(shù)據(jù)量的話在一千以上,筆者就是訓練了一千多個輪次(幾乎30小時),但是效果很好,沒有過擬合的現(xiàn)象(據(jù)說生成式模型很難過擬合?)。

ps:原項目的VITS配置中默認寫的是10000個epoch,不確定是保證其訓練過程中不會停止還是真的這個數(shù)量質(zhì)量會更好,筆者傾向于后者。

13. 收尾工作

?接下來就是等待訓練完成,訓練過程中的各個loss與歷史模型會保存在OUTPUT_MODE0L/文件夾,可以使用tensorboard查看,或直接用記事本打開train.log查看輸出日志


寫在后面:

原本打算一口氣寫完訓練+部署的,但訓練部分實在太長了,而且linux上部署也并不是一個很簡單的事情,因此還是放在之后寫吧,windows上的部署可以直接下載項目中的release,不過可惜的是該版本僅支持cpu推理,效果會慢一些(不過也更具普遍性?笑)


參考鏈接:


交流群:

723240586


Amadeus復刻計劃(AI擬聲篇 二 VITS的訓練)的評論 (共 條)

分享到微博請遵守國家法律
察哈| 嘉兴市| 柳江县| 黔西县| 墨竹工卡县| 拉萨市| 西藏| 江津市| 博罗县| 陆丰市| 礼泉县| 英吉沙县| 南开区| 多伦县| 双城市| 海宁市| 中方县| 长春市| 西吉县| 湟中县| 灵武市| 碌曲县| 乌兰县| 新蔡县| 泰宁县| 准格尔旗| 大港区| 西吉县| 巴彦淖尔市| 元氏县| 新和县| 吐鲁番市| 古交市| 灵台县| 钟山县| 安远县| 神池县| 威信县| 金溪县| 甘德县| 西平县|