AI聲音克隆教程

大家好,我是 Jack。
因 ChatGPT、Stable Diffusion 讓 AI 在文本、圖像生成領域火出了圈。
但 AI 在生成方面的能力,可不僅如此,音頻領域也出現(xiàn)了很多優(yōu)秀的項目。
我用我本人的音頻數(shù)據(jù),訓練了一個 AI 模型,生成了幾段歌曲,效果已經(jīng)在我最新一期的視頻中展示了,感興趣的可以看下:
https://www.bilibili.com/video/BV1x24y147yq
視頻、教程制作不易,跪求三連支持,一個免費的贊也行~
勿用技術做惡
勿用技術做惡,必須放在第一個來說。
請勿用該技術從事詐騙等違法行為,請遵守《互聯(lián)網(wǎng)信息服務深度合成管理規(guī)定》等法律法規(guī)。
本教程僅供交流學習使用,同時,本人也不提供任何人的訓練好的音頻模型。
準備工作
視頻里所使用的技術是 so-vits-svc,是音頻轉(zhuǎn)音頻,屬于音色轉(zhuǎn)換算法,支持正常的說話,也支持歌聲的音色轉(zhuǎn)換。
項目不提供任何人的音頻訓練模型,所以想要體驗,必須先自己訓練模型。
顯卡建議使用 N 卡,且顯存 8G 以上,我的顯卡是 RTX 2060 S,訓練自己的模型大概用了 14 個小時。
訓練數(shù)據(jù)很關鍵,需要準備至少 1 個小時的音頻,越多高質(zhì)量的音頻數(shù)據(jù),效果越好。
比如我的本次訓練,就是使用了我往期視頻的音頻數(shù)據(jù),數(shù)據(jù)時長 1 個小時。
我家里的電腦是 Windows,所以本教程以 Windows 為例進行講解。
我將項目所需要的代碼、環(huán)境、工具,進行了打包,可以一鍵運行:
下載地址(網(wǎng)盤提取碼:qi2p):
https://pan.baidu.com/s/1Jm-p_DZ2IVcNkkOYVULerg?pwd=qi2p
當然,也可以直接用作者開源的代碼直接部署:
https://github.com/StarStringStudio/so-vits-svc
本項目不支持文本轉(zhuǎn)音頻,如果需要文本轉(zhuǎn)音頻,可以移步看看這個:
https://github.com/jaywalnut310/vits
1、準備干聲數(shù)據(jù)
訓練數(shù)據(jù)、還有預測推理的數(shù)據(jù),都必須是人物的干聲。
也就是說,不能包括背景音、伴奏、合聲等,所以無論是訓練和預測,都需要對數(shù)據(jù)進行處理。
這里用到的工具是 UVR5,我提供的整合包里包含了這個工具。
在 Windows 下可以直接使用,打開軟件,按照如下配置:

運行即可分離人聲和伴奏:

然后再按照如下配置,去除合聲:

有 Vocals_Vocals 后綴的音頻就是處理后的,這個音頻就可以用來訓練。

不過因為音頻太長,很容易爆顯存,可以對音頻文件進行切片,這個整合包里也提供了飲品切分工具 Audio Slicer,直接運行 slicer-gui.exe。
填寫輸入路徑,填寫輸出路徑,其它參數(shù)都默認即可,這樣你就會得到切分好的音頻段。
在項目的 so-vits-svc-4.0/dataset_raw 目錄下創(chuàng)建一個文件夾,比如我的是 jackcui_processed,將處理好的數(shù)據(jù)放到里面:

這樣數(shù)據(jù)的準備工作,手動配置的部分就完成了。
訓練模型
1、數(shù)據(jù)預處理
接下來可以直接運行我提供的整合包里的腳本 1、數(shù)據(jù)預處理.bat。
這個腳本就是按照步驟,運行各個 py 腳本:

大約跑個幾分鐘,就能處理完成,處理完畢后,會在 datset/44k 下生成一個文件夾,里面的數(shù)據(jù)如下圖所示:

2、模型訓練
直接運行 2、訓練.bat 即可開啟訓練。
如果你的顯卡夠好,可以增加 batch_size 提高訓練速度,對應的配置文件在 configs/config.json 文件里。
這個訓練時間很長,大概需要幾個小時的時間。
推理預測
推理預測同理,新運行 3、訓練聚類模型.bat 生成數(shù)據(jù) pt 文件。幾分鐘即可跑完。
然后修改 app.py 里的這一行:

訓練好的模型存放在了 logs/44k 目錄下,這里改為你訓練好的模型地址,以及對應的配置文件,最后是第三步生成的 pt 文件路徑。
記住這里 app.py 必須改好,否則第四步會報錯。
最后運行 4、推理預測.bat 文件。
程序會直接開啟一個 webui,將開啟的 url,直接復制到瀏覽器地址欄中打開即可。
就是一個簡單的 Web 頁面,里面的參數(shù),可以直接使用默認的,放入一個音頻,即可轉(zhuǎn)換音色,很簡單,這里就不展示了。
確認流程都跑通后,可以試著調(diào)整一些參數(shù),個人影響太大,主要還是看訓練數(shù)據(jù),也就是用軟件分離的干聲質(zhì)量。
最后
最后也再強調(diào)一下,請勿用技術做惡!
我的訓練數(shù)據(jù),只用了往期視頻的音頻文件,數(shù)據(jù)豐富度很差,都是敘事的語調(diào),缺少高低音的歌唱數(shù)據(jù)。
所以效果上,高低起伏的變化少了,聽起來就是,全是技巧,莫得感情。
但是如果用于普通對話的音色轉(zhuǎn)換,絕對是夠用了。
視頻結(jié)尾也展示了一個驚艷一些的效果,歌手的數(shù)據(jù)就豐富很多了,所以效果更好。
最近來了一些新關注我的小伙伴,簡單做個自我介紹。
90 后,帝都算法工程師,985 小碩,熱愛 coding,多年互聯(lián)網(wǎng)大廠從業(yè)經(jīng)驗。
Github 輕度用戶,中國區(qū)top100,開源了多個大型項目和教程,Star & Fork 35k+,幫助了數(shù)以萬計的讀者。

我的個人微信公眾號,經(jīng)常第一時間推送人工智能相關技術的最新進展、技術教程。還有深度學習等專業(yè)基礎知識,Python基礎等。
歡迎關注我的個人微信公眾號:

想要加AI聲音克隆交流群的小伙伴,可以關注我的個人微信公眾號。
關注后回復:AI聲音克隆,即可拉你進微信交流群,與志同道合的小伙一起玩AI繪圖。
期待你在這里有所收獲,有所感觸,悄悄拔節(jié),驚艷所有~