獨立工作室的 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 終端機執行:
winget install Anaconda.Miniconda3安裝完成後關閉 VS Code 重新開啟,讓環境變數生效。(本文作者秉持 all-in-one 的心態,所有操作都在 VS Code 的終端機內完成。當然你也可以用系統獨立的終端機執行,效果相同。)
重開後執行以下指令允許 PowerShell 執行腳本:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser確認 conda 安裝成功:
conda --version看到版本號就代表成功了。
Step 2:建立 Python 3.11 環境
接受 Anaconda 的服務條款(三行分別執行,每行跑完會詢問是否同意,輸入 Y 按 Enter 確認):
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建立專屬環境:
conda create -n tts python=3.11 -y啟動環境(之後每次都要做這步):
conda activate tts終端機前面從 (base) 變成 (tts) 就代表成功。
Step 3:下載 GPT-SoVITS
進入你的工作目錄,clone 專案:
cd D:\你的工作目錄
mkdir tts-service
cd tts-service
git clone https://github.com/RVC-Boss/GPT-SoVITS.git
cd GPT-SoVITSStep 4:安裝套件
pip install -r requirements.txt這步驟會下載很多套件,需要幾分鐘,讓它跑完。
⚠️ 踩坑記錄:版本衝突
requirements.txt 裝完後,有幾個套件版本會互相衝突,需要手動修正:
# 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 不支援。 需要安裝相容版本:
pip install torchaudio==2.9.0 torch==2.9.0⚠️ 踩坑記錄:NLTK 語言資源
第一次生成中英混合文字時,需要下載 NLTK 的英文語言模型:
python -c "import nltk; nltk.download('averaged_perceptron_tagger_eng')"Step 5:下載預訓練模型
GPT-SoVITS 需要幾個預訓練模型才能運作,總大小約 3GB,從 HuggingFace 下載:
python -c "from huggingface_hub import snapshot_download; snapshot_download('lj1995/GPT-SoVITS', local_dir='GPT_SoVITS/pretrained_models')"下載時間依網速而定,約 30 分鐘到 1 小時。如果中途卡住,直接 Ctrl+C 重跑,支援斷點續傳。
還需要建立語言偵測模型的快取目錄:
mkdir GPT_SoVITS\pretrained_models\fast_langdetectStep 6:啟動服務
每次使用的標準啟動指令:
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),之後每次使用都上傳這個固定檔案,不需要重新錄音。
開啟推理介面
- 瀏覽器開啟
http://localhost:9874 - 點選 1-GPT-SoVITS-TTS Tab
- 點選 1C-推理 子 Tab
- 按下橘色按鈕 「開啟TTS推理WebUI」
- ⚠️ 按下後可能 30 秒以上沒有反應,屬正常現象(本文是用一台舊型號 NB 跑的,加上沒有獨立顯卡,速度自然慢一些),耐心等待,不要重複點擊
- 啟動後會自動開啟新的瀏覽器分頁,載入
http://localhost:9872,這就是實際的語音生成操作介面
參數設定
推薦的沉穩財經風格參數:
| 參數 | 建議值 | 說明 |
|---|---|---|
| 語速 | 1.1 | 略快於正常語速,聽起來更有節奏感 |
| 句間停頓 | 0.2秒 | 句子間的自然停頓 |
| top_k | 5 | 越小越穩定,適合正式內容 |
| top_p | 0.8 | 保守模式,減少不自然的發音 |
| temperature | 0.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 介面。
基本的呼叫方式:
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月