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>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/71502.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/71502.shtml
英文地址,請注明出處:http://en.pswp.cn/web/71502.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

QTS單元測試框架

1.QTS單元測試框架介紹 目前QTS項目采用C/C語言,而CppUnit就是xUnit家族中的一員,它是一個專門面向C的單元測試框架。因此,QTS采用CppUnit測試框架是比較理想的選擇。 CppUnit按照層次來管理測試,最底層的就是TestCase,當有了幾個TestCase以后,可以將它們組織成Te…

dify + ollama + deepseek-r1+ stable-diffusion 構建繪畫智能體

故事背景 stable-diffusion 集成進 dify 后,我們搭建一個小智能體,驗證下文生圖功能 業務流程 #mermaid-svg-6nSwwp69eMizP6bt {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6nSwwp69eMiz…

分享幾個論文校對相關的deepseek提示詞

論文校對 1.檢查這段文字是否有語法或風格錯誤:[在此處粘貼您的文本]。 2.審查我的[文件類型,例如,“論文”]中的這一段落是否有語法或風格錯誤:[在此處粘貼您的文本]。 3.請審查我關于[具體主題,例如,…

【極光 Orbit?STC8A-8H】02. STC8 單片機工程模板創建

【極光 Orbit?STC8A-8H】02. STC8 單片機工程模板創建 七律 單片機 小小芯片大乾坤,集成世界在其中。 初學雖感千重難,實踐方知奧妙通。 今天的講法和過去不同,直接來一個多文件模塊化的工程模板創建,萬事開頭難,…

mac安裝nvm=>node=>nrm

下載并安裝 NVM 運行以下命令下載并安裝 NVM: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash 配置環境變量 vim ~/.zshrc 按 i 將如下代碼復制進去,controlc ,再按 :wq完成編輯 export NVM_DIR…

K8S學習之基礎十一:k8s中容器鉤子

容器鉤子 容器鉤子分為post-start和pre-stop post-start:容器啟動后執行的命令 pre-stop:容器關閉前執行的命令,可用于優雅關閉 # 分別定義兩個鉤子,啟動pod后更新index.html,關閉pod前正常關閉服務 vi post-pre.…

K8s 1.27.1 實戰系列(三)安裝網絡插件

Kubernetes 的網絡插件常見的有 Flannel 和 Calico ,這是兩種主流的 CNI(容器網絡接口)解決方案,它們在設計理念、實現方式、性能特征及適用場景上有顯著差異。以下是兩者的綜合對比分析: 一、Flannel 和 Calico 1. 技術基礎與網絡實現 Flannel 核心機制:基于 Overlay …

【五.LangChain技術與應用】【24.LangChain RAG文本向量化與存儲:智能檢索的核心技術】

凌晨三點,北京中關村的某棟辦公樓依然燈火通明。28歲的算法工程師小李盯著屏幕上的代碼,突然拍案而起:"終于成了!"他開發的智能客服系統在連續失敗78次后,首次準確識別出用戶"我想換個能打游戲的便宜手機"的真實需求——需要兼顧游戲性能和價格的機型…

深度學習五大模型:CNN、Transformer、BERT、RNN、GAN詳細解析

卷積神經網絡(Convolutional Neural Network, CNN) 原理 :CNN主要由卷積層、池化層和全連接層組成。卷積層通過卷積核在輸入數據上進行卷積運算,提取局部特征;池化層則對特征圖進行下采樣,降低特征維度&…

特征分解(Eigen decomposition)在深度學習中的應用與理解

特征分解在深度學習中的應用與理解 特征分解(Eigendecomposition)是線性代數中的一個核心工具,在深度學習領域有著廣泛的應用,尤其是在涉及矩陣操作和概率模型時。對于研究者來說,理解特征分解不僅有助于掌握數學基礎…

分布式ID生成方案:數據庫號段、Redis與第三方開源實現

分布式ID生成方案:數據庫號段、Redis與第三方開源實現 引言 在分布式系統中,全局唯一ID生成是核心基礎能力之一。本文針對三種主流分布式ID生成方案(數據庫號段模式、Redis方案、第三方開源框架)進行解析,從實現原理…

rabbitmq-amqp事務消息+消費失敗重試機制+prefetch限流

1. 安裝和配置 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency><dependency> <groupId>com.fasterxml.jackson.core</groupId> <arti…

【Python】05、Python運算符

文章目錄 1.算術運算符2.賦值運算符3.關系運算符4.邏輯運算符4.1 布爾值邏輯運算4.2 非布爾值的邏輯運算符 5.條件運算符6.運算符優先級 運算符也稱為操作符&#xff0c;可以對一個或多個值進行運算或各種操作。比如、-、都屬于運算符 1.算術運算符 加法 如果是兩個字符串之間…

2025-03-06 學習記錄--C/C++-PTA 習題6-6 使用函數輸出一個整數的逆序數

合抱之木&#xff0c;生于毫末&#xff1b;九層之臺&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、題目描述 ?? 二、代碼&#xff08;C語言&#xff09;?? #include <stdio.h>int reverse( int number );int main…

簡記_硬件系統設計之需求分析要點

目錄 一、 功能需求 二、 整體性能需求 三、 用戶接口需求 四、 功耗需求 五、 成本需求 六、 IP和NEMA防護等級需求 七、 認證需求 功能需求 供電方式及防護 供電方式&#xff1a;市電供電、外置直流穩壓電源供電、電池供電、PoE&#xff08;Power Over Ether…

[原創](Modern C++)現代C++的關鍵性概念: 利用“概念(Concepts)“,可以優雅地約束模板參數

[作者] 常用網名: 豬頭三 出生日期: 1981.XX.XX 企鵝交流: 643439947 個人網站: 80x86匯編小站 編程生涯: 2001年~至今[共24年] 職業生涯: 22年 開發語言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 開發工具: Visual Studio、Delphi、XCode、Eclipse…

Self-Pro: A Self-Prompt and Tuning Framework for Graph Neural Networks

Self-Pro: A Self-Prompt and Tuning Framework for Graph Neural Networks ?#paper/GFM/GNN-BASED#? #paper/???#? 注意&#xff1a;這篇文章是每個圖一個GCN模型&#xff0c;而不是所有圖一個GCN 模型 算是最早的涉及異配圖的prompt了 貢獻和動機&#xff1a; 非對…

寶塔 Linux 計劃任務中添加運行項目網站PHP任務-定時任務

一、指定php版運行&#xff0c; cd /www/wwwroot/www.xxx.com/ && /www/server/php/56/bin/php think timedtasks start >> /tmp/timedtasks.log 2>&1 二、不指定php版 cd /www/wwwroot/www.xxx.com/ && php think timedtasks start >> …

【電控筆記z29】擾動估測器DOB估測慣量J-摩擦系數B

基本原理 擾動估測器的核心思想是通過向電機系統施加特定的擾動信號&#xff0c;觀察系統響應的變化&#xff0c;然后利用系統的動態模型和控制理論來估計未知參數&#xff0c;如慣量和摩擦系數 。一般基于電機的運動方程建立數學模型&#xff0c;結合觀測到的電機實際運行數據…

要查看 SQLite 數據庫中的所有表,可以通過查詢 SQLite 的系統表 sqlite_master

要查看 SQLite 數據庫中的所有表&#xff0c;可以查詢 SQLite 的系統表 sqlite_master。 每個 SQLite 數據庫都包含一個名為 sqlite_master 的系統表。該表定義了數據庫的模式&#xff0c;存儲了數據庫中所有表、索引、視圖和觸發器等對象的信息。 通過查詢 sqlite_master&am…