Open-Unmix

# assuming you have a PyTorch >=1.6.0 installed
pip install -q torchaudio
import torch

# loading umxhq four target separator
separator = torch.hub.load('sigsep/open-unmix-pytorch', 'umxhq')

# generate random audio
# ... with shape (nb_samples, nb_channels, nb_timesteps)
# ... and with the same sample rate as that of the separator
audio = torch.rand((1, 2, 100000))
original_sample_rate = separator.sample_rate

# make sure to resample the audio to models' sample rate, separator.sample_rate, if the two are different
# resampler = torchaudio.transforms.Resample(original_sample_rate, separator.sample_rate)
# audio = resampler(audio)

estimates = separator(audio)
# estimates.shape = (1, 4, 2, 100000)

模型描述

Open-Unmix 提供了即用型模型,讓使用者能將流行音樂分離成四個音軌: 人聲、 鼓點、 貝斯 以及其餘的 其他 樂器。這些模型已在免費提供的 MUSDB18 資料集上進行了預訓練。

每個目標模型都基於一個三層雙向深度 LSTM。該模型學習從混合輸入的幅度譜圖中預測目標源(如人聲)的幅度譜圖。在內部,透過在輸入上應用掩碼來獲得預測。該模型在幅度域使用均方誤差進行最佳化。

Separator 元模型(如上面的程式碼示例所示)將多個 Open-unmix 譜圖模型組合在一起,用於每個所需的目標,並透過多通道廣義維納濾波器組合它們的輸出,然後使用 torchaudio 應用逆 STFT。該濾波是 norbert 的可微分(但無引數)版本。

預訓練的 Separator 模型

  • umxhq (預設) 在 MUSDB18-HQ 上訓練,該資料集包含與 MUSDB18 相同的音軌,但未壓縮,從而產生 22050 Hz 的全頻寬。
  • umx 在常規的 MUSDB18 上訓練,由於 AAC 壓縮,其頻寬限制在 16 kHz。該模型應用於與 SiSEC18 中評估的其他(較舊的)方法進行比較。

此外,我們還提供了由 Sony Corporation 訓練的語音增強模型

所有這三個模型也可用作譜圖(核心)模型,它們接受幅度譜圖輸入並輸出分離的譜圖。這些模型可以使用 umxhq_spec、 umx_spec 和 umxse_spec 載入。

詳情

如需更多示例、文件和使用示例,請訪問此 GitHub 倉庫

此外,模型和所有用於預處理、讀取和儲存音訊音軌的實用功能都可以在一個 Python 包中獲得,可以透過以下方式安裝

pip install openunmix

參考資料

音樂源分離的參考實現

模型型別: 音訊 | 可指令碼化
提交者: Inria