python音轨分离神器

标签:python

  春季的时候,孩子小学要有个国学的演出活动,班主任想让班级孩子集体朗诵<诗经>片断,但需要伴奏音乐.想把爱奇艺的视频下载下来,取其中的背景音乐.但是不知道怎么下载,所以就找到了我(家长里唯一从事电脑相关工作的).下载很简单,我如you-get就搞定了,视频音频我也给分离出来了.但是老师还有个要求,就是要把音乐里的人声和乐器伴奏声分离出来(我分离出来的音频是古琴,鼓点,孩子的朗诵声在一起的).当时我找了好几个windows下的软件,调了好几个参数,也没有弄出好的效果.后来就不了了之了.

  直到今天,我看到了 Spleeter这个开源工具,就又把这个事件想起来了,试了一下,效果是相当的好!

软件介绍

音轨分离软件 spleeter,只需输入一段命令就可以将音乐的人声和各种乐器声分离,支持 mp3、wav、ogg 等常见音频格式。

Spleeter 基于 TensorFlow 开发,本身运行速度非常快。分离过程可以在 GPU 或 CPU 上执行。在 GPU 上运行,如果它将音频文件分成四个音轨,可以比实时速度快 100 倍。

安装

官方文档推荐用 Conda 环境安装,如下所示:

git clone https://github.com/Deezer/spleeter
conda env create -f spleeter/conda/spleeter-cpu.yaml

其实用pip也是可以安装成功的!

使用

首先试一下示例的mp3文件,是没问题的.

conda activate spleeter-cpu
spleeter separate -i spleeter/audio_example.mp3 -p spleeter:2stems -o output

然后,我测试了一下爱奇艺下载的mp4文件,分离效果也很好!

我用pip安装时没有OMP开始的日志输出,只有用github的源码安装的才能看到!

拆分类型选项

  • 人声(歌声)/伴奏分离(两个音轨)
  • 人声/鼓/贝斯/其他分离(四个音轨)
  • 人声/鼓/贝斯/钢琴/其他分离器(五个音轨)
Written on 2019-11-19
上篇: python3基础库之pathlib学习
下篇: 在Manjaro上安装flash player