Skip to content

獨立工作室的 AI Voice Cloning 完全建置手冊

——脫離平台束縛,用自己的聲音說自己的話

從零開始自架設本地語音克隆系統,完整踩坑記錄


為什麼要這樣做?

現在市面上的聲音合成平台,不外乎兩種。

免費的 — 聲音千篇一律,你的影片跟別人的影片用的是同一個聲音,毫無辨識度。聽眾聽了三秒就知道你用哪個平台,特色從哪裡來?

收費的 — 按字數算錢,每次生成都在心裡默算這段話值多少錢,錄到一半還在猶豫要不要重錄。規模一大,每個月的帳單就是一個讓你皺眉頭的數字。

有沒有第三條路?

有。自己建。

用開源的 AI 模型,在自己的電腦上架設一套本地語音合成服務,用你自己的聲音,生成你自己的內容。不限字數、不收費、聲音是你的、風格是你的。這就是獨立工作室該有的樣子。


這套系統是什麼?

很多人第一次聽到「自己建TTS」會以為是要自己寫一個語音合成程式。

不是的。

這件事更接近「自己架一台伺服器」的概念:

層次是什麼你要做的事
AI模型語音合成的大腦,別人訓練好的下載來用
框架讓模型能跑起來的環境安裝設定
你的聲音給模型參考的樣本錄一段4~6秒的音頻
你的code串接輸入輸出的膠水這才是你寫的部分

架設完成後,你的電腦上會跑著一個有 Web 介面的本地服務。你可以在瀏覽器裡操作,也可以用程式呼叫它的 API,讓它成為你自動化流水線的一環。

本文使用的模型是 GPT-SoVITS,理由很簡單:中文效果頂尖、介面全中文、Voice Cloning 只需要 4~6 秒錄音、開源免費可商用。


你需要什麼?

硬體

這套系統對硬體要求不高。本文的實測環境是一台沒有獨立顯卡的普通筆電,純 CPU 運算。

配置生成100~200字的時間
有 NVIDIA 顯卡(6GB VRAM以上)約10~30秒
純 CPU約150~250秒

如果你的使用量不大,純 CPU 完全夠用。每天錄幾段影片配音,等個幾分鐘出音頻,完全在可接受範圍內。

軟體

  • Windows 10 / 11
  • Python(本文使用 3.11,原因後述)
  • Miniconda(Python 版本管理工具)
  • VS Code(開發環境)
  • Git

一個你必須先懂的概念:Python 虛擬環境

在開始安裝之前,有一個概念你必須先搞清楚,否則後面會踩很多坑。

Python 的套件管理是有「環境」概念的。

想像你的電腦裡有很多個獨立的倉庫:

你的電腦
├── 全域 Python 3.14(系統預設)
├── conda 環境 tts(Python 3.11,我們建的)
└── .venv(VS Code 有時候會自動建)

每個倉庫裡的套件完全獨立。裝在 A 倉庫的東西,B 倉庫找不到。

這就是為什麼很多人裝套件裝到懷疑人生:明明裝了,跑的時候還是說找不到。原因通常只有一個——裝在了錯的倉庫

GPT-SoVITS 需要 Python 3.11,但你的電腦可能已經裝了更新的版本(本文實測環境是 3.14)。解法是用 Miniconda 建立一個獨立的 Python 3.11 環境,跟系統的 Python 完全隔離,互不干擾。

這個概念理解了,後面的安裝步驟就不會覺得奇怪了。


安裝步驟

Step 1:安裝 Miniconda

在 VS Code 終端機執行:

bash
winget install Anaconda.Miniconda3

安裝完成後關閉 VS Code 重新開啟,讓環境變數生效。(本文作者秉持 all-in-one 的心態,所有操作都在 VS Code 的終端機內完成。當然你也可以用系統獨立的終端機執行,效果相同。)

重開後執行以下指令允許 PowerShell 執行腳本:

bash
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

確認 conda 安裝成功:

bash
conda --version

看到版本號就代表成功了。


Step 2:建立 Python 3.11 環境

接受 Anaconda 的服務條款(三行分別執行,每行跑完會詢問是否同意,輸入 Y 按 Enter 確認):

bash
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/msys2

建立專屬環境:

bash
conda create -n tts python=3.11 -y

啟動環境(之後每次都要做這步):

bash
conda activate tts

終端機前面從 (base) 變成 (tts) 就代表成功。


Step 3:下載 GPT-SoVITS

進入你的工作目錄,clone 專案:

bash
cd D:\你的工作目錄
mkdir tts-service
cd tts-service
git clone https://github.com/RVC-Boss/GPT-SoVITS.git
cd GPT-SoVITS

Step 4:安裝套件

bash
pip install -r requirements.txt

這步驟會下載很多套件,需要幾分鐘,讓它跑完。

⚠️ 踩坑記錄:版本衝突

requirements.txt 裝完後,有幾個套件版本會互相衝突,需要手動修正:

bash
# gradio 版本太新,降級
pip install gradio==4.44.0

# starlette 與 fastapi 版本問題
pip install "fastapi==0.115.0" "starlette>=0.37.2,<0.39.0"

# jinja2 版本問題
pip install jinja2==3.1.4

# 其他缺少的套件
pip install psutil pyyaml ffmpeg-python
conda install -c conda-forge editdistance

⚠️ 踩坑記錄:torchaudio 在 Windows 的問題

新版 torchaudio 在 Windows 上依賴 torchcodec,但 torchcodec 在 Windows 不支援。 需要安裝相容版本:

bash
pip install torchaudio==2.9.0 torch==2.9.0

⚠️ 踩坑記錄:NLTK 語言資源

第一次生成中英混合文字時,需要下載 NLTK 的英文語言模型:

bash
python -c "import nltk; nltk.download('averaged_perceptron_tagger_eng')"

Step 5:下載預訓練模型

GPT-SoVITS 需要幾個預訓練模型才能運作,總大小約 3GB,從 HuggingFace 下載:

bash
python -c "from huggingface_hub import snapshot_download; snapshot_download('lj1995/GPT-SoVITS', local_dir='GPT_SoVITS/pretrained_models')"

下載時間依網速而定,約 30 分鐘到 1 小時。如果中途卡住,直接 Ctrl+C 重跑,支援斷點續傳。

還需要建立語言偵測模型的快取目錄:

bash
mkdir GPT_SoVITS\pretrained_models\fast_langdetect

Step 6:啟動服務

每次使用的標準啟動指令:

bash
conda activate tts
cd D:\你的工作目錄\tts-service\GPT-SoVITS
C:\Users\你的使用者名稱\miniconda3\envs\tts\python.exe webui.py

為什麼要用完整路徑執行 Python? VS Code 有時候會自動啟用 .venv 環境,蓋掉我們的 tts 環境。 用完整路徑可以確保一定是用正確的 Python 執行,不會被干擾。

啟動成功後,終端機會出現:

Running on local URL: http://0.0.0.0:9874

此時系統會自動開啟瀏覽器並載入 http://localhost:9874,這代表你的本地端伺服器已經正式啟用,整套服務正在你自己的電腦上運行。


第一次生成你的聲音

準備聲音樣本

在開始之前,你需要一段自己的錄音作為參考音頻。

錄音建議:

  • 時長:5~10 秒
  • 環境:安靜的房間,關掉電風扇、冷氣
  • 設備:手機錄音就夠,現代手機麥克風品質足以應付 Voice Cloning。事實上作者第一次測試是直接用 NB 內建麥克風錄的……莫名的也行。
  • 內容:自然說話即可,不需要特別準備台詞
  • 格式:MP3 或 WAV 均可

錄好之後傳到電腦,存在固定位置(例如 D:\tts-service\my_voice.wav),之後每次使用都上傳這個固定檔案,不需要重新錄音。


開啟推理介面

  1. 瀏覽器開啟 http://localhost:9874
  2. 點選 1-GPT-SoVITS-TTS Tab
  3. 點選 1C-推理 子 Tab
  4. 按下橘色按鈕 「開啟TTS推理WebUI」
  5. ⚠️ 按下後可能 30 秒以上沒有反應,屬正常現象(本文是用一台舊型號 NB 跑的,加上沒有獨立顯卡,速度自然慢一些),耐心等待,不要重複點擊
  6. 啟動後會自動開啟新的瀏覽器分頁,載入 http://localhost:9872,這就是實際的語音生成操作介面

參數設定

推薦的沉穩財經風格參數:

參數建議值說明
語速1.1略快於正常語速,聽起來更有節奏感
句間停頓0.2秒句子間的自然停頓
top_k5越小越穩定,適合正式內容
top_p0.8保守模式,減少不自然的發音
temperature0.7~1.0越小越平板,越大越有感情起伏
按標點符號切割開啟這個非常重要,讓抑揚頓挫更自然

「按標點符號切割」 是影響自然度最大的設定。開啟後,模型會按照句號、逗號自然停頓,聽起來更像真人說話而不是機器唸稿。


中英混合的注意事項

中英混合是 TTS 最難處理的部分,切換點會有輕微頓挫感。

改善方法:在英文專有名詞前加一個逗號,讓模型有語言切換的緩衝。另外如果不想跟筆者一樣第一次錄音就有點「糊」的話,可以把英文品牌名稱拆開,例如 Space X(中間加空格),讓模型自然分段發音而不是硬唸成一個字:

# 原本
SpaceX 上市了

# 改善後
,SpaceX 上市了

這個小技巧能明顯改善切換時的頓挫感。


生成時間參考(CPU 模式)

文本長度預計時間
50字以內約50~80秒
100~200字約150~250秒
500字以上約10~15分鐘

⚠️ 重要: 生成期間不要操作瀏覽器。CPU 跑 TTS 時資源全部集中在運算,同時滾動頁面會搶占資源,導致音頻出現卡頓感。

建議的工作方式:按下生成後去做別的事,回來再聽結果。


輸出與儲存

生成完成後,介面上會出現播放器和下載按鈕。

  • 點擊下載,檔名為 audio.wav
  • 存放位置:瀏覽器預設下載資料夾
  • ⚠️ 每次生成下載都會覆蓋同一個檔案,滿意的版本請立即改名保存

整合進自動化流水線

GPT-SoVITS 提供 API 介面,可以直接用程式呼叫,不需要每次手動操作 Web 介面。

基本的呼叫方式:

python
import requests

response = requests.get("http://localhost:9880", params={
    "text": "今天要介紹的是...",
    "text_lang": "zh",
    "ref_audio_path": "D:/tts-service/my_voice.wav",
    "prompt_text": "你的參考音頻說的內容",
    "prompt_lang": "zh"
})

with open("output.wav", "wb") as f:
    f.write(response.content)

這樣整條影片生產流水線就可以全自動(文字生成的部分用 Claude 或其他 AI 平台都行,看個人習慣):

Claude 生成文字腳本

GPT-SoVITS API 生成語音

FFmpeg 合成影片

成品輸出

未來計畫

  • 服務雲端化 / MCP化:把本地的 TTS 服務部署到雲端伺服器,或包裝成 MCP 工具供 AI 直接呼叫。兩者本質相同,都是讓這套服務變成可以隨時遠端呼叫的 API,不再依賴本地 NB 開機。
  • 聲音微調訓練:用更多自己的錄音訓練專屬模型,進一步提升聲音相似度與自然度。

結語

從「被平台收費收到肉疼」到「在自己電腦上跑著一套語音克隆服務」,這中間只需要一個下午的時間(或者睡一覺起來繼續奮鬥半天的時間)和一些耐心踩坑。

坑是真實存在的。版本衝突、環境混亂、Windows 相容性問題——這些都是過程的一部分,也是為什麼這篇文章要把每個錯誤都記錄下來。

你不需要是工程師才能做這件事。你只需要願意一步一步來,遇到錯誤不要慌,把訊息貼給 AI 問就好。

聲音是你的。系統是你的。內容是你的。

這才是獨立工作室該有的樣子。


延伸閱讀


本文實測環境:Windows 11、無獨立顯卡筆電、Python 3.11、GPT-SoVITS 最新版
建置日期:2026年6月

Ascentek數位知識庫