当前位置: 首页 > news >正文

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 spleeter2.安装依赖ffmpeg和libsndfile
conda install ffmpeg libsndfile3.安装最新版spleeter
pip install spleeter4.下载测试文件
wget https://github.com/deezer/spleeter/raw/master/audio_example.mp35.执行
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_exceptionsyieldFile "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_iterevent = 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_eventself.receive_events(timeout)File "d:\Miniconda3\envs\spleeter\lib\site-packages\httpcore\_sync\http2.py", line 249, in receive_eventsdata = self.socket.read(self.READ_NUM_BYTES, timeout)File "d:\Miniconda3\envs\spleeter\lib\site-packages\httpcore\_backends\sync.py", line 61, in readreturn 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_exceptionsraise to_exc(exc) from None
httpcore.ReadTimeout: The read operation timed outThe 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

image-20250306161552746

五、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>

相关文章:

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

windows部署spleeter 版本2.4.0:分离音频的人声和背景音乐 一、Spleeter 是什么? Spleeter 是由法国音乐流媒体公司 Deezer 开发并开源的一款基于深度学习的音频分离工具。它能够将音乐中的不同音轨(如人声、鼓、贝斯、钢琴等)分…...

深度学习、宽度学习、持续学习与终身学习:全面解析与其在大模型方面的应用

目录 引言: 1. 深度学习(Deep Learning) 1.1 深度学习的基本概念 1.2 深度学习的数学原理 1.3 深度学习的特点 1.4 深度学习在大模型中的应用 2. 宽度学习(Wide Learning) 2.1 宽度学习的基本概念 2.2宽度学习…...

【量化科普】Arbitrage,套利

【量化科普】Arbitrage,套利 🚀量化软件开通 🚀量化实战教程 什么是套利? 套利(Arbitrage)是金融市场中的一种交易策略,指的是在不同市场或不同形式中同时买入和卖出相同或相似的金融产品&a…...

删除已加入 .gitignore却仍被git追踪的文件

.gitignore 文件只会影响未被跟踪的文件,而已经被 Git 跟踪的文件不会因为被添加到 .gitignore 而停止被跟踪。 eg:例如在创建.gitignore文件前,已经将sync.sh文件推送到远程分支,因此该文件已被git追踪。 去掉sync.sh文件追踪的步…...

pytest框架 核心知识的系统复习

1. pytest 介绍 是什么:Python 最流行的单元测试框架之一,支持复杂的功能测试和插件扩展。 优点: 语法简洁(用 assert 替代 self.assertEqual)。 自动发现测试用例。 丰富的插件生态(如失败重试、并发执…...

Spring Cloud Alibaba学习 5- Seata入门使用

Spring Cloud Alibaba学习 5- Seata入门使用 Seata是Spring Cloud Alibaba中用于分布式事务管理的解决方案 一. Seata的基本概念 1. Seata的三大角色 1> TC (Transaction Coordinator) - 事务协调者 维护全局和分支事务的状态,驱动全局事务提交或回滚。TC作…...

WebAssembly技术及应用了解

WebAssembly(Wasm)是一种为Web设计的高效、低级的二进制指令格式,旨在提升Web应用的性能并支持多种编程语言。以下是对其核心概念、优势、应用场景及开发流程的系统介绍: 1. 核心概念 二进制格式:Wasm采用紧凑的二进制…...

Deepseek中的MoE架构的改造:动态可变参数激活的MoE混合专家架构(DVPA-MoE)的考虑

大家好,我是微学AI,今天给大家介绍一下动态可变参数激活MoE架构(Dynamic Variable Parameter-Activated MoE, DVPA-MoE)的架构与实际应用,本架构支持从7B到32B的等多档参数动态激活。该架构通过细粒度难度评估和分层专家路由,实现“小问题用小参数,大问题用大参数”的精…...

NodeJS学习笔记

NodeJS软件安装 node环境安装: https://nodejs.org 安装好后的node通常在C:\Program Files\nodejs验证安装是否成功 node -v npm -v 进入REPL模式命令行模式 nodeNodeJS在REPL模式和编辑器使用 windos在dos下常用命令 windos命令: 1、cmd dos系统2、…...

【交通网络拓扑图实现原理深度解析】

交通网络拓扑图实现原理深度解析 简易demo地址 背景故事:交通网络调度可视化的演进 1. 项目背景 在现代城市轨道交通系统中,交通网络线路的可视化展示一直是一个重要而复杂的问题。传统的交通网络线路图往往采用静态图片方式展示,这种方式…...

【极客时间】浏览器工作原理与实践-2 宏观视角下的浏览器 (6讲) - 2.6 渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的?

https://time.geekbang.org/column/article/118826 2.6 渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的? 2.5介绍了渲染流水线中的 DOM 生成、样式计算和布局三个阶段,2.6讲解渲染流水线后面的阶段…...

NO2.C++语言基础|C++和Java|常量|重载重写重定义|构造函数|强制转换|指针和引用|野指针和悬空指针|const修饰指针|函数指针(C++)

6. C 和 Java 区别(语⾔特性,垃圾回收,应⽤场景等) 指针: Java 语⾔让程序员没法找到指针来直接访问内存,没有指针的概念,并有内存的⾃动管理功能,从⽽有效的防⽌了 C 语⾔中的指针…...

【CSS】---- 纯 CSS 实现无限滚动轮播

1. 前言 仅使用 CSS 创建一个具有无限滚动轮播的动画,无需 JavaScript。首先是无限滚动轮播动画效果在我们常见的开发中都是借用 JavaScript 实现,如果纯粹使用 CSS,我觉得还是一个比较有趣的。 2. 效果预览 3. 效果分析 一屏展示了三个图片元素;动画依次向左移动;三个图…...

软考架构师笔记-计算机网络

1.9 计算机网络 OSI/RM 七层模型 物理层 二进制传输(中继器、集线器) (typedef) 数据链路层 传送以帧为单位的信息(网桥、交换机、网卡) 网络层 分组传输和路由选择(三层交换机、路由器)ARP/RARP/IGMP/ICMP/IP 传输层 端到端的连接(TCP/UDP)在前向纠错系统中,当接…...

Spring MVC 页面重定向返回后通过nginx代理 丢失端口号问题处理

Spring MVC页面重定向通过Nginx代理后出现端口丢失问题,通常由以下原因及解决方案构成: #‌# 一、Nginx配置问题(核心原因)‌ ‌1. Host头传递不完整‌ Nginx默认未将原始请求的端口信息传递给后端,导致应用生成重定向…...

道可云人工智能每日资讯|亚马逊云业务部门成立智能体人工智能团队

道可云元宇宙每日简报(2025年3月6日)讯,今日元宇宙新鲜事有: 《杭州市富阳区未来产业培育行动计划(2025-2026年)》发布 3月3日,杭州市富阳区经信局正式发布了《杭州市富阳区未来产业培育行动计划(2025-2026年)》&…...

算力100问☞第72问:算力与算法、数据的关系是什么?

目录 1、数据是基础 2、算法是核心 3、算力是保障 4、三者的关系 5、实际应用中的体现 算力、算法和数据是人工智能和计算机科学领域的三个核心要素,它们之间相互依赖、相互促进,共同构成了现代计算系统的基础。以下是它们之间的关系: 1、数据是基础 定义:数据是信息…...

AI-Ollama本地大语言模型运行框架与Ollama javascript接入

1.Ollama Ollama 是一个开源的大型语言模型(LLM)平台,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。 Ollama 提供了一个简单的方式来加载和使用各种预训练的语言模型,支持文本生成、翻译、代码编写、问答等多种…...

Java开发的AI应用框架简述——LangChain4j、Spring AI、Agent-Flex

LangChain4j LangChain4j官网 star很多,文档齐全,在AI服务中,提供了丰富的功能,示例代码丰富。 简介 是一个功能丰富、易于使用的Java AI开发框架,特别适合需要快速集成和使用大型语言模型的Java开发者。 项目特点 …...

【算法day2】无重复字符的最长子串 两数之和

无重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 https://leetcode.cn/problems/longest-substring-without-repeating-characters/ class Solution { public:int lengthOfLongestSubstring(string s) {int sub_length …...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

三体问题详解

从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...

三分算法与DeepSeek辅助证明是单峰函数

前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...

从面试角度回答Android中ContentProvider启动原理

Android中ContentProvider原理的面试角度解析,分为​​已启动​​和​​未启动​​两种场景: 一、ContentProvider已启动的情况 1. ​​核心流程​​ ​​触发条件​​:当其他组件(如Activity、Service)通过ContentR…...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤: 第一步: 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为: // 改为 v…...

MeshGPT 笔记

[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭!_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...

起重机起升机构的安全装置有哪些?

起重机起升机构的安全装置是保障吊装作业安全的关键部件,主要用于防止超载、失控、断绳等危险情况。以下是常见的安全装置及其功能和原理: 一、超载保护装置(核心安全装置) 1. 起重量限制器 功能:实时监测起升载荷&a…...