windows部署spleeter 版本2.4.0:分离音频的人声和背景音乐

windows部署spleeter 版本2.4.0:分离音频的人声和背景音乐

一、Spleeter 是什么?

Spleeter 是由法国音乐流媒体公司 Deezer 开发并开源的一款基于深度学习的音频分离工具。它能够将音乐中的不同音轨(如人声、鼓、贝斯、钢琴等)分离为独立的音频文件,适用于音乐制作、学术研究、音频处理等领域。

二、核心功能

  1. 多音轨分离
    • 2stems :分离为 人声(vocals)伴奏(accompaniment)
    • 4stems :分离为 人声贝斯其他
    • 5stems :分离为 人声贝斯钢琴其他
  2. 高效处理
    • 支持 CPU 和 GPU(需 TensorFlow GPU 版本)加速。
    • 单曲处理仅需数秒至数分钟(取决于硬件配置)。
  3. 开源免费
    • 代码和预训练模型完全开源(GitHub MIT 协议)。
    • 无需商业授权,适合个人和学术用途。

三、安装过程

github地址: https://github.com/deezer/spleeter/tree/master

复制代码
1.创建conda虚拟环境  python使用3.9
conda create -n spleeter python=3.9
conda activate spleeter

2.安装依赖ffmpeg和libsndfile
conda install ffmpeg libsndfile

3.安装最新版spleeter
pip install spleeter

4.下载测试文件
wget https://github.com/deezer/spleeter/raw/master/audio_example.mp3

5.执行
spleeter separate -p spleeter:2stems -o output audio_example.mp3
最后在命令执行路径下生成目录output/audio_example,内部有两个文件,人声音文件vocals.wav和背景音乐文件accompaniment.wav

各种模型下载:2stems、4stems、5stems

https://github.com/deezer/spleeter/releases

四、报错处理

报错处理一:找不到指定的模块mkl_intel_thread.2.dll
复制代码
(spleeter) C:\Users\81097864\Downloads>spleeter separate -p spleeter:2stems -o output audio_example.mp3
INTEL oneMKL ERROR: 找不到指定的模块。 mkl_intel_thread.2.dll.
Intel oneMKL FATAL ERROR: Cannot load mkl_intel_thread.2.dll.

numpy和mkl的版本不对,卸载后重新安装,安装方式:

解决:建议直接下载numpy-1.24.5+mkl-cp39-cp39-win_amd64.whl下载地址:

https://github.com/cgohlke/numpy-mkl-wheels/releases

复制代码
(spleeter) C:\Users\81097864\Downloads>pip install numpy-1.23.5+mkl-cp39-cp39-win_amd64.whl
报错处理二:github模型2stems.tar.gz下载失败
复制代码
(spleeter) C:\Users\81097864\Downloads>spleeter separate -p spleeter:2stems -o output audio_example.mp3
INFO:spleeter:Downloading model archive https://github.com/deezer/spleeter/releases/download/v1.4.0/2stems.tar.gz
Traceback (most recent call last):
  File "d:\Miniconda3\envs\spleeter\lib\site-packages\httpx\_transports\default.py", line 61, in map_httpcore_exceptions
    yield
  File "d:\Miniconda3\envs\spleeter\lib\site-packages\httpx\_transports\default.py", line 106, in __iter__
    for part in self._httpcore_stream:
  File "d:\Miniconda3\envs\spleeter\lib\site-packages\httpcore\_sync\connection_pool.py", line 57, in __iter__
    for chunk in self.stream:
  File "d:\Miniconda3\envs\spleeter\lib\site-packages\httpcore\_bytestreams.py", line 56, in __iter__
    for chunk in self._iterator:
  File "d:\Miniconda3\envs\spleeter\lib\site-packages\httpcore\_sync\http2.py", line 435, in body_iter
    event = self.connection.wait_for_event(self.stream_id, timeout)
  File "d:\Miniconda3\envs\spleeter\lib\site-packages\httpcore\_sync\http2.py", line 242, in wait_for_event
    self.receive_events(timeout)
  File "d:\Miniconda3\envs\spleeter\lib\site-packages\httpcore\_sync\http2.py", line 249, in receive_events
    data = self.socket.read(self.READ_NUM_BYTES, timeout)
  File "d:\Miniconda3\envs\spleeter\lib\site-packages\httpcore\_backends\sync.py", line 61, in read
    return self.sock.recv(n)
  File "d:\Miniconda3\envs\spleeter\lib\contextlib.py", line 137, in __exit__
    self.gen.throw(typ, value, traceback)
  File "d:\Miniconda3\envs\spleeter\lib\site-packages\httpcore\_exceptions.py", line 12, in map_exceptions
    raise to_exc(exc) from None
httpcore.ReadTimeout: The read operation timed out

The above exception was the direct cause of the following exception:

2stems.tar.gz模型文件下载失败。可以手动下载https://github.com/deezer/spleeter/releases/download/v1.4.0/2stems.tar.gz后,解压到`spleeter separate`命令执行所在的路径下。

我的命令执行路径如下:

复制代码
(spleeter) C:\Users\81097864\Downloads>spleeter separate -p spleeter:2stems -o output audio_example.mp3

模型位置: 命令执行路径/pretrained_models/2stems

五、Windows用户注意

命令spleeter在 Windows可能上无法正常工作。这是一个已知问题,我们希望很快修复。在命令行中替换spleeter separatepython -m spleeter separate,应该可以正常工作。

六、指定模型文件路径

通过环境变量MODEL_PATH指定模型文件所在位置,2stems、4stems、5stems这些模型文件夹都是MODEL_PATH的子目录

复制代码
# 指定模型文件所在位置
(spleeter) D:\big-model>set MODEL_PATH=D:\big-model\spleeter-model

# 其他参数 
#--verbose:打印日志 
#-c : 指定输出文件格式
#-o : 指定结果文件目录
#-f :  指定结果文件名称
(spleeter) D:\big-model>spleeter separate --verbose -p spleeter:2stems -c mp3 -o D:\big-model\audio -f {filename}_{instrument}.{codec} D:\big-model\audio_example.mp3
INFO:tensorflow:Using config: {'_model_dir': 'D:\\big-model\\spleeter-model\\2stems', '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_save_checkpoints_secs': 600, '_session_config': gpu_options {
  per_process_gpu_memory_fraction: 0.7
}
, '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_train_distribute': None, '_device_fn': None, '_protocol': None, '_eval_distribute': None, '_experimental_distribute': None, '_experimental_max_worker_delay_secs': None, '_session_creation_timeout_secs': 7200, '_checkpoint_save_graph_def': True, '_service': None, '_cluster_spec': ClusterSpec({}), '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': '', '_evaluation_master': '', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1}
WARNING:tensorflow:From d:\Miniconda3\envs\spleeter\lib\site-packages\spleeter\separator.py:146: calling DatasetV2.from_generator (from tensorflow.python.data.ops.dataset_ops) with output_types is deprecated and will be removed in a future version.
Instructions for updating:
Use output_signature instead
WARNING:tensorflow:From d:\Miniconda3\envs\spleeter\lib\site-packages\spleeter\separator.py:146: calling DatasetV2.from_generator (from tensorflow.python.data.ops.dataset_ops) with output_shapes is deprecated and will be removed in a future version.
Instructions for updating:
Use output_signature instead
INFO:tensorflow:Calling model_fn.
INFO:tensorflow:Apply unet for vocals_spectrogram
WARNING:tensorflow:From d:\Miniconda3\envs\spleeter\lib\site-packages\keras\layers\normalization\batch_normalization.py:514: _colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.
Instructions for updating:
Colocations handled automatically by placer.
INFO:tensorflow:Apply unet for accompaniment_spectrogram
INFO:tensorflow:Done calling model_fn.
INFO:tensorflow:Graph was finalized.
INFO:tensorflow:Restoring parameters from D:\big-model\spleeter-model\2stems\model
INFO:tensorflow:Running local_init_op.
INFO:tensorflow:Done running local_init_op.
INFO:spleeter:File D:\big-model\audio\audio_example_accompaniment.mp3 written succesfully
INFO:spleeter:File D:\big-model\audio\audio_example_vocals.mp3 written succesfully

(spleeter) D:\big-model>
相关推荐
chen_2273 分钟前
windows系统安装wsl
windows·wsl
shandianchengzi1 小时前
【科普】安卓|安卓手机上如何简便实现Ctrl+Z(需要键盘或一台Windows电脑)
android·windows·智能手机·计算机外设·安卓·科普·记录
сокол13 小时前
【网安-Web渗透测试-内网渗透】域环境权限维持
服务器·windows·网络安全·系统安全
wj30558537814 小时前
课程 6:图生视频首次运行流程
人工智能·音视频
runafterhit14 小时前
显示调研专题-OLED 终端市场分析报告
音视频
天上路人14 小时前
A-59F所有应用模式说明
人工智能·硬件架构·音视频·语音识别·实时音视频
俊基科技14 小时前
A-29P深度解析:100dB回音消除与AI降噪的硬件设计实战
语音识别·ai降噪·回声消除·语音模组
玖釉-15 小时前
栈——栈的定义及基本操作
c++·windows·算法·图形渲染
取经蜗牛15 小时前
Windows 11 WSL + Ubuntu 24.04 安装指南
linux·windows·ubuntu
大树学长16 小时前
【QT开发】Windows 10 + Qt 5.15.2 手动编译安装 Qt OPC UA 模块完整记录
开发语言·windows·qt