# 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 训练的语音增强模型
umxse
语音增强模型在 Voicebank+DEMAND 语料库的 28 说话人版本上进行训练。
这三个模型也可作为谱图(核心)模型使用,它们接收幅度谱图输入并输出分离的谱图。可以使用 umxhq_spec
、umx_spec
和 umxse_spec
加载这些模型。
详情
有关更多示例、文档和使用示例,请访问此 github 仓库。
此外,模型以及所有用于预处理、读取和保存音频声部的实用函数,都可以在一个可通过以下方式安装的 python 包中获得:
pip install openunmix