首頁

目前文章總數:242 篇

  

最後更新:2026年 07月 25日

0008. 複製聲音居然這麼簡單?GPT-SoVITS v2 語音複製大師:從零開始上手

日期:2026年 08月 22日

標籤: Python PyTorch CUDA FFmpeg GPT-SoVITS GPT-SoVITS v2 TTS Voice Cloning UVR5 ASR

摘要:生成式AI


應用所需:1. 一段已取得本人或聲音權利人明確授權的錄音(具有公開領域的)
     2. Windows 10 / 11 作業系統
     3. 建議使用 NVIDIA 顯示卡;僅使用 CPU 仍可執行,但訓練與推理時間會增加
     4. 已準備 GPT-SoVITS v2、FFmpeg 與對應的預訓練模型
解決問題:1. 如何將含有背景音樂、雜音的原始素材整理成可訓練的純人聲資料
     2. 如何完成音訊切割、ASR 辨識、逐句校對與資料集格式化
     3. 如何訓練 SoVITS 與 GPT 模型,並透過參考音訊生成指定文字
官方參考:RVC-Boss / GPT-SoVITS
注意事項:請勿複製未授權的聲音,或將生成音訊用於冒充、詐騙、誤導與侵犯他人權益的用途;公開作品建議明確標示為 AI 合成語音
本篇分為 5 大部分。
第一部分:GPT-SoVITS v2 介紹 + 用途 & 應用
第二部分:數據前置 - 去除背景音與提取純人聲
第三部分:聲音加工 - 切割、ASR 識別與文本對準
第四部分:模型訓練 + 生成結果
第五部分:遺留問題與討論(避坑與後續)






第一部分:GPT-SoVITS v2 介紹 + 用途 & 應用

Step 1:GPT-SoVITS v2 是什麼?

GPT-SoVITS 是一套少樣本語音合成工具,主要用途是從一小段目標人物的錄音中學習音色
再把輸入文字轉換成接近該人物聲線的語音。
※此工具有 MIT License,因此是開源免費工具

依照官方說明,只有約 5 秒參考音訊時,就能使用零樣本 TTS 快速體驗;
若準備約 1 分鐘以上且品質良好的資料進行微調,通常能進一步提升音色相似度與自然度。




GPT-SoVITS v2 特點如下:

項目 說明
1. 少樣本訓練 不需要錄製數小時的專業語料,也能建立個人化聲音模型
2. 跨語言支援 支援多國語言(中文、英文、日文、韓文、粵語等等)
3. 文字前端 v2 改善文字處理能力,對混合語言與中文讀音更友善
4. 低品質參考音訊 對網路來源、聲音較悶或高頻缺失的參考音訊有較好的容錯空間
5. 整合式 WebUI 從 UVR5 人聲分離、音訊切割、ASR、訓練到推理,都能在同一套介面完成


GPT-SoVITS v2 WebUI 首頁

Step 2:GPT、SoVITS 各自負責什麼?

GPT-SoVITS 並非 ChatGPT 接上語音模型
GPTSoVITS 分別處理語音生成流程中的不同任務

模型 主要工作 簡易理解
GPT 根據文字與語音語意,預測接下來的語音語意 Token 決定「這句話應該怎麼說」
SoVITS 將語意、音色等資訊還原成可播放的聲音波形 決定「用誰的聲音說出來」


因此,完整微調後會產生以下兩組權重:

SoVITS 模型:*.pth
GPT 模型:*.ckpt


推理時需要 同時選擇 [正確] 的 SoVITS 與 GPT 權重。
若兩者來自不同人物聲音,將容易出現音色不穩、咬字異常,甚至無法正常生成的狀況(聲音混亂)。

Step 3:應用場景

語音複製不只可以拿來「模仿某個人的聲音」,更適合用在本人授權、可追蹤來源的內容製作流程。

應用情境 說明
個人 Blog / 教學影片 使用自己的聲音快速補旁白,不必因修改一小句而重新錄製整段
遊戲與獨立動畫 在聲優授權範圍內製作角色原型、台詞試聽與多版本腳本
有聲書與 Podcast 建立一致的旁白音色,再進行人工審聽與後製
無障礙輔助 為因疾病失去說話能力的人保留本人聲音,但必須授權取得同意
多語言內容 使用同一音色產生不同語言內容,再由母語者檢查發音
這類工具最危險的地方,也正是它最方便的地方:只需要少量語音,就可能生成具有相似音色的內容。


因此 : 本篇只用自己的錄音當素材為說明如何使用 GPT-SoVITS v2

Step 4:本篇實作目標與環境需求

本篇目標: 是將一段含有背景聲的長音訊,整理成 GPT-SoVITS v2 可使用的聲音資料集,說明如何複製人聲
然後進行 SoVITS + GPT 微調,最後輸入一段從未錄製過的文字進行語音生成。

使用環境需求(這邊列出 Windows),可參考官方的配置建議

訓練:

Windows
● 支持 CUDA 的 nVIDIA 显卡,每张拥有至少 8G 以上显存
● 常见的不能使用的显卡:2060以前所有显卡
● Windows 10/11 系统
● ###如果没显卡的话会自动识别使用CPU训练,但慢的离谱



推理:

Windows
● 支持 CUDA 的 nVIDIA 显卡,每张拥有至少 4G 以上显存(未实测,3G刚好无法合成一句,所以推测4G应该可以)
● Windows 10/11 系统
● ###如果没显卡的话会自动识别使用CPU推理



本文採用 GPT-SoVITS WebUI 操作。由於專案仍會更新,若畫面名稱與本文略有差異,請以自己下載版本的介面與官方 README 為準。

Step 5:安裝教學

安裝可參考官方教學,官方提供了很豐富的手冊說明,基本上可以依照所需進行本地化安裝 / 容器化部署


本次 GPT-SoVITS v2 實作環境

第二部分:數據前置 - 去除背景音與提取純人聲

Step 1:前言 - 資料比參數更重要

聲音模型會把聲音檔案中的特徵一起學進去。若原始錄音包含音樂、殘響、風聲、鍵盤聲,模型可能不只學到人聲,也把這些內容當成目標聲音的一部分。
準備聲音檔案時,可以先依照此下原則準備:

建議 原因
只保留單一說話者 混入第二個人的聲音,容易造成音色漂移
音量保持穩定 忽大忽小會增加模型學習難度
情緒不要過度分散 資料量不多時,平穩語氣通常最容易得到穩定結果
避免嚴重破音 削波失真很難靠降噪修復
台詞內容要多樣 聲母、韻母、語速與停頓越完整,模型越容易學會新句子
寧可少而乾淨 一分鐘乾淨語音,往往比十分鐘充滿背景聲的素材更實用


如果是自己錄音,使用安靜空間、固定麥克風距離錄製,會比事後進行重度降噪更可靠。

Step 2:聲音檔分離 - 開啟 WebUI 操作

安裝 GPT-SoVITS 完成後,啟動 Web-UI 會出現以下畫面:

啟動位置:http://localhost:9874/


選擇 開啟人聲分離WebUI


Step 3:聲音檔分離 - 啟動

這時 CMD 會出現提示 WEBUI 位置

http://localhost:9873/




然後在瀏覽器開啟後,有以下畫面:


Step 4:聲音檔分離 - 執行聲音分離

如下圖,依序操作,預期會分離出 人聲背景聲

1. 上傳檔案 將自己準備的聲音檔案上傳
2. 輸出人聲、背景 選擇自己想的輸出位置,也可以預設如圖
3. 輸出聲檔格式 如果要清楚可以選擇 wav 但是檔案會非常大,依照所需選擇
4. 轉換 上述 3 項準備完成後,點擊執行




Step 5:聲音檔分離 - 分離完成

分離完成後會出現 2 個檔案 (聲音檔案越大執行越久)

instrument_您的聲音檔案名稱.wav : 這是背景聲
vocal_您的聲音檔案名稱.wav : 這是人聲


後續我們都用這個人聲進行 SoVITS + GPT 訓練,目標取得此聲音的訓練模型


第三部分:聲音加工 - 切割、ASR 識別與文本對準

Step 1:聲音切割 - 準備檔案

將第二部分 Step 5. 獲得的 人聲 檔案,放在自己本機的目錄下,例如我將檔案放在此目錄下:

G:\GPT-SoVITS\Test_Vocal_Remove_BackGround\vocal_test_vocal.mp3_10.wav




Step 2:聲音切割 - 執行切割

接著要進行聲音檔案切割,依序執行:

1. 回到初始啟動的 WebUI http://localhost:9874/
2. 分割的聲音檔案路徑配置 將 Step 1. 的聲音檔案目錄準備好,建議只保留要分割的檔案
  預設路徑 output/slicer_opt
3. 開啟語音切分 開始進行切分



※裡面的參數可以保留預設,具體用途上面都有說明,就跳過解釋。



執行完成後,會在 CMD 出現 執行完畢,請檢察輸出文件 訊息


Step 3:聲音切割 - 執行切割

檢查輸出結果,會觀察到原始的音檔,已經被切割小音檔,這是為了便於後續訓練使用,預設路徑:

output/slicer_opt




Step 4:聲音識別 - 進行語系識別

接著要進行聲音識別,依序填入設定,然後執行:

1. 輸入文件路徑 對應上一部的 output/slicer_opt
2. 輸出文件路徑 預設 : output/asr_opt
3. ASR 模型 自動語音辨識選擇中文 (依照音檔性質,非中文選另一個)
4. ASR 語言 依照聲音的內容來選擇對應



ASR (Automatic Speech Recognition) 補充:

ASR 的工作只是產生「初稿」,不能直接把結果送進訓練。以下內容特別容易辨識錯誤:

人名、地名、品牌名稱
英文縮寫與中英夾雜
數字、日期、單位
同音字與口語省略
語助詞、重複字與結巴
背景聲仍然明顯的片段






辨識完成後,會產生副檔名 .list 標注檔案,並如下提示: ASR任務完成
檔案位置:

output/asr_opt/slicer_opt.list




Step 5:聲音文本校準 - 啟動

接著要進行聲音校準,依序填入設定,然後啟動:

1. 標注文件路徑 上一部驟 .list 檔案生成位置: output/asr_opt/slicer_opt.list
2. 開啟音頻標注 WebUI 點即啟動



以下是 .list 標注檔補充說明:官方資料集格式如下:

音訊路徑|說話者名稱|語言|文字


範例:

您的切割的聲音檔案輸出路徑/output/slicer_opt/xxxx.wav|speaker01|zh|大家好,今天要測試語音生成。
您的切割的聲音檔案輸出路徑/output/slicer_opt/xxxx.wav|speaker01|zh|這一句是第二段訓練資料。
...
...
...
...以下略




Step 6:聲音文本校準 - 開始進行人工校準

這時 CMD 會出現提示 WEBUI 位置(本篇範例提供的位置,每次可能不同):
開啟瀏覽器訪問

http://localhost:9871/






文本對準是整個流程中最花時間、也最不能省略的步驟。
模型會把「聽到的聲音」與「你提供的文字」當成正確答案;錯一個字,就等於主動提供錯誤教材。

1. Text 是 AI 辨識出的理解,會有 Text0 ~ TextXXX 請全部校正
2. 聲音撥放 對應 Text
3. Save File 確認所有的 Text0 ~ TextXXX 後,進行保存




Step 7:聲音文本校準 - 校準完畢關閉

當校準完畢後可以將啟動的 WebUI 關閉,如下點擊




然後 CMD 就會提示: 音頻標注WebUI進程已終止


第四部分:模型訓練 + 生成結果

Step 1:模型訓練 - 設定模型名稱

回到 WebUI 最上方,這次選擇 1-GPT-SoVITS-TTS 分頁頁籤
然後在 實驗/模型名 輸入自己定義的名稱,以後如果要重複利用這個名稱便於辨識用

Test_Vocal




Step 2:模型訓練 - 特徵格式化訓練執行

往 WebUI 下方移動,接著要訓練格式化,將音訊與文字轉換成模型需要的特徵


如果前面步驟都有正確執行,那麼會是對應以下路徑:

文本標注文件 output/asr_opt/slicer_opt.list
訓練集音頻文件目錄 您的切割的聲音檔案輸出路徑/output/slicer_opt/




接著往下點擊 開啟訓練集格式化一鍵三連
※就是把上面的 文本分詞與特徵提取 , 語音自監督特徵提取 , 語意Token提取 依序執行的整合按鈕


Step 3:模型訓練 - 特徵格式化訓練完成

這個階段會需要一點時間,直到出現提示: 訓練集格式化一鍵三連已完成


Step 4:模型訓練 - SoVITS 訓練準備階段

SoVITS 訓練主要影響 音色與聲音 還原,以下是參數說明:

參數 說明
Batch Size 顯存不足時先降低
Epoch 並非越高越好,需透過不同檢查點試聽
儲存頻率 保留中間權重,方便比較
GPU 依照自己的顯示卡編號設定
FP16 依硬體支援與穩定性決定


初次使用時,可以使用預設值,後續生成不滿意,可以再依照上面的參數說明進行調整
如圖,依序選擇,最終進行: SoVITS訓練


Step 5:模型訓練 - SoVITS 訓練完成

此階段是考驗 GPU 算力的過程,會執行一段時間來訓練模型,如果出現 CUDA Out of Memory
可先降低 Batch Size、關閉其他占用顯存的程式,再重新執行。




訓練完成後 CMD 會提示 training done


Step 6:模型訓練 - GPT 訓練準備階段

再往下移動些,進行 GPT 訓練
GPT訓練主要影響 文字到語音語意的預測 ,資料量太少、文字錯誤或句型過度單一,都可能影響生成時的節奏與咬字。

參數 說明
Batch Size 依顯存狀況自行調整
總訓練輪數 Epoch 建議選擇預設值
儲存頻率 避免只留下最後一版


訓練完成後,將輸出的 .pth.ckpt 依照相同實驗名稱保存。

點擊執行: 開啟GPT訓練


Step 7:模型訓練 - GPT 訓練完成

執行時間相對比較快,主要用到 CPU 與記憶體,不容易出現 VRAM 不足的問題
訓練完成後 CMD 會提示 training done


Step 8:聲音合成 - 進行聲音推理

這時要將剛剛訓練好的 GPT 與 SoVITS 的模型做參數設定,如下圖,進入 1C推理 分頁籤
然後將模型進行下拉是選單的選擇:

GPT 模型列表:GPT_weights_v2Pro/Test_Vocal-e15.ckpt
SoVITS模型列表:SovITS_weights_v2Pro/Test_Vocal_e8_s120.pth


然後點擊執行: 開啟TTS推理WebUI


Step 9:聲音合成 - 進入TTS推理WebUI

開啟後, CMD 會提示開啟的 WebUI ,開啟瀏覽器訪問:

http://localhost:9872/





然後選擇 1 個剛剛分割的音檔 (3~10秒間)


※補充:如果照前面的範例操作應可在 /output/slicer_opt 中,有切割檔案


Step 10:聲音合成 - 填寫文本

然後依照上傳的分割聲音檔,手動填入對應的文本


Step 10:聲音合成 - 生成完成

最後到下方依序進行填入:

1. 需要合成的文本 填上想要聲音合成後說出的內容
2. 合成的語種 依照 GPT 與 SoVITS 的語系填上
3. 合成語音 點擊後依照文本,生成語音


文本來源,聯合新聞網(2026-07-25 17:09 聯合報):https://udn.com/news/story/7266/9650741

中東戰事擴大,紅海危機升溫,國際油價飆漲,中油25日宣布27日凌晨零時起調漲國內油價,汽油、柴油價格每公升各調漲0.7元及0.5元。
這是中油自4月凍漲以來首次調漲國內汽柴油售價。





生成後,可以進行撥放合成的音檔,並且可以點擊 ↓ 下載這份合成後的音檔


Step 11:聲音合成 - 驗證成果

因為聲音有授權的問題,因此後續有用 公有領域數據集 的可安全商用、免版權費的公開音檔來源,進行合成聲音

中東戰事擴大,紅海危機升溫,國際油價飆漲,中油25日宣布27日凌晨零時起調漲國內油價,汽油、柴油價格每公升各調漲0.7元及0.5元。
這是中油自4月凍漲以來首次調漲國內汽柴油售價。


若無法從網頁撥放可以點擊下載

第五部分:遺留問題與討論(避坑與後續)

Step 1:為什麼生成結果不像?

可能訓練生成語音的結果相似度低,這時不一定代表模型架構或訓練參數有問題。
建議依照「資料 → 標註 → 參考音訊 → 模型 → 推理參數」的順序排查。

問題 可能原因 優先處理方式
音色不像 資料太少、多人混音、參考音訊不佳 補充乾淨且單一說話者的素材
咬字錯誤 ASR 標註錯、罕見字或中英混合 修正 .list,推理文字加入合理標點
聲音忽高忽低 訓練資料音量差異過大 重新整理資料並溫和正規化
金屬感明顯 原始音訊有壓縮失真或過度降噪 換用較乾淨的原始素材
長句音色漂移 單次輸入過長或切句方式不合適 將內容拆成較短、語意完整的句子
語氣太平 訓練與參考音訊情緒單一 準備有授權且品質一致的情緒資料
訓練後反而變差 過度訓練或資料品質不一 比較較早 Epoch,重新清理資料


以上方向是優化的考量方案

Step 2:資料量要多少才夠?

官方主打 5 秒零樣本與約 1 分鐘少樣本微調,但「一分鐘」不是保證品質的魔法數字。

關鍵:資料品質、發音涵蓋、錄音一致性與使用情境,通常比單純累積分鐘數更重要。



可以用下列方式逐步實驗:

階段 資料策略 目標
快速驗證 5~10 秒乾淨參考音訊 確認零樣本效果與環境是否正常
第一版微調 約 1~3 分鐘高品質語音 確認音色是否明顯提升
品質強化 增加發音多樣、情緒一致的素材 改善罕見讀音與長句穩定性
情緒版本 將平穩、開心、嚴肅等資料分組 比較單模型與分開訓練的差異


不要將大量低品質資料直接混入既有資料集。每增加一批素材,都應保留版本並使用相同測試句進行 A/B 比較。

Step 3:現存問題 - 跨語言與中文多音字問題

v2 支援中文、英文、日文、韓文與粵語,也能嘗試跨語言生成,但支援不等於每個人物、每句內容都會自然。
當目標人物的訓練資料完全沒有某種語言時,生成結果可能保留音色,卻帶有不自然的口音或節奏。

中文還會遇到多音字、數字與符號正規化問題,例如:

「銀行」與「行走」的「行」
「重新」與「重量」的「重」
2026、8/22、3.14、RTX 5070 等數字與符號
GPT-SoVITS、CUDA、AI 等英文縮寫


使用時不能 100% 保證生成自然

Step 4:授權、揭露與防止濫用

語音資料屬於高度個人化的生物特徵。即使某段影片可以公開觀看,也不代表可以任意下載、訓練並用該人物的聲音生成新內容。

發布前檢查 說明
是否取得授權 明確確認資料、訓練、生成與發布的允許範圍
是否清楚揭露 對外發布時標示為 AI 合成或模擬語音
是否可能造成誤認 不讓觀眾誤以為是真人發言、代言或承諾
是否含敏感內容 不生成詐騙、政治誤導、冒充、騷擾與未授權成人內容
是否可要求刪除 保存資料來源與模型版本,建立撤回授權後的刪除流程
是否需要保護模型 不隨意公開可直接冒用他人的權重與高品質參考音訊


最安全的實作方式,是只訓練自己的聲音,或使用 公有領域數據集 開放授權使用的聲音資料。
尋求安全並開放授權的聲音檔案,是 後續我們要分享的文章