你是否曾想過打造一個屬於自己的 AI VTuber?看著主流的虛擬主播在線上互動,你可能也想動手做一個,卻被複雜的語音克隆與動態捕捉技術給勸退。

本篇文章將帶你一步步把 AI VTuber 的 Prototype(原型),從原本單調的「Edge-TTS 出聲、沒有臉」的狀態,升級成**「專屬克隆聲線 + Live2D 會動的臉 + 可推上 YouTube 直播」**的完整配置!

我們將基於 010-AI-VTuber 專案進行實作。在開始之前,建議可以先閱讀 AI-VTuber 是什麼-白話入門 來建立基礎的全貌觀念。本指南秉持一個核心原則:先完全使用免費素材把整條線接通,確定能動,再來考慮花錢升級!


運作原理:嘴巴會動的秘密

在動手之前,我們必須先看懂整條訊號線是怎麼接起來的。

其實,Live2D 模型的嘴巴並不是由程式碼直接去控制開合度,而是業界常用的一個聰明「偷吃步」:把 TTS(語料合成)產生的聲音,透過「虛擬音訊線」假裝成麥克風輸入餵給 VTube Studio。VTube Studio 一聽到聲音,就會自動根據音量進行唇形同步(Lip Sync),讓模型動起嘴巴。

整體的運作架構如下:

 觀眾留言 ─▶ main.py ─▶ LLM ─▶ 回覆文字
                                   │
                                   ▼
                          GPT-SoVITS(本地克隆) ─▶ 語音
                                   │
                                   ▼
                       VB-CABLE 虛擬音效卡 ─▶ VTube Studio(當成麥克風)
                                   │                  │ 依音量自動唇形同步
                                   │                  ▼
                                   │            Live2D 模型在動
                                   ▼                  │ 視窗
                              (也可放喇叭)        OBS 擷取 ─▶ YouTube

採購與素材清單(全部先挑免費的!)

為了不花一分錢就完成測試,我們在挑選素材時必須特別注意授權。以下是幫大家整理並查證過的免費安全清單:

1. 皮(Live2D 模型)

方案價格授權重點何時使用
Live2D 官方範例模型(如 Hiyori 等)免費年營業額 < ¥1000 萬日圓可商用/直播/營利;需在說明欄標註 Live2D 版權聲明;禁止再散布與 NSFW 內容。初期跑通流程首選
azukistudio「Hamu」(Booth)約 ¥2,400明確標示「直播+影片營利 OK,收益歸你」;需要標記作者來源。想要高辨識度時再購買
免費 freemium 模型$0⚠️ 許多免費版模型會註明「商用禁止」,使用前務必看清條款。請勿拿去營利
  • 官方範例下載: Live2D 官方範例模型下載 (下載後會得到可直接拖進 VTube Studio 的 moc3 + model3.json 完整封裝檔)。
  • ⚠️ 挑選模型的小撇步: 尋找日本素材時,請看清楚這些日文關鍵字:「商用利用 可/×」(可否商用)、「配信」(直播)、「収益化」(營利)、「クレジット表記」(需標記作者)、「再配布禁止」(禁止二次分發)。

2. 聲音(GPT-SoVITS 參考樣本)

  • Mozilla Common Voice 中文 zh-TW:這是採用 CC0 公眾領域的資料集,使用起來最安全。你可以到 Mozilla Common Voice 官網 下載。
  • GPT-SoVITS 的原始碼與預訓練權重皆為 MIT 授權,可商業使用
  • ⚠️ YouTube 規範提醒: 自 2025 年 5 月 21 日起,上傳含有 AI 語音克隆的內容時必須勾選「AI 合成揭露」。誠實揭露並不影響頻道營利,但不揭露可能會遭受處罰。使用 Common Voice 的匿名素材不對應到特定真實人物,是最安全的作法,也請避免克隆名人或知名聲優。

3. 工具軟體(均為免費)


手把手接線安裝步驟

請務必依照順序一步步設定,確保每一步驗證成功後再繼續往下進行。

Step A:先把「臉」單獨弄會動(暫不接聲音)

  1. 在 Steam 安裝並開啟 VTube Studio
  2. 載入官方免費模型(建議先使用內建或下載好的 Hiyori)。
  3. 確認模型會跟著你的視訊鏡頭移動(這一步先用實體鏡頭測試臉部追蹤,只要確保模型能動、能載入即可)。

Step B:安裝虛擬音訊線,用「聲音」讓 VTube Studio 嘴巴開合

  1. 安裝 VB-CABLE: 下載並解壓縮驅動包後,VBCABLE_Setup_x64.exe 按右鍵,選擇「以系統管理員身分執行」,點選 Install Driver。
    • 常見踩坑點: 許多人會不小心點到沒有 _x64VBCABLE_Setup.exe(那是 32 位元版本)。在 64 位元的 Windows 11 下點錯會靜默失敗,裝置完全不會出現在系統中。
    • 安裝成功後通常不一定要重開機,在 PowerShell 中輸入 Get-PnpDevice -Class AudioEndpoint 如果顯示 Status OK / CM_PROB_NONE 即可立即測試。
  2. 此時 Windows 的音效設定會多出:
    • 播放裝置:CABLE Input(在播放裝置分頁中可能顯示為「喇叭 (VB-Audio Virtual Cable)」)
    • 錄音裝置:CABLE Output
  3. 進入 VTube Studio 的「リップシンク設定(麥克風唇形同步)」:
    • 務必打開「マイクを使う(使用麥克風)」開關。這是第一個常遺漏的坑,沒打開的話模型絕對不會動。
    • 將「マイク(麥克風)」選擇為 CABLE Output (VB-Audio Virtual Cable)
    • 開啟「マイクプレビュー(麥克風預覽)」,此時播放聲音,如果看到綠色音量條在跳動,代表 VTube Studio 有順利接收到音訊。
  4. 綁定嘴巴參數: 進入設定 ➔ Live2D 模型參數設定 ➔ 找到 「Mouth Open」 區塊:
    • IN 的參數從 MouthOpen(臉部追蹤)改為 VoiceVolume(麥克風音量)
    • OUT 參數維持 ParamMouthOpenY
    • 觀念說明: IN 代表「觸發來源」(因為什麼而動),OUT 代表「被帶動的部位」(所以哪裡跟著動)。原本 IN 綁定 Face Tracking,沒開鏡頭時數值永遠為 0 嘴巴就不會動;改成 VoiceVolume 就能用聲音驅動。
  5. 測試技巧: 測試時請使用「人聲講話」來測試,不要播音樂。因為音樂的音量通常持續滿格,會導致 VoiceVolume 一直維持在最大值,模型的嘴巴會卡在全開狀態看起來像沒動;人聲有停頓與抑揚頓挫,嘴巴才能一開一合。
  6. 校準設定: 「音量ブースト(音量增幅)」如果設定為 40 太高,很容易讓音量頂滿,建議調到約 20~30。OUT 的上限如果原本是 2.3,可以改為 1.0,避免稍微有一點聲音就把嘴巴撐到最大限制。

完成此步驟後,只要有任何聲音播放到「CABLE Input」,VTube Studio 就能接收並同步開合嘴巴。


Step C:安裝 GPT-SoVITS 語音克隆(執行於本地 GPU)

  1. 下載官方的 Windows 整合包(內建 Python 與 CUDA 環境,不影響原本專案的 .venv)。
    • 推薦版本: GPT-SoVITS-v2pro-20250604.7z(標準版,非 nvidia50),最適合筆者所使用的 GTX 1660 (Turing)。
    • 下載來源: HuggingFace 上的 lj1995/GPT-SoVITS-windows-package(檔案約 8.19GB)。
    • 版本觀念: GPT-SoVITS 的版號並不代表時間先後。釋出順序為 v2 ➔ v3 ➔ v4 ➔ v2Pro(最新)。其中 v1/v2/v2Pro 屬於同一個輕量體系(省資源、速度快),v3/v4 則更吃資源。因此 v2Pro 是目前最新且最適合 GTX 1660 的版本
  2. 解壓縮到本機路徑:D:\AI-Tools\GPT-SoVITS\GPT-SoVITS-v2pro-20250604\
  3. 設定精度與模型切換: 更改 GPT_SoVITS\configs\tts_infer.yaml 中的 custom: 區塊:
    • 設定 version: v2Prot2s_weights_path: ...s1v3.ckptvits_weights_path: ...v2Pro/s2Gv2Pro.pth
    • 務必將 is_half: false(使用 FP32 精度)。GTX 1660 等 Turing 架構老顯卡,如果開啟 FP16 半精度(is_half: true),推理出來的聲音會是完全靜音(檔案長度正常但分貝數為 -91dB),這是硬體架構的硬傷。必須使用 FP32 才有聲音,代價是需要消耗更多顯存且速度較慢。
  4. 啟動 API: 先關閉瀏覽器以釋放更多 VRAM。執行 .\runtime\python.exe api_v2.py(預設會監聽 127.0.0.1:9880)。看到啟動訊息中顯示 version: v2Prois_half: FalseUvicorn running on ...9880 即代表成功。首句推理時會進行冷啟動,速度較慢屬正常現象。

⚠️ 本地顯卡效能重大現實(實測回報): 擁有 6GB VRAM 的顯示卡無法同時流暢運行 VTube Studio + GPT-SoVITS (FP32)。 在進行語音合成時,VRAM 會瞬間爆滿(剩餘 <350MB),導致運算溢出到系統記憶體,推理速度會從原本的 65 it/s 暴跌到 1.2 it/s(慢了約 50 倍),合成一句話要等上百秒。 結論: 在本地硬體限制下,實驗階段建議先將語音退回使用 edge-tts(設定見 Step E 備註)。GPT-SoVITS 本地克隆聲線方案建議等待部署至雲端 GPU 或更換顯卡後再行啟用。相關的設定與程式路由仍會完整保留,後續只需在 .env 修改一行即可無縫切回。


Step D:準備參考音檔

  1. 從 Common Voice 中文資料集中挑選乾淨的音檔。
  2. 開啟 validated.tsv 篩選已通過審核的片段。
  3. 篩選條件:gender = femaleup_votes 高、down_votes 0 ➔ 尋找長度約在 5 至 10 秒之間的句子。
  4. 找到對應的 clips/xxx.mp3 後進行試聽,確認無背景雜訊、咬字清晰。
  5. 使用 ffmpeg 將其轉為 32000Hz 單聲道 wav 格式:
    ffmpeg -i clips/xxx.mp3 -ac 1 -ar 32000 ref.wav
  6. 記錄下該音檔對應的逐字稿文字。

Step E:將聲音串接進專案程式中

打開 010-AI-VTuber/prototype/characters/hoshino.json,在 gptsovits 區塊中填入對應欄位:

  • ref_audio:填入上述 ref.wav絕對路徑
  • ref_text:填入該音檔的逐字稿內容

接著修改 prototype/.env

TTS_BACKEND=gptsovits

(原本為 TTS_BACKEND=edge

設定完成後執行 python prototype/main.py,角色的發音就會變成你克隆的專屬聲線。

  • 系統保護機制: 程式內建了安全退回機制,若 GPT-SoVITS 無法連線或未填寫參考音檔路徑,會自動降級回 edge-tts 輸出,不會造成程式崩潰中斷。

Step F:音訊路由與推流設定

main.py 已經透過 sounddevice 庫將產生的音訊導向了虛擬音效卡(VB-CABLE)。實作時的幾個關鍵坑點:

  1. 取樣率對齊: 我們將輸出的語音統一轉成 48000Hz,並優先選擇 WASAPI 驅動的 CABLE Input。因為 VB-CABLE 原生運作在 48000Hz,如果被送往 DirectSound 驅動的 CABLE Input(預設 44100Hz),取樣率對不上會導致 VTube Studio 的音量綠色條完全不跳動。
  2. 避免音頻迴圈與回音: 請勿將語音同時輸出到「實體喇叭 + CABLE Input」兩路。這兩條獨立的串流會在系統中重疊,產生嚴重的環繞音或回音。
    • 解決方法:.env 中設定 TTS_MONITOR=0(只發送給 CABLE),並在 Windows 設定中,將 CABLE Output 設定為**「聆聽此裝置」**來用耳機監聽。這樣 VTube Studio 與你的耳朵聽到的會是同一份單一串流,能徹底根除回音。正式直播時,可將聆聽關閉,直接讓 OBS 去擷取 CABLE 的聲音。
  3. VB-CABLE 控制面板勿亂動: 虛擬音效卡的 CABLE Input 與 Output 在 Windows 進階屬性中的「預設格式」必須保持一致(建議皆設定為 2 聲道、16位元、48000Hz)。不建議將系統預設的預設播放與錄音裝置直接設為 CABLE,以免造成系統音效混亂或回授,讓各軟體單獨指定輸入輸出即可。
  4. OBS 設定: 在 OBS 中新增一個「Spout2 擷取」或「視窗擷取」來撈取 VTube Studio 畫面並進行去背;將音訊輸入擷取指向 CABLE,填入你的 YouTube 串流金鑰即可開始進行短暫的推流測試。

關於大語言模型(LLM)選型

在實測中,如果使用免費的推理型模型(例如 glm-4.5-air:free),模型在回答前會進行大篇幅的思考推理,且線上資源常需排隊,會導致回應延遲飆升至上百秒,完全不適合即時直播互動

建議在測試階段改用非推理型qwen/qwen3-next-80b-a3b-instruct:free 模型。它屬於 MoE 架構,速度極快且中文理解與生成能力強,能將回應延遲縮短至約 16 秒內。若後續追求更低、更穩定的延遲,再考慮升級為付費 API 服務。


實測驗收清單

為了確保專案順利接通,可以對照以下清單進行確認:

  • VTube Studio 成功載入 Hiyori 官方模型且會跟著畫面擺動。
  • 播放聲音至 CABLE Input 時,VTube Studio 的嘴巴能正確隨著音量開合。
  • GPT-SoVITS API(v2Pro / FP32 模式)能正常啟動並合成出清晰語音。(GTX 1660 單獨執行可達 65 it/s,但與 VTube Studio 同時執行會因顯存不足而大幅降速)。
  • 「使用者輸入文字 ➔ LLM 回覆 ➔ 語音輸出 ➔ Live2D 嘴巴同步動」整條流水線成功接通。(本地顯存受限時,暫時使用 edge-tts 替代本地克隆)。
  • OBS 成功擷取 VTube Studio 畫面與 CABLE 音訊,並完成 YouTube 短期推流測試。

已知踩坑地雷整理

  1. Live2D 授權陷阱: 許多網路上標榜「免費」的模型其實嚴格禁止商用。若未來有營利或收受斗內計畫,請老實使用官方範例模型並掛上版權宣告,或者購買授權條款明寫「可商用、可直播營利」的模型。
  2. 1660 等舊顯卡顯存(VRAM)硬傷: 使用 GPT-SoVITS 進行本地推理時,請務必關閉瀏覽器等佔用 VRAM 的程式。因為不支援 FP16 半精度,在 FP32 精度下生成速度較慢,且難以與 3D/Live2D 渲染軟體共存。
  3. YouTube 政策: 使用 AI 語音合成克隆他人聲線或自己聲線時,上傳或直播時務必勾選「AI 揭露」選項,這並不會影響你的收益權益。
  4. 參考音檔品質決定一切: GPT-SoVITS 的克隆效果高度取決於你提供的 3~10 秒參考音檔。請確保音質乾淨、無背景音樂、無環境噪音,且逐字稿字字對齊,這會直接決定合成語音的表現力。

小結

這一次的接線實驗,讓我們成功打通了 AI VTuber 最關鍵的「音畫同步」機制。雖然受限於本地 GTX 1660 顯示卡的 6GB VRAM,我們暫時無法完美地在本地同時跑起高品質的 GPT-SoVITS 克隆與 Live2D 渲染,但透過靈活的架構設計,我們可以非常輕鬆地將語音後端無縫切換為 edge-tts 作為暫代方案,等待未來將語音生成模組遷移至雲端 GPU 或升級硬體。

這套架構的可擴展性非常高,期待大家也能順利接通屬於自己的 AI 虛擬主播!

相關閱讀