Mark Ku's Blog

前言

訓練一把自己的 AI 語音,常見的幾個顧慮是:需要高階顯卡嗎?語音複製穩不穩定?中文發音的坑多不多?這篇整理我自己的經驗,從硬體需求、主流開源模型比較、LoRA 微調實作,到中文發音的處理方式,把整個流程記錄下來。

近一兩年 LoRA 微調逐漸成熟,加上 CosyVoice 3 等開源模型出現,用消費級硬體做出堪用品質的聲音,門檻已經比以前低不少。

一、硬體與訓練門檻

「8GB VRAM 就能跑」這句話常被誤解,這裡要先區分一件事:推論(Inference)和訓練(Training)的需求並不一樣。

  • 推論:單純拿現成模型生成語音,8GB VRAM 大致足以應付多數 TTS 模型(如 Qwen3-TTS 1.7B、CosyVoice 0.5B)
  • LoRA 微調:我自己是用 RTX 5070 Ti(16GB) 跑 Qwen3-TTS LoRA,就能訓出可用品質的聲音,16GB 消費級顯卡就夠了。
  • 全參數微調:需要工業級資源(CosyVoice 原始預訓練使用 64 張 V100-32GB),個人通常不用考慮

之所以 16GB 能跑,關鍵是 LoRA 只更新少量低秩參數,主要的顯存開銷來自基礎模型權重與啟用值;TTS 模型本身(1.5B~1.7B)並不算大,搭配適中的 batch size 與序列長度,16GB 就能塞得下。

以下是我在 RTX 5070 Ti(16GB)上跑 Qwen3-TTS LoRA 各階段的實測顯存用量:

階段實測 VRAM 用量16GB 餘裕
LLM r64 訓練(batch 2)~10.6 GB剩 ~5GB
Flow r64 all-linear 訓練~8 GB剩 ~8GB
試聽合成(fp16 載整個模型)~5 GB很寬鬆

可以看到即使是吃最重的 LLM r64 訓練階段,峰值也只到約 10.6GB,16GB 還有約 5GB 餘裕。換句話說 16GB 不是「勉強塞進去」,而是相當寬鬆,要再拉大一點 batch 或 rank 都還有空間。

看不懂表格的名詞?這段給你

  • r64 / r32(rank):這是 LoRA 的「容量旋鈕」。LoRA 不會去動原本龐大的模型,而是外掛一小塊可訓練參數,rank 就是這塊外掛有多大。數字越大,能學到的聲音細節越多,但佔的顯存、訓練時間也越多,資料不夠時還更容易「死背」訓練樣本(過擬合)。r64 就是 rank=64,r32 是 rank=32,外掛參數量大約是 r64 的一半,更省顯存、訓練更快,對聲音的還原度通常只差一點點。資料量不大(10-30 分鐘)時,r32 往往就夠用、也比較不會過擬合;想多榨一點細節再上 r64。我表格跑的是 r64,峰值才 10.6GB,所以換成 r32 會更輕鬆。
  • LLM 階段 / Flow 階段:Qwen3-TTS 內部其實是兩個模型接力。LLM 負責「文字 → 要說什麼、怎麼斷句的節奏」,Flow(flow matching 聲學解碼器)負責「把它變成實際的聲音波形」(音色、質感)。兩個都用 LoRA 微調,聲音才會像本人。
  • all-linear:指把 LoRA 掛到模型「所有線性層」上,而不是只掛在注意力的少數幾層。覆蓋越廣、學得越完整,參數也略多,這就是為什麼 Flow all-linear 那欄會單獨列出來。

至於 QLoRA(量化後的 LoRA),理論上能把 VRAM 需求再降約 75%,但目前在 TTS 領域還不太成熟。Unsloth 官方也建議 Qwen3.5 系列不要使用 4-bit QLoRA,因為量化誤差會明顯影響語音品質。既然 16GB 跑原生 LoRA 已經可行,多數人其實也用不到 QLoRA。

訓練方式VRAM 需求適合對象成熟度
推論8GB+所有人穩定
LoRA 微調16GB+(實測)個人 / 小團隊穩定
QLoRA理論 6-8GB—穩定,品質沒這麼好
全參數微調數百 GB+企業 / 研究機構穩定但成本高

簡單說,如果想做聲音客製化,一張 16GB VRAM 的消費級顯卡(如 RTX 5070 Ti、或 RTX 4060 super 12GB)就能起步。想要更大的 batch、更高 rank、訓練更快,再往 24GB(RTX 3090 / 4090)升級即可,但那是「想更快更好」的選項,不是入門門檻。

二、開源 TTS 模型比較:Qwen、CosyVoice

選哪個基礎模型,會影響聲音的口音、品質上限,以及後續訓練的難易度。以下是我實際測試過的幾套:

Qwen3-TTS(阿里巴巴,2026 年 1 月發布)

功能算完整,支援十種語言,說話人相似度約 0.95,中文字元錯誤率(CER)約 0.77%。不過以我的經驗,生成的聲音仍帶有較明顯的「中國腔」,而且繁體中文有 tokenizer byte-fallback 的問題,遇到未收錄的字(OOV)時容易發音錯誤。

BreezyVoice(聯發科,基於 CosyVoice 2)

台語語音效果很好(MOS 達 5.0),支援注音標註消歧。比較大的限制是官方只提供推論腳本,不支援二次訓練,所以沒辦法用它來客製化自己的聲音。

CosyVoice 3(阿里巴巴,2025 年 12 月)

目前整體比較均衡的選擇。參數量 1.5B,訓練資料達百萬小時等級,中文 CER 約 0.71%。它的聲音比較接近台灣腔,情緒控制也相對自然,另外有「發音修補」功能,可以直接用拼音覆蓋錯字來修正發音,不必重訓。

比較項目Qwen3-TTSCosyVoice 3BreezyVoice
參數量1.7B1.5B基於 CosyVoice 2
中文 CER0.77%0.71%—
口音傾向偏中國腔較接近台灣腔台語最佳
二次訓練支援 LoRA支援 LoRA僅推論
發音修補需前處理內建拼音覆寫注音標註
情緒控制一般較自然—

如果目標是客製化訓練加上繁體中文場景,以目前來看 CosyVoice 3 是比較務實的起點。

三、LoRA 微調實作

為什麼不直接用聲音複製(ICL)

零樣本語音複製(In-Context Learning)確實方便,只需 3-10 秒參考音訊就能用,短句效果也不錯。但句子一長,音色就容易飄掉,這是目前各家模型的共同問題。把參考音訊延長到約 20 秒可以改善穩定度,不過要達到比較穩定的品質,LoRA 微調還是比較可靠的做法。

實作步驟

Step 1:準備訓練資料(最耗時的一步)

社群比較常見的建議訓練資料量是 10-30 分鐘。需要準備乾淨、無背景噪音的個人音檔,並切割成 5-15 秒的短句。

以我的經驗,訓練本身大約 30 分鐘到 1 小時就能跑完,真正花時間的反而是整理音檔,清除雜音、切割段落、校對文字稿,這些前置工作大概佔了整個流程 70% 以上的時間。

Step 2:資料標註

將每個音檔對應到準確的文字稿,格式通常是一個 manifest 檔案:

audio_001.wav|你好,歡迎來到我的技術部落格。
audio_002.wav|今天要分享的是關於語音合成的實戰經驗。

Step 3:執行 LoRA 訓練

以 CosyVoice 3 為例,基本的訓練指令如下:

python train_lora.py \
  --model_path pretrained/CosyVoice3-0.5B \
  --data_dir ./training_data \
  --output_dir ./output/my_voice \
  --lora_rank 64 \
  --epochs 50 \
  --batch_size 4 \
  --learning_rate 1e-4

Step 4:驗證品質

訓練完成後,可以用 TTS-ASR 自我精煉迴圈來做初步自動驗證:先讓模型生成語音,再用 Whisper 轉寫回文字,比對音素錯誤率。根據 2025 年的研究,這個方法在中英混合語境下能達到 55.88% 的相對錯誤下降。

不過最終品質還是得靠人耳判斷。自動化可以先篩掉明顯有問題的樣本,但語調是否自然、情緒是否到位,目前還是人比較擅長。

四、中文發音的處理

中文 TTS 比較麻煩的兩個問題:

  1. 多音字:「好好學習」的兩個「好」發音不同
  2. 特有詞彙:「軟體」vs.「軟件」,模型訓練語料以簡體中文為主,很多繁體用詞沒見過

傳統做法:三層前處理

輸入文字 → 字典覆寫(phrase override)
         → OpenCC 繁轉簡
         → g2pW 轉漢語拼音
         → 送入 TTS 模型

這個流程能解決大部分問題,但維護成本不低,每遇到一個新的發音錯誤,就得手動更新字典。多音字則靠 Polyphone BERT 或 g2pW 等神經網路模型來消歧。

CosyVoice 3 的做法:發音修補

CosyVoice 3 內建的發音修補功能,可以直接在輸入文字中用拼音覆蓋特定字的發音:

# 原始輸入(「軟體」的「體」可能被唸錯)
軟體工程師的日常

# 使用發音修補(拼音標註)
軟<phoneme ph="ti3">體</phoneme>工程師的日常

根據官方測試,這個方法的修正率接近 100%,不需要改程式碼、也不需要重新訓練,直接在輸入端就能處理。對繁體中文使用者來說滿實用的。

結論

整理一下訓練個人 AI 聲音的三個重點:

  1. 硬體:16GB VRAM 消費級顯卡(如 RTX 5070 Ti)即可起步,不必非得 24GB
  2. 模型:以 CosyVoice 3 為基礎,音質、口音和可訓練性比較平衡
  3. 資料:花時間錄製 10-30 分鐘的高品質訓練音檔

雖然 AI 已經能透過 TTS-ASR 迴圈做部分自我訓練與驗證,但訓練資料的整理和最終效果的人耳判斷,目前還是難以完全取代。

另外可以留意的是,LoRP-TTS(推論時即時 LoRA 優化)這類新技術正在讓流程更自動化,未來或許不用事先準備訓練資料,模型就能在推論時即時適應目標聲音。整體門檻應該會持續往下降。

參考資料

作者

Mark Ku

10 年以上的軟體工程師,做過北美電商與 AI SaaS 訂閱收費系統。閱讀更多

覺得這篇有幫助?

作者做的免費工具、每日 Podcast 與電子報,都在這裡。

Mark Ku · 本文採用 CC BY 4.0 授權,轉載請註明作者並附上原文連結。

留言

訂閱電子報

訂閱後即時收到新文章通知,不錯過任何技術分享。

提交即表示同意接收電子報,隨時可。

站長的公司

Vibe Coding 架構規劃與陪跑

團隊已經用 AI 做出小工具,卻怕壞了沒人修、需求一變就不敢改?226 Network 幫你把程式放進 Git、密碼另外保管、排程搬上固定主機,再補上交接文件與測試。

熱門文章

View all
Mark Ku
··631

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案
Mark Ku
··471

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南
Mark Ku
··265

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略
Mark Ku
··216

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1
Mark Ku
··208

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取
Mark Ku
··207

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調