spleeter是由法国的音乐流媒体公司Deezer开源的项目,可以把音乐文件其分成2、4、5等多个独立的音轨,支持mp3、wav、ogg等常见音频格式。
Spleeter基于TensorFlow开发,依赖sniffio、 six、 oauthlib、 rfc3986、 requests-oauthlib、 numpy、 llvmlite、 h11、 anyio、 wheel、 tensorboard-plugin-wit、 tensorboard-data-server、 numba、 markdown、 hyperframe、 httpcore、 hpack、 grpcio、 google-auth-oauthlib、 charset-normalizer、 absl-py、 wrapt、 typing-extensions、 termcolor、 tensorflow-estimator、 tensorboard、 soundfile、 resampy、 pooch、 opt-einsum、 keras-preprocessing、 keras-nightly、 httpx、 h5py、 h2、 google-pasta、 gast、 flatbuffers、 click、 audioread、 astunparse、 typer、 tensorflow、 norbert、 librosa、 ffmpeg-python等大量扩展库,分离过程可以在GPU或CPU上执行,使用GPU可以获得更快的分离速度。
任务描述:
给定MP3音乐文件,分离其中的伴奏音乐和人声,保存为独立的MP3文件。
准备工作:
1. 准备待分离的MP3音乐文件。
2. 使用pip安装扩展库spleeter以及依赖库,由于依赖库较多,建议指定国内源提高速度,参考:Python扩展库安装与常见问题解决完整指南
3. 下载ffmpeg/ffplay/ffprobe(网上很容易下载,或者后台发送消息“分离人声”获取百度网盘地址),解压缩到本地硬盘,记下bin文件夹路径,然后添加到系统环境变量Path中,如下图
命令行用法演示:
测试音乐:
分离结果-伴奏:
分离结果-人声:
可能遇到的错误:
1. 如果遇到错误提示,
ValueError: Can't load save_path when it is None.
可以在资源管理器中进入执行命令的当前文件夹,删除子文件夹pretrained_models,然后重新执行命令。
2. 如果遇到错误提示,
ERROR:spleeter:ffprobe binary not found
回到准备工作的第3步,检查是否安装成功并配置Path变量,如果确认没问题,可以重新cmd或PowerShell。
3. 如果遇到错误提示,
httpx.ReadTimeout: The read operation timed out
检查网络连接是否正常,然后重新执行命令。
声明:
本文内容仅用于技术研究,切勿用于侵权行为,请支持音乐版权。