Spleeter 是由法国音乐流媒体公司 Deezer 开发并在 Github 上开源的音轨分离软件,可用于非专业场景下的音乐的人声和各种乐器声分离。
下面是安装教程,请在命令行或 anaconda prompt 上运行代码:
conda install -c conda-forge ffmpeg libsndfile
以下载 spleeter 的依赖软件。
pip install spleeter
以下载 spleeter 库。请不要使用 conda install
。
wget https://github.com/deezer/spleeter/raw/master/audio_example.mp3
以下载 spleeter 提供的示例音乐。如果你没有 wget 也可以使用别的工具下载。如果你希望使用自己的音乐,请将其拷贝至命令行前缀路径(即目前所处理的文件夹路径)。
在命令行前缀路径下新建文件夹,命名为 pretrained_models 。在 Github 的 releases 栏目中下载 2/4/5stems.tar.gz ,拷贝至上述文件夹并分别解压缩。
python -m spleeter separate -p spleeter:2stems -o output audio_example.mp3
-p
后接分轨数量,默认分为 2 轨,即人声 + 伴奏。 4 轨( spleeter:4stems
)为人声 + 鼓点 + 贝斯 + 其他。 5 轨( spleeter:5stems
)为人声 + 鼓点 + 贝斯 + 钢琴 + 其他。-o
后接导出文件夹路径,若按默认只写 output
,则在命令行前缀路径下的 output 文件夹。如果路径中有空格,则整个路径两端需用半角引号括起来。标记一下笔者踩过的坑:
pip install ffmpeg
和 libsndfile
(事实上,甚至不存在后者这个 python 库)。如果你的电脑上没有 conda ,建议你直接去这两个软件的官网上下载。ffmpeg
,如果未报错则说明成功。需要注意的一点是:添加环境变量之后需要重启命令行才能生效!!!pip install
时重装了一遍。你最好听话一个个装……file not found
,可能是你使用了在其他博客看见的旧版 spleeter 命令( -i
-p
-o
)。请切换为本文的命令。os.system()
不能运行 spleeter 命令,请在 jupyter notebook 中通过前缀一个半角叹号来运行该命令。你可以在另一个 python 文件中,输出所有你需要运行的 spleeter 命令(前缀叹号的),并将其复制到 jupyter notebook ,以实现批量分离音轨。