---
title: "訓練自己的 AI 語音：硬體門檻、開源模型比較與 LoRA 微調"
description: "整理我訓練 AI 語音的經驗：訓練與推論的硬體需求差別、Qwen3-TTS 與 CosyVoice 等開源 TTS 模型的比較、LoRA 微調的實作步驟，以及中文發音的處理方式。"
canonical_url: "https://blog.markkulab.net/post/ai-voice-clone-lora-training-guide"
author: "Mark Ku"
author_url: "https://blog.markkulab.net/author/mark-ku"
site: "Mark Ku's Blog"
date_published: "2026-06-07 15:41:44 +0800"
category: "AI"
language: "zh-TW"
license: "CC BY 4.0"
license_url: "https://creativecommons.org/licenses/by/4.0/"
attribution: "轉載或引用請註明作者並附上原文連結"
---

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

## 前言

訓練一把自己的 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-TTS | CosyVoice 3 | BreezyVoice |
|----------|-----------|-------------|-------------|
| 參數量 | 1.7B | 1.5B | 基於 CosyVoice 2 |
| 中文 CER | 0.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 為例，基本的訓練指令如下：

```bash
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 優化）這類新技術正在讓流程更自動化，未來或許不用事先準備訓練資料，模型就能在推論時即時適應目標聲音。整體門檻應該會持續往下降。

## 參考資料

- [Qwen3-TTS Technical Report](https://arxiv.org/abs/2601.15621)
- [CosyVoice 3 Paper](https://arxiv.org/abs/2505.17589)
- [CosyVoice 3 Tech Guide](https://stable-learn.com/en/cosyvoice3-tech-guide/)
- [BreezyVoice GitHub](https://github.com/mtkresearch/BreezyVoice)
- [LoRP-TTS: Inference-Time LoRA](https://arxiv.org/abs/2502.07562)
- [TTS-ASR Self-Refining Framework](https://arxiv.org/abs/2506.11130)
- [Qwen3-TTS LoRA Fine-Tuning Guide](https://instavar.com/blog/ai-production-stack/LoRA_Finetuning_Qwen3_TTS_Custom_Voices)
- [Unsloth TTS Fine-tuning Guide](https://unsloth.ai/docs/basics/text-to-speech-tts-fine-tuning)

---

## 關於本文與作者

本文出自 [Mark Ku's Blog](https://blog.markkulab.net/post/ai-voice-clone-lora-training-guide)

授權條款： [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) — 轉載或引用請註明作者並附上原文連結

### 關於作者

**[Mark Ku](https://blog.markkulab.net/author/mark-ku)** — Software Solution Provider

- 10+ 年資深軟體工程師，現為 AI 應用 Builder
- 專注大型平台架構設計，從北美電商到AI SaaS訂閱收費系統
- 結合 AI Agent 與自動化，打造高效可演進的產品技術基礎

### 作者開發的免費工具

以下工具皆可免費使用：

- [免費 PDF 簽名工具](https://blog.markkulab.net/tools/pdf-sign): 線上 PDF 簽名工具，瀏覽器內完成手繪、打字、上傳簽名，可拖曳放置、縮放、下載。所有處理都在你的裝置完成，檔案不會上傳。
- [VS Code Refactory](https://blog.markkulab.net/tools/refactory): Refactory 是一款 VS Code 重構擴充套件：34 個重構動作、37 條 code smell 檢查、Code Health 儀表板、18 種語言、534 支測試。懂你的專案慣例：介面放哪、DI 註冊寫在哪、'use client' 該不該加；還會用 git 修改頻率 × 複雜度排出「該先修哪個檔案」，並一鍵把壞味道交給你自己電腦上的 Claude Code 修。免費使用，原始碼不離開你的機器。
- [DB-Kit 資料庫管理工具](https://blog.markkulab.net/tools/db-kit): DB-Kit 是一個用 Tauri + Rust + React 打造的輕量跨平台資料庫管理工具，用單一一致的介面同時管理 MySQL、MariaDB、PostgreSQL、SQL Server、Oracle、SQLite、MongoDB、Redis、Kafka、Elasticsearch 與 RabbitMQ 十一種資料來源：連線密碼以 OS keychain 加密、SSH Tunnel、完整 CRUD、視覺化查詢建構器、多結果集同時顯示、跨連線資料傳輸與比對同步、Excel / CSV 匯入匯出、執行計畫視覺化、ER 圖、排程備份、SQL 壓力測試（p50～p99 延遲百分位）、15 條規則的 SQL 審查、Kafka 訊息瀏覽與監控告警；繁中 / 英文雙語介面，內建 AI 助手（自然語言生成 SQL、AI 審查與調校建議）與命令列工具 dbk。免費開源（MIT），提供 Windows / macOS / Linux 安裝檔。
- [VS Code Super Mermaid](https://blog.markkulab.net/tools/super-mermaid): Super Mermaid 是一款 VS Code 擴充套件：開箱即用的漂亮 Mermaid 圖表，自動上色、即時預覽、滑鼠平移縮放、PNG / SVG 高解析匯出，內建 21 種範本與多種主題。免費開源（MIT）。
- [React Super Mermaid](https://blog.markkulab.net/tools/react-super-mermaid): react-super-mermaid 是一個開源 React 元件庫：一行 <MermaidViewer> 即可渲染漂亮的 Mermaid 圖表，內建 colorful / sketch 主題、平移縮放、圖內搜尋、SVG / PNG 高解析匯出。輕量、SSR 安全、完整 TypeScript 型別。免費開源（MIT）。
- [Jira / Confluence Super Mermaid](https://blog.markkulab.net/tools/jira-super-mermaid): Atlassian Forge app：在 Jira issue 與 Confluence 內文直接寫 Mermaid 語法，畫流程圖、時序圖、狀態機與甘特圖。11 種圖表、SVG / PNG 匯出、明暗主題、完整中日韓文字支援。取得 Runs on Atlassian 資格：圖表存在你自己的站台，app 不呼叫任何第三方服務。免費，即將上架 Atlassian Marketplace。
- [Mermaid 線上預覽](https://blog.markkulab.net/tools/mermaid-preview): 在瀏覽器裡寫 Mermaid、即時看圖，整張圖表壓進網址就能分享。免註冊、不上傳伺服器，相容 mermaid.live 的分享連結。
- [React Intl Phone Number](https://blog.markkulab.net/tools/react-intl-phone-number): react-intl-phone-number 是一個開源 React 元件：framework-agnostic、不依賴 antd，提供 E.164 進出、可搜尋國旗 / 國碼下拉、可配置驗證等級（strict / mobile-strict / loose）、可主題化 CSS 與 i18n，電話邏輯由 google-libphonenumber 驅動。輕量、完整 TypeScript 型別。免費開源（MIT）。
- [Uptime Kuma Cluster](https://blog.markkulab.net/tools/uptime-kuma-cluster): 把單機版 Uptime Kuma 改造成高可用叢集：OpenResty + Lua 智慧負載平衡、MariaDB 共享狀態、健康檢查與自動 Failover，附叢集管理 REST API，一行 Docker Compose 啟動。免費開源（MIT）。
- [特教專案](https://blog.markkulab.net/education): 為特殊教育學生製作的學習教材

### 每日 Podcast

- [Mark's Tech Insights 每日 AI 新鮮事](https://blog.markkulab.net/category/tech-news): 每日精選 AI 與科技趨勢，透過語音摘要快速掌握最新技術動態，涵蓋 AI 應用、軟體架構、DevOps 與工程實戰。 — RSS: https://blog.markkulab.net/feed.xml
- [AI股市蝦聊](https://blog.markkulab.net/category/ai-stock-chat): 每個交易日用 AI 分析台股盤勢，以雙人對話聊當天的盤中觀察與隔日預測。 — RSS: https://blog.markkulab.net/ai-stock-chat/feed.xml
- [開源好物週報](https://blog.markkulab.net/category/open-source-weekly): 每週從 Hacker News、GitHub、Reddit 聲量雷達精選免費開源工具，以雙人對話聊解決什麼痛點與怎麼快速上手。 — RSS: https://blog.markkulab.net/open-source-weekly/feed.xml

### 電子報

[訂閱電子報](https://blog.markkulab.net/subscribe) — 第一時間收到新文章通知，無垃圾信、隨時可取消訂閱。
