最好用的音軌分離軟件spleeter:處理一首歌僅幾秒,上線一周收獲2.4k星 | 附實測
曉查 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
喜歡自己用手機K歌?但K歌App里人聲往往清除得不夠干凈,錄制起來效果一般。
現(xiàn)在有個AI神器可以干凈地剝離歌曲里的樂器聲啦。
來自法國的音樂流媒體公司Deezer開源了一個音軌分離軟件spleeter,只需輸入一段命令就可以將音樂的人聲和各種樂器聲分離,支持mp3、wav、ogg等常見音頻格式。
這款軟件基于TensorFlow開發(fā),效果拔群,有網(wǎng)友說自己曾經(jīng)試過無數(shù)類似軟件,spleeter是最好用的一個。
量子位嘗試了周杰倫的新歌《說好不哭》,人聲軌道在開頭部分幾乎實現(xiàn)了靜音,聽不到任何樂器聲,直到26秒才開始出現(xiàn)周杰倫的歌聲:
而伴奏部分在整個過程中僅有極少量微弱的換氣聲。
spleeter還支持GPU加速。如果在GPU上運行,會比實時分解速度快100倍,也就是說分解一首5分鐘的歌曲只需要3秒。
spleeter在GitHub上線僅僅一周,就收獲了2.4K星,在Hacker News上也有1000+的熱度。
最多分離5個音軌
用戶可以根據(jù)自己的需求來訓(xùn)練模型,Deezer還給出了在musdb數(shù)據(jù)集上的預(yù)訓(xùn)練模型,因此能直接拿來使用。
在官方提供的預(yù)訓(xùn)練模型里,spleeter可將人聲和樂器聲分為2個音軌,已經(jīng)能滿足基本的要求。
此外它還能把樂器聲進一步分離為鼓、貝斯、鋼琴及其他樂曲,加上人聲,spleeter最多可以分離出5個音軌。
其中,2個音軌和4個音軌的模型在musdb據(jù)集上均具有最先進的性能。
使用方法
spleeter可以從conda或者pip安裝。
如果用conda安裝,可以選擇CPU或者GPU環(huán)境,以CPU環(huán)境為例:
git clone https://github.com/deezer/spleeter conda env create -f spleeter/conda/spleeter-cpu.yaml conda activate spleeter-cpu
如果想換成GPU環(huán)境,只需將上述代碼中的spleeter-cpu換成spleeter-gpu。
在分離音軌的命令中,加入選項-p spleeter:4stems來指定音軌數(shù)量,如果不加,系統(tǒng)默認(rèn)分離為2個音軌。
spleeter separate -i audio_example.mp3 -o audio_output -p spleeter:4stems
最終樂器和人聲將以wav文件的格式保存在audio_output文件夾中。
分離過程可以在GPU或CPU上執(zhí)行。在GPU上運行,速度非???,可以實現(xiàn)100倍的加速。
經(jīng)過實測,在單個英偉達 GTX 1080上,spleeter只用了90秒就分解完了3小時27分鐘長度的musDB測試數(shù)據(jù)。
pip安裝更簡單,但是不支持GPU加速,一般分解一兩首歌已足夠使用:
pip install spleeter
傳送門
項目地址:
https://github.com/deezer/spleeter