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