用過 GPT-SoVITS 後,我感覺到善良真的是一種選擇。
在這之前,筆者嘗試過 clone-voice、MockingBird 等複製聲音的 AI 工具。但他們英文的表現尚可,中文的結果真的慘不忍睹。
儘管 GPT-SoVITS 在中文領域尚有進步空間,但已經足夠驚艷了(而且開源免費,上手難度低)。
【免責聲明】:教學只是示範一種思路,沒有任何不良引導,請勿未經許可使用他人音訊資源用於個人學習外其他目的,使用軟體需遵守軟體相關條款協議。
小提醒:本篇文章的操作時間約 30 分鐘,若對這個主題感興趣,建議先保存下來,或 Follow 我的部落格。
文章大綱
STEP 1: 安裝 GPT-SoVITS
STEP 2: 提供訓練的聲音素材
STEP 3: 檢查語音識別是否準確
STEP 4: 將訓練的資料格式化
STEP 5: 微調訓練
STEP 6: 推理,輸入文字讓 AI 生成聲音
▋ 結語
STEP 1: 安裝 GPT-SoVITS
考量到讀者所使用的作業系統不同,本篇文章會使用 Colab 來做示範,讓大家透過 Google 雲端資源輕鬆入門。
但如果你還是想要在自己的電腦安裝:
- Windows: 可以直接下載官方整合包,解壓縮後點擊 go-webui.bat 即可啟動。
- Mac: 儘管官網文件中有 Mac 版本的教學,但坑多到讓人懷疑人生,就算改用 Docker 還是會遇到一堆問題,因此建議你直接使用 Colab 操作。
下面連結是筆者調整後,實測可直接運行的版本: https://colab.research.google.com/drive/1Yff7mRQgKeqXJ4oB8DyT_onigVIBo48l?usp=sharing
如果順利看到上圖畫面,點擊「執行階段 → 全部執行」就會開始下載、安裝程式。
過程中會跳出各種警告、授權的警示窗,大家可以自行評估風險;不過原則上要全部允許才能執行,不然根本無法與 Google Drive 溝通。
等資源下載完後,將「啟動程式」的面板展開,你會在下方看到「Running on public URL: xxx」的網址,點擊後就會進入網頁的操作畫面。
如果能看到下面的網頁,恭喜你!安裝成功了!
STEP 2: 提供訓練的聲音素材
我們需要準備一段聲音素材給 AI 訓練,建議符合以下規格:
- 1~2 分鐘的聲音素材(多一些更好)
- 目前僅支援「中文」訓練
- 僅接受「.wav」檔
- 盡可能提供無背景噪音的聲音
準備好對應的素材後,我們把視角拉回 Colab,在左側的工作區點擊「drive → MyDrive」,在自己的雲端硬碟新增一個「voice_files」的資料夾,並在下面建立兩個資料夾:
- raw: 原始聲音
- slicer: 分割後的聲音
然後我們就可以把準備好的聲音檔拖拉到「raw」這個資料夾底下。
接著我們複製聲音檔 & 分割聲音的資料夾路徑
- /content/drive/MyDrive/voice_files/raw
- /content/drive/MyDrive/voice_files/slicer
把路徑貼到 GPT-SoVITS 網頁上後,點擊「Start audio slicer」,等待「Audio slicer output log」出現「切割结束」
切割完成的文件就會在「slicer」資料夾下。
完成後把分割聲音的資料夾路徑(/content/drive/MyDrive/voice_files/slicer)貼到 GPT-SoVITS 的「Batch ASR (Chinese only) input folder」下。接著點擊「Start batch ASR」,等「ASR output log」出現「ASR任务完成」即可(需要一段時間)。
完成的檔案在「GPT-SoVITS」的「output/asr_opt」資料夾下。
我們把他移動到 voice_files 路徑下方便後續操作。
STEP 3: 檢查語音識別是否準確
複製 slicer_list 的路徑(/content/drive/MyDrive/voice_files/asr_opt/slicer.list)貼到「.list annotation file path」,並勾選「Open labelling WebUI」。
我們接下來要為語音識別好的文件打上標記,回到 Colab,打開新的 Public 連結(原本 GPT_SoVITS 的畫面不要關掉)。
在這個界面中,你可以檢查語音識別是否正確,並對其優化。
STEP 4: 將訓練的資料格式化
回到一開始的 GPT-SoVITS 網頁,點擊「1-GPT-SoVITS-TTS」填上 Model 名稱。
接著在「Text labelling file」放上打標檔案的路徑(/content/drive/MyDrive/voice_files/asr_opt/slicer.list),並於「Audio dataset folder」放上音頻切割後的資料夾路徑(/content/drive/MyDrive/voice_files/slicer)。
點擊「Start one-click formatting」,等待右側出現「一键三连进程结束」訊息。
STEP 5: 微調訓練
點擊「1B-Fine-tuned traning」,依序點擊「Start SoVITS training」、「Start GPT traing」,這個階段也需要耐心等待。
完成的當案會出現在「GPT_weights」和「SoVITS_weights」資料夾,建議下載一份,畢竟走到這一步很累啊(目前儲存的資料夾再重新連結後會刷新消失,如果無法在時間內下載完,下次連線時從 STEP 5 開始就好)。
STEP 6: 推理,輸入文字讓 AI 生成聲音
終於到最後一步了,進入「1C-inference」分頁,點擊「refreshing model paths」後,就會看到剛剛訓練好的模型。
接著點擊「Open TTS inference WEBUI」。
回到 Colab 點擊 public 連結。
就可以透過網頁輸入文字讓 AI 生成聲音了,下圖是對介面的簡易說明。
生成好的音頻可以直接下載,大家可以點擊試聽看跟我原本的聲音有幾成相似。
下面放上我真實的聲音來比對,我個人覺得音色非常接近。
▋ 結語
如果有人能跟著我的文章做一遍,那你真的是一個狠人,因為這篇教學連我自己都寫到快崩潰了。
其實我一直猶豫是否要發布這篇教學文,因為過去曾有詐騙集團靠 AI 複製聲音來語音詐騙。
但後來想了想,只要有心,這項技術並沒有那麼難;讓更多人知道這項技術的存在,也許還能減少大家被詐騙的可能性。
技術本身沒有善惡之分,存粹看用的人如何操作;像這個工具對有錄影片需求的朋友來說就是一大福音,只要準備好文字稿,就能請 AI 用我們的聲音來表達。
如果你跟筆者一樣容易講話卡螺絲,但又有錄不露臉教學影片的需求,相信善用工具能大幅提升你的工作效率。
如果這篇文章對你有幫助,可以對文章拍手讓我知道 👏🏻,也歡迎點擊「Follow」來追蹤我~
▶︎ 如果這篇文章有幫助到你
1. 可以點擊下方「Follow」來追蹤我~
2. 可以對文章拍手讓我知道 👏🏻
你們的追蹤與鼓勵是我繼續寫作的動力 🙏🏼
▶︎ 如果你對工程師的職涯感到迷茫
1. 也許我在iT邦幫忙發表的系列文可以給你不一樣的觀點 💡
2. 也歡迎您到書局選購支持,透過豐富的案例來重新檢視自己的職涯