用AI对歌曲音轨的分离研究很多,不过大多数都是在频域上进行的。这类方法先把声音进行傅立叶变换,再从频谱空间中把人声、乐曲声分别抽离出来。
比如,,就是这样。
但是由于要计算频谱,这类工具存在着延迟较长的缺点。虽然之前也有一些对声音波形进行处理的方法,但实际效果与频域处理方法相差甚远。
最近,Facebook AI研究院提供了两种波形域方法的PyTorch实现,分别是Demucs和Conv-Tasnet,而且测试结果均优于其他常见的频域方法,目前登上了GitHub日榜
效果对比
话不多说,我们先来听听这段30s音频的分离实测效果。
这两种方法在MusDB上的训练结果已经接近了频域方法的最优结果,加入150首额外的训练数据后,总体信号失真比(overall SDR)达到了6.3,超过了其他所有方法。
安装与使用方法
先将代码下载到本地,根据自己用CPU还是GPU来选择不同的安装环境:
conda env update -f environment-cpu.yml # if you don’t have GPUs
conda env update -f environment-cuda.yml # if you have GPUs
conda activate demucs
在代码库的根目录下运行以下代码(Windows用户需将python3换为python.exe):
python3 -m demucs.separate --dl -n demucs PATH_
...查看全文