首頁

目前文章總數:254 篇

  

最後更新:2026年 10月 17日

0016. 讓 AI 歌曲換成想要的聲音!Seed-VC × ComfyUI-Timbre-Transfer 零訓練歌聲替換實戰

日期:2026年 10月 17日

標籤: Linux Ubuntu Docker Docker-Compose ComfyUI WSL 2.2 Seed-VC ComfyUI-Timbre-Transfer Voice Conversion Singing Voice Conversion Timbre Transfer AI Music

摘要:生成式AI


應用所需:1. 已安裝並可正常執行 ComfyUI
     2. 一首含有人聲的來源歌曲(本篇會用AI歌曲),以及自己或者他人授權使用的乾淨聲音參考檔
解決問題:1. 不需為每位歌手重新訓練模型,即可將既有歌曲的人聲音色替換成自己的聲音
     2. 保留來源歌曲的歌詞、節奏、演唱時機與音高輪廓,同時置換歌手音色
Seed-VC 原始專案:Plachtaa / seed-vc
引用 ComfyUI 擴充節點:ethanfel / ComfyUI-Timbre-Transfer
引用 ComfyUI 擴充節點原工作流:SeedVC_44k_Voice_Conversion_Default.json
相關參考:0009. AI 聲音商用怕侵權?解鎖公有領域...
     0014. 不會樂理也能寫歌!ComfyUI ACE-STEP 1.5...
本篇添加合併工作流載點分享:點擊下載
使用提醒:只可使用自己擁有或已取得明確授權的聲音與歌曲,禁止用於冒充、詐騙或誤導性署名
本篇分為 5 大部分。
第一部分:Seed-VC 介紹
第二部分:應用場景 & 解決問題
第三部分:基於 Seed-VC 的 ComfyUI-Timbre-Transfer 工作流
第四部分:驗證成果
第五部分:分析、遺留問題探討






第一部分:Seed-VC 介紹

Step 1:Seed-VC 是什麼?

Seed-VC 是一套 Zero-shot Voice Conversion(零樣本聲音轉換)技術。
它的目的不是重新演唱一首歌,而是從來源音訊保留內容與表演,再 將說話者或歌手的音色替換成參考聲音。
Seed-VC Github連結

Source Audio(來源歌曲/歌聲)
├─ 歌詞內容
├─ 演唱時間
├─ 節奏與斷句
├─ 音高輪廓 F0
└─ 原始表演方式

Target Voice(自己的聲音參考)
└─ 身分與音色特徵

           ↓ Seed-VC

Output Audio
└─ 來源歌曲的唱法 + 目標參考的音色


所謂 Zero-shot,表示不必先蒐集大量本人歌聲建立專屬模型,也不需為每個目標聲音重新訓練。
只要提供一小段品質良好的參考音訊,模型便能在推論階段擷取目標音色。


Step 2:Seed-VC 如何處理歌聲?

簡要來說 Seed-VC 使用內容編碼、音色條件、F0 音高條件與 Diffusion Transformer 共同產生新聲音。
本篇 ComfyUI 整合採用 Seed-VC 的 44.1 kHz F0-conditioned 模型,並且最終會將 原生成的 AI 歌曲替換成另一個 AI 聲音,作為展示。

來源歌聲 ─→ Whisper Small:擷取語音內容
         └→ RMVPE:擷取 F0 音高輪廓

目標聲音 ─→ CAMPPlus:擷取歌手/說話者音色

內容 + F0 + 目標音色
         ↓
Seed-VC Diffusion Transformer
         ↓
BigVGAN 44.1 kHz Vocoder
         ↓
轉換後的 Mono 歌聲



Step 3:為什麼選擇 44.1 kHz 模型?

Seed-VC 有針對不同用途設計的模型:

選項 優點 代價
22 kHz 語音模型 較輕量、較適合即時語音 歌聲高頻細節與極高音較受限制
44.1 kHz 歌聲模型 保留較多高頻與歌唱細節,適合離線轉換 模型更重、記憶體與時間需求較高


ComfyUI-Timbre-Transfer 選用 44.1 kHz Singing Voice Conversion 模型,而不是較小的 22 kHz 即時語音模型。
由於本篇基底為 ComfyUI-Timbre-Transfer 的工作流,因此使用高品質 44.1 kHz 路線。

Step 4:ComfyUI-Timbre-Transfer 做了哪些整合?

ComfyUI-Timbre-Transfer 將 Seed-VC 包裝成 ComfyUI 節點
並加入長音訊分段、Crossfade、自動下載模型與 Stereo Reconstruction。

Seed-VC 本體輸出:Mono 44.1 kHz

ComfyUI-Timbre-Transfer 額外處理:
├─ 長音訊自動切塊與交叉淡化
├─ 從較長參考錄音選出活躍片段
├─ Timbre Strength 音色混合
├─ Peak Protection






第二部分:應用場景 & 解決問題

Step 1:將上一首 AI 歌曲換成自己的聲音

上一篇已經透過 ACE-STEP 1.5 完成一首包含人聲的歌曲
這一次不重做編曲,而是延續原來的歌詞、旋律與演唱時機,把歌手音色轉成前篇(利用 CC0 檔案庫合法訓練你的 GPT-SoVITS 模型)英文朗讀者女性的聲音。

ACE-STEP 1.5 生成歌曲
        ↓
GPT-SoVITS v2 擷取分離生成歌曲 AI 歌唱者的原唱、背景樂曲
        +
英文女性朗讀者 26 秒乾淨聲音參考
        ↓
輸出「英文女性朗讀者」的歌曲版本


這種方式特別適合自己不容易唱準高音,但想先聽聽歌曲套用個人聲線後的大致效果。
它比較接近 Demo 與創作預覽,不能完全取代本人錄唱、聲音指導與後期混音。

Step 2:Source Audio 與 Target Voice 分別控制什麼?

輸入 負責資訊 本篇使用檔案
source_audio 字詞、演唱節奏、斷句、旋律、F0 與表演 ACE-STEP 1.5 產生的歌聲或 Vocal Stem
target_voice 目標人物的音色與說話者特徵 本人乾淨說話錄音


如果來源歌手的高音唱法不自然,轉換後通常不會自動變成完美表演, 因為 Seed-VC 仍會沿用來源的音高與表演資訊。
反過來說,Target Voice 不一定要唱同一首歌
乾淨、穩定的說話錄音也能作為零樣本音色參考。

Step 3:為什麼建議先分離人聲與原曲?

將整首歌送進 Voice Conversion,模型會同時接觸主唱、和聲、鼓、Bass、Synth 與殘響。
這些非語音聲音可能造成內容編碼器、F0 擷取器與 Vocoder 的判斷困難。

推薦正式流程:

Full Mix
├─ Vocal Stem ─→ Seed-VC ─→ Converted Vocal ─┐
└─ Instrumental Stem ─────────────────────────┼→ Mix / Master
                                              └→ Final Song


如果歌曲本來就是自己用 AI 生成,建議在產生階段就保存可取得的 Vocal、Instrumental 或 Stem,能比事後從完整 Mix 分離得到更乾淨的素材。

Step 4:使用聲音前的授權界線

本篇情境使用「LJSpeech 的聲音」與「自己創作的AI歌曲」,風險相對明確。
如果改用其他人物聲音,即使只有幾秒參考,也可能包含可辨識的生物特徵與人格權風險。

可以考慮:
- 自己的錄音與自己擁有的歌曲
- 已取得聲音本人及音樂權利人的明確授權
- 依授權條件使用的合法資料

不應該:
- 未經同意複製歌手、朋友、同事或公眾人物聲線
- 製作誤導他人相信是真人演唱的內容
- 用於詐騙、冒充、政治誤導或規避身分驗證
- 忽略歌曲、歌詞、伴奏與模型本身的授權條件


音訊只在本機處理不代表可以忽略同意與著作權
※技術可行性與使用權利是兩件不同的事。

Step 5:本篇說明 - 對應規格

以下是本次預計測試的環境:

項目 本次環境
GPU NVIDIA GeForce RTX 5070(12 GB VRAM)
CPU Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz,3192 Mhz,6 個核心,12 個邏輯處理器
RAM 48 GB
OS Microsoft Windows 10 專業版
所需模型(自動下載安裝) Seed-VC 44.1k Model Loader (2.5GB 左右)


※音樂聲線替換模型 GPU 12 VRAM 是可以正常支援的



第三部分:基於 Seed-VC 的 ComfyUI-Timbre-Transfer 工作流

Step 1:快速下載 ComfyUI-Timbre-Transfer

進入 Github 上的ComfyUI-Timbre-Transfer,並拉到中間下載工作流
或者點擊下載SeedVC_44k_Voice_Conversion_Default.json




Step 2:匯入 ComfyUI 工作流

將下載好的 SeedVC_44k_Voice_Conversion_Default.json 檔案,進行匯入


Step 3:匯入工作流後 - 可能缺少套件

匯入成功後,第一次使用會需要安裝 SeedVC 相關擴充

SeedVCModelLoader 
SeedVCVoiceConversion
SeedVCRestoreOriginalStereo




Step 4:需要手動安裝

打開 ComfyUI 的自定義節點管理器,會發現無法線上安裝,這是因為此節點需要手動安裝


Step 5:手動安裝擴充節點 - 進入 ComfyUI 容器

要手動安裝插件,要先進入 ComfyUI 的容器,依序執行訪問容器內容:
其中 comfyui-nvidia : 要替換成您的容器名稱

docker exec -it comfyui-nvidia /bin/bash



進入後,要到虛擬環境的 venv 下操作,因此

Source /comfy/mnt/venv/bin/activate




Step 6:手動安裝擴充節點 - 安裝前準備

接著進入到存放擴充節點的對應目錄
※依照自己的環境或多或少有差異

cd /basedir/custom_nodes




接著輸入以下指令進行節點擴充下載 ComfyUI-Timbre-Transfer.git

git clone https://github.com/ethanfel/ComfyUI-Timbre-Transfer.git




下載完成 .git 專案後,切換到該目錄下

cd ComfyUI-Timbre-Transfer




Step 7:手動安裝擴充節點 - 安裝擴充

安裝擴充節點,此指令會將約束到的 torch_lock.txt 檔案相關套件,安裝齊全

python -m pip install --constraint /comfy/mnt/torch_lock.txt -r requirements.txt




Step 8:手動安裝擴充節點 - 完成與檢查

安裝成功後,可以輸入以下 2 個指令(仍在 VENV 中)檢查當前是否正確

python -m pip check


並確認載入核心是否正常:

python -c "import torch, torchaudio, numpy, munch; print('torch=', torch.__version__); print('torchaudio=', torchaudio.__version__); print('numpy=', numpy.__version__); print('CUDA=', torch.cuda.is_available())"



預期可以看到:

No Broken requirements found.

torch= 2.14.0+cu130
torchaudio=2.11.0+cu130
numpy=2.4.6
CUDA=True




Step 9:重啟 Docker

最後,為了要讓新的擴充節點生效,要重啟 ComfyUI Docker 容器


Step 10:完整工作流 - 大綱

該工作流可整理成以下 7 個區塊:

工作流區塊 功能
1. Seed-VC 44.1K 載入 Seed-VC 44.1 kHz 聲音轉換模型及相關元件。首次執行時會自動下載缺少的模型;device 控制運算裝置,precision 控制運算精度,模型完整下載後可將 download_missing 設為 false。
2. Source performance 載入要被轉換的來源人聲,提供歌詞發音、旋律、音高、節奏、咬字與演唱方式。建議使用從歌曲分離出的乾淨純人聲,不要直接輸入含伴奏的完整歌曲。
3. Target voice reference(10-20s) 載入目標人物的聲音參考,提供聲紋與音色特徵。建議使用 10~20 秒乾淨、單一說話者、無音樂、無混響及無長時間停頓的錄音;清唱參考通常比演講錄音更適合歌聲轉換。
4. Seed-VC high-quality 44.1k conversion 將 Source performance 的歌詞、旋律與唱法保留下來,並將音色轉換為 Target voice reference 的聲音,輸出 44.1 kHz 單聲道人聲。此節點也可設定音色強度、擴散步數、參考秒數、音高調整、長度、隨機種子及輸出音量。
5. Restore original stereo around converted voice 將 Seed-VC 產生的單聲道人聲放回中央聲道,並從原始來源保留左右聲道差異,以重建較自然的立體聲寬度、空間感與殘響。此節點不是伴奏混音器;若要加入背景音樂,仍需另外將轉換後人聲與無人聲伴奏混合。
6. Preview converted stereo 在 ComfyUI 中直接播放並預覽重建後的立體聲結果,用於檢查聲音相似度、音量、破音、原聲殘留及立體聲效果,不會另外匯出正式檔案。
7. Save Seed-VC stereo Output 將最終立體聲結果儲存至 ComfyUI 的輸出目錄;可透過檔名前綴設定輸出子目錄與檔案名稱,方便後續在 Audacity、REAPER 或其他混音軟體中使用。


其中在第 1. 部時會自動安裝所需模型,最後的6. 7. 會輸出替換聲音後的結果


Step 11:第一次執行會自動下載模型

Seed-VC 44.1k Model Loader 的 download_missing 保持 true,第一次執行時會下載約 2.5 GB 的必要檔案:

- Seed-VC 44.1 kHz Checkpoint 與固定版本原始碼
- OpenAI Whisper Small Content Encoder
- NVIDIA BigVGAN 44.1 kHz Vocoder
- RMVPE Pitch Extractor
- CAMPPlus Speaker Encoder


預設保存位置:

ComfyUI/
└─ models/
   └─ seed_vc/


第一次執行要保持網路連線且磁碟空間足夠。
※下載完成後,若希望完全離線執行,可將 download_missing 設為 false。


Step 12:SeedVCVoiceConversion 參數說明

官方 Default Workflow 的起始值如下:

參數 預設值 用途
timbre_strength 1.0 完整使用目標 CAMPPlus 音色 Embedding
diffusion_steps 30 高品質預設值
cfg_rate 0.7 Seed-VC Classifier-Free Guidance
reference_seconds 20.0 使用 20 秒參考聲音
auto_f0_adjust false 保留來源歌聲的音高範圍
pitch_shift 0 不進行半音位移
length_adjust 1.0 保持原始演唱時間
seed 0 擴散取樣種子
output_gain_db 0.0 不額外增加或降低輸出音量
peak_protection true 避免輸出新增削波
peak_ceiling_db -1.0 峰值保護上限為 -1 dBFS


首次執行先不用修改參數。確認能運行正常後,再依照自己需求進行調整參數。


Step 13:優化節點 - 新增混音節點

我們保持原本的工作流,但為了要方便展示替換人聲後的結果,因此需要添加 3 個節點
依序添加此 3 個節點

名稱 說明
instrument (原背景音樂) 上傳音樂檔案,主要傳原始的背景歌曲(不含人聲)
音频合并 音頻1 接上 instrument (原背景音樂) 節點
  音頻2 接上 Restore original stereo around converted voice 節點 (此節點是變換人聲後的成果)
Save Seed-VC Merge stereo output 保存此音樂,完成新的人聲 + 原背景音樂的替換成果




Step 14:優化節點 - 新增混音節點

最終再將擴增的 3 個節點,圈選轉為子工作流 (當然可以跳過此步驟,但可以優化工作流檢視)
整體上不影響自動化生成
本篇基於原始工作流的擴充調整,提供點擊下載




第四部分:驗證成果

Step 1:將歌曲分離人聲與背景

網路上與工具有很多可以將一首歌的歌曲與人聲分離,我們這邊將上一篇 成果 - 音樂生成結果的 AI 音樂


歌詞:

[Intro - instrumental]

[Verse 1]
夜色落在街角
霓虹映著微笑
末班車緩緩經過
帶走白天的喧鬧

[Pre-Chorus - building energy]
風把回憶輕輕翻頁
我聽見熟悉的心跳

[Chorus - uplifting]
沿著風向前奔跑
讓星光陪我到破曉
就算明天還很遙遠
今晚也不要停靠

[Instrumental - electric piano solo]

[Outro - fade out]
把未完成的願望
留給下一次破曉



生成的 AI 音樂透過之前分享的 GPT-SoVITS v2 的去除背景音與提取純人聲方式分離此AI音樂
分離上面的AI音樂,產生的背景音樂 如下:



分離上面的AI音樂,產生的純人聲如下:




Step 2:準備 Source Performance

將分離後已 產生的純人聲 在 Source performance 作為上傳檔案


Step 3:準備 Target Voice

準備一個替換的人聲,約 20 秒上下,這裡使用 英文朗讀者女性的聲音。來當替換對象。


英文女性朗讀者的腔調:




Step 4:準備 instrument (原背景音樂)

將分離後已 產生的背景音樂 在 instrument (原背景音樂) 作為上傳檔案
目的是最後的混音合併輸出




Step 5:執行生成

上述準備工作都完成後,可以執行運行 (首次點擊依照網路速度要等待一段時間下載模型約 2.5 GB)


Step 6:生成結果

最終替換成 英文朗讀者聲音 + 原始歌曲 的生成結果:


若無法從網頁撥放可以點擊下載

這裡提供原始的 AI 音樂做比較:


若無法從網頁撥放可以點擊下載

在應用場景上,適合 Demo 與創作預覽,雖不能取代本人唱歌,但若有一首新的歌曲,且尚未確定歌手人選
這時可以使用此工具:先將某些潛在對象的歌手聲音替換上去,便於評估者找出符合此音域的歌手。



第五部分:分析、遺留問題探討

問題 1:第一次執行卡住或模型下載失敗

第一次執行需要下載約 2.5 GB 模型,可能因網路、代理伺服器、防毒軟體或磁碟空間中斷。

檢查項目:
- download_missing 是否為 true
- ComfyUI/models/seed_vc 是否可寫入
- 磁碟是否有足夠空間
- Hugging Face 是否能正常連線
- 終端機是否仍顯示下載進度
- 不完整檔案是否需要依專案說明重新下載


成功下載後可將 download_missing 改為 false,確認離線時不會再嘗試連線。

問題 2:Out of Memory 或處理完整歌曲太慢

顯卡在低階規格的時候可能會出現 Out of Memory 的狀況,建議排錯誤順序:

1. Source 先裁成 10~30 秒
2. Diffusion Steps 降到 10~20 做預覽
3. Precision 保持 auto,不要直接改 FP32
4. 關閉其他占用 GPU 的模型與程式
5. 重啟 ComfyUI,避免先前工作流仍佔用 VRAM
6. 分段處理完整歌曲,再做 Crossfade 與混音


長音訊雖然會由節點自動分塊,但總處理時間仍會增加
應先用最困難的高音片段確認參數 ,再投入整首歌曲。

問題 3:高音出現機械聲、破裂或沙啞

44.1 kHz 能保留更多高頻,但模型仍屬於 模擬音色
氣聲、耳語、吼腔、尖叫與極高音都是困難案例。
可以依序測試:


1. 使用乾淨 Vocal Stem
2. 換一段包含較高音域的本人參考
3. 固定其他參數,Steps 由 30 提高到 40~50
4. 更換 Seed
5. 比較 Timbre Strength 1.0 與 0.5
6. 比較 Auto F0 Adjust 開/關
7. 只重做問題音節,最後局部剪輯


如果來源高音本身已失真,Voice Conversion 通常只會將問題帶到新音色,而不會自動修復原始表演。

問題 4:上游 Seed-VC 專案已封存,會有什麼影響?

Seed-VC 原始 GitHub 儲存庫目前已進入唯讀封存狀態
ComfyUI-Timbre-Transfer 則固定使用特定上游原始碼與模型版本,降低更新造成的不確定性。
這代表現在可用的工作流不會立刻失效,但未來新版 PyTorch、CUDA 或 ComfyUI 可能出現相容性問題,而上游不一定會繼續維護。

建議保存:
- 可正常運作的 ComfyUI 與 Custom Node Commit
- Python、PyTorch、CUDA 版本
- 已下載模型與模型授權資訊
- 官方 Workflow JSON
- 一份短測試音訊與正確輸出


更新大型環境前先備份,並用短測試工作流驗證,不要直接在唯一可用環境中全面升級。

總結

這篇完成了 Seed-VC 與 ComfyUI-Timbre-Transfer 的安裝、模型下載、兩份音訊輸入、歌聲轉換與 Stereo Reconstruction。
整個流程最重要的是:Source Performance 提供「怎麼唱」,Target Voice 提供「像誰的音色」。

整理建議實作順序:
1. 準備自己擁有權利的來源歌曲
2. 錄製 10~20 秒乾淨的參考聲音
3. 匯入預設 ComfyUI Workflow
4. 先用 10~30 秒片段與預設參數測試
5. 固定 Seed,依序比較 Timbre Strength、Reference 與 Steps
6. 正式版本先分離 Vocal,只轉換人聲
7. 回到原背景音樂 + 新轉換聲音,實現混音完成


Seed-VC 能快速讓創作者預覽自己的聲線套用在歌曲上的效果,但最終品質仍取決於來源表演、參考錄音、音域差距與後製能力。
把它當作歌聲設計與 Demo 製作工具:而不是一鍵取代歌手與混音工程,會更容易得到可控、可負責任的結果。