spleeter是Deezer公司开发的音轨分离软件,在github已开源,地址:https://github.com/deezer/spleeter
如果要安装的话,只能通过pip或者conda安装。或者是使用一个线上的试用平台,里面有一些demo,地址为(需梯子):https://colab.research.google.com/github/deezer/spleeter/blob/master/spleeter.ipynb
当然,如果要长期做实验的话,还是建议下载。其实这个的安装很简单,使用也很简单,但是在这个的实验过程中我遇到了很多的坑,导致我浪费了很多很多时间。一般来说大家不会碰到这么多坑,但是我还是记录一下实验过程,万一有人能用到
如果网络ok,使用命令直接安装
pip install spleeter
如果不ok,使用豆瓣的镜像,这个就是镜像:https://pypi.doubanio.com/simple
pip install spleeter -i https://pypi.doubanio.com/simple
我遇到的问题——anaconda-python里面,ssl模块缺失
解决方法在我另一篇博客:https://blog.csdn.net/rippersudo/article/details/102966284
如果装了git,就直接
git clone https://github.com/Deezer/spleeter
或者去到github,把安装包下载到本地
spleeter的conda安装方法里面提供了两个虚拟环境,一个CPU一个GPU,看个人需求,我这里是安装的CPU,使用的是下载好了的安装包,所以是本地地址
conda env create -f C:/Users/lenovo/Desktop/spleeter/conda/spleeter-cpu.yaml
环境创建成功后,会出现
如果创建失败了,很可能也是ssl模块的问题,参考前面pip给出的博文,替换原python对应文件即可
conda activate spleeter-cpu
spleeter separate -i spleeter/audio_example.mp3 -p spleeter:2stems -o output
其中spleeter/audio_example.mp3是原始音频,建议使用绝对地址,否则可能出现WinErr2
output是输出文件夹,可以自己命名
如果是pip安装好的spleeter,那么就直接在base环境中输入上面的命令,如果是conda,那么就要先进入spleeter-cpu环境,在此环境下输入命令
我pip和conda都装了,后来卸载了通过pip装的,只留了虚拟环境里的spleeter。在用它的过程中,遇到了一些小问题
出现它的原因是HDF5版本不匹配,解决方法为,在spleeter-cpu环境下:
pip uninstall h5py
pip install h5py
或者用最新的h5py文件夹直接替换,环境名\lib\site-packages里面的h5py文件夹
3.2 问题:spleeter:ffprobe error (see stderr output for detail)
出现这个问题是,ffmpeg多媒体文件解析程序出错。我觉得有两个可能,一个就是你没装好ffmpeg,那么就重新安装,当然比较大
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
还有个可能,就是你装好了,但是不知道为什么还是没用。那么就使用
ffprobe spleeter/demo.mp3
看一下有没有问题,如果有问题,再traceback一下完整的错误
关于ffprobe的这个问题,github上面有相关的讨论:https://github.com/deezer/spleeter/issues/52
一直解决不了的同学,可以上去求助看看有没有人解答。我的情况是,第一次出现错误后,使用ffprobe命令看了一下某个mp3文件,之后就莫名其妙的好了
这个是目前spleeter提供的三种音轨分离方式,其中:
*Vocals (singing voice) / accompaniment separation (2 stems)
*Vocals / drums / bass / other separation (4 stems)
*Vocals / drums / bass / piano / other separation (5 stems)
可以自由选择。