一行指令拆出四條音軌:Demucs 這個開源分離模型

摘要

把混好的歌曲拆成鼓、貝斯、人聲與其餘伴奏的開源分離模型。以命令列一行執行,也能從 Python 直接呼叫,程式碼採 MIT 授權。

推薦
軟體名稱
Demucs
版本
4.0.1
收費
免費
開源
開源
作業系統
WindowsLinuxmacOS
更新時間
2026-10-06 17:10

它拆出什麼

Demucs 官方模型結構圖:Hybrid Transformer Demucs 的分離流程

Demucs 是一個開源的音源分離模型,目標很直接:把一首混好的歌拆成幾條獨立音軌——鼓、貝斯、人聲,以及剩下的其它伴奏。它是「模型加命令列」這種形態,想接進自己的腳本,比圖形介面工具方便。

它由 Défossez 等人提出,經歷過多次版本迭代,v4 是目前的主版本。有一件事需要先講清楚:作者已經離開 Meta,原來的倉庫不再維護,只處理重要修復——這一點對要不要把它放進長期專案很關鍵,本文末尾會展開。

官方對它的描述是「當前先進的音樂音源分離模型」,目前能把鼓、貝斯與人聲從其餘伴奏中分離出來。也就是說輸出的是四條音軌,而不是簡單的「人聲/伴奏」兩分。

效果上的數字官方也給了:Hybrid Transformer Demucs 在 MUSDB HQ 測試集上的 SDR 為 9.00 dB;如果再疊加稀疏注意力與按源微調,可以做到 9.20 dB。這套模型是在 MUSDB HQ 資料集之外,又加了 800 首歌曲一起訓練出來的。

模型怎麼選

官方倉庫的模型精度對照表

裝好之後可選的模型不止一個,官方給了明確的取捨:預設模型是 htdemucs;想要更好一點的效果可以用微調版 htdemucs_ft,代價是分離耗時大約是預設模型的四倍。另有一個實驗性的六源版本,會額外拆出鋼琴與吉他——但官方自己說了,鋼琴這一路目前效果不算好。

另外兩個模型算是「歷史戰績」型選手:mdx 曾在 MDX 挑戰賽的 A 軌拿到第一,mdx_extra 在 B 軌排名第二;兩者還各有一個量化版本,體積更小、品質可能略降。

裝起來與基本用法

官方倉庫的安裝說明與相依要求

安裝只要一條 pip 指令,要求 Python 3.8 或更高版本。官方同時提供了 conda 環境檔與容器映像兩種方式,適合需要重現環境、或者要跑在伺服器上的場景。

最常用的呼叫方式是把音訊檔路徑交給它,跑完在輸出目錄裡拿結果:以模型名命名的目錄下再按曲名分目錄,裡面是四個 44.1kHz 的立體聲檔案——鼓、貝斯、其它、人聲。輸出預設是 wav,也可以用參數改精度,或者直接存成 mp3。

如果只想要人聲、不要其它音軌,可以打開只分離人聲的模式,也就是常說的卡拉 OK 用法。官方提醒這個模式並不是「只算人聲」——它先把整軌全部分離再混合,所以既不會更快,也不會更省記憶體。

顯示記憶體、速度與呼叫方式

官方倉庫的命令列用法與參數說明

顯示記憶體方面官方給的數字是:用 GPU 至少要 3GB,但按預設參數跑大約需要 7GB。不夠有兩條退路——調小分段長度,或者乾脆切到 CPU 計算。用 CPU 的代價是時間,官方給的經驗值是處理時間約為音訊時長的 1.5 倍。

除了命令列,它也能直接從 Python 程式裡呼叫:把命令列參數原樣傳給介面即可,等於把分離這一步嵌進自己的批次流程。

維護狀態與許可

這一節需要如實說明:作者在倉庫首頁寫明自己已不再就職於 Meta,因此原倉庫不再維護,只處理重要的問題修復,功能請求也不再受理,同時把工作轉移到自己新建的分支倉庫。

許可上,Demucs 以 MIT 許可證開源,寬鬆度足夠放進商業流程,只是要接受「上游基本凍結」這個現實:選它意味著你用的是一套已經穩定的實作,而不是一個還在快速演進的專案。

適合哪些人

如果你的需求是「把一批音訊按四條音軌拆開,並且希望這一步能寫進腳本」,Demucs 的形態比圖形介面工具更順手:裝一次、呼叫一次、輸出固定的目錄結構,剩下的交給自己的流程編排。

反過來,如果你只是想偶爾給一首歌做伴奏,或者希望點幾下滑鼠就能試遍各種模型組合,那帶介面的工具會更省心。Demucs 的價值不在門檻低,而在可控與可重複。

Demucs下載地址
支援的作業系統: Windows Linux macOS