当前位置: 首页 > 工具软件 > Spleeter > 使用案例 >

音轨分离软件 Spleeter 使用教程及踩过的坑

郭通
2023-12-01

Spleeter 是由法国音乐流媒体公司 Deezer 开发并在 Github 上开源的音轨分离软件,可用于非专业场景下的音乐的人声和各种乐器声分离。

下面是安装教程,请在命令行或 anaconda prompt 上运行代码:

  1. conda install -c conda-forge ffmpeg libsndfile
    以下载 spleeter 的依赖软件。

  2. pip install spleeter
    以下载 spleeter 库。请不要使用 conda install

  3. wget https://github.com/deezer/spleeter/raw/master/audio_example.mp3
    以下载 spleeter 提供的示例音乐。如果你没有 wget 也可以使用别的工具下载。如果你希望使用自己的音乐,请将其拷贝至命令行前缀路径(即目前所处理的文件夹路径)。

  4. 在命令行前缀路径下新建文件夹,命名为 pretrained_models 。在 Github 的 releases 栏目中下载 2/4/5stems.tar.gz ,拷贝至上述文件夹并分别解压缩。

  5. python -m spleeter separate -p spleeter:2stems -o output audio_example.mp3

  • -p 后接分轨数量,默认分为 2 轨,即人声 + 伴奏。 4 轨( spleeter:4stems )为人声 + 鼓点 + 贝斯 + 其他。 5 轨( spleeter:5stems )为人声 + 鼓点 + 贝斯 + 钢琴 + 其他。
  • -o 后接导出文件夹路径,若按默认只写 output ,则在命令行前缀路径下的 output 文件夹。如果路径中有空格,则整个路径两端需用半角引号括起来。
  • 代码最后是原音频文件的路径。如果路径中有空格,则整个路径两端需用半角引号括起来。如果原音频文件在命令行的前缀路径下,则只写文件名即可。

标记一下笔者踩过的坑:

  1. spleeter 依赖 ffmpeg 和 libsndfile 两个以 c 语言为基础的软件。笔者的电脑由于 conda 有问题,早期试图 pip install ffmpeglibsndfile (事实上,甚至不存在后者这个 python 库)。如果你的电脑上没有 conda ,建议你直接去这两个软件的官网上下载。
  2. 对于 ffmpeg 而言,官网上下载之后还需要添加环境变量 path 。你可以在添加之后,在命令行输入 ffmpeg ,如果未报错则说明成功。需要注意的一点是:添加环境变量之后需要重启命令行才能生效!!!
  3. spleeter 对于很多库都有特定版本的需求,笔者的 numpy 、 scipy 、 tensorflow 等几乎都在 pip install 时重装了一遍。你最好听话一个个装……
  4. 如果运行 spleeter 时报错 file not found ,可能是你使用了在其他博客看见的旧版 spleeter 命令( -i -p -o )。请切换为本文的命令。
  5. 如果你想要批量运行 spleeter 命令,请记住: os.system() 不能运行 spleeter 命令,请在 jupyter notebook 中通过前缀一个半角叹号来运行该命令。你可以在另一个 python 文件中,输出所有你需要运行的 spleeter 命令(前缀叹号的),并将其复制到 jupyter notebook ,以实现批量分离音轨。
 类似资料: