音乐人声分离工具:极简的人声和背景音乐分离工具

2024-01-20 07:12

本文主要是介绍音乐人声分离工具:极简的人声和背景音乐分离工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是一个极简的人声和背景音乐分离工具,本地化网页操作,无需连接外网,使用 2stems/4stems/5stems 模型。

将一首歌曲或者含有背景音乐的音视频文件,拖拽到本地网页中,即可将其中的人声和音乐声分离为单独的音频wav文件,可选单独分离“钢琴声”、“贝斯声”、“鼓声”等

自动调用本地浏览器打开本地网页,模型已内置,无需连接外网下载。

支持视频(mp4/mov/mkv/avi/mpeg)和音频(mp3/wav)格式

只需点两下鼠标,一选择音视频文件,二启动处理。

预编译Win版使用方法/Linux和Mac源码部署

  1. 点击此处打开Releases页面下载预编译文件;

  2. 下载后解压到某处,比如 E:/vocal-separate;

  3. 双击 start.exe ,等待自动打开浏览器窗口即可;

  4. 点击页面中的上传区域,在弹窗中找到想分离的音视频文件,或直接拖拽音频文件到上传区域,然后点击“立即分离”,稍等片刻,底部会显示每个分离文件以及播放控件,点击播放;

  5. 如果机器拥有英伟达GPU,并正确配置了CUDA环境,将自动使用CUDA加速。

源码部署(Linux/Mac/Window)

  1. 要求 python 3.9->3.11

  2. 创建空目录,比如 E:/vocal-separate, 在这个目录下打开 cmd 窗口,方法是地址栏中输入 cmd, 然后回车。

  3. 使用git拉取源码到当前目录 git clone git@github.com:jianchang512/vocal-separate.git .

  4. 创建虚拟环境 python -m venv venv

  5. 激活环境,win下命令 %cd%/venv/scripts/activate,linux和Mac下命令 source ./venv/bin/activate

  6. 安装依赖: pip install -r requirements.txt

  7. win下解压 ffmpeg.7z,将其中的ffmpeg.exe和ffprobe.exe放在项目目录下, linux和mac 到 ffmpeg官网下载对应版本ffmpeg,解压其中的ffmpeg和ffprobe二进制程序放到项目根目录下

  8. 下载模型压缩包,在项目根目录下的 pretrained_models 文件夹中解压,解压后,pretrained_models中将有3个文件夹,分别是2stems/3stems/5stems

  9. 执行 python  start.py ,等待自动打开本地浏览器窗口。

API 

接口地址: http://127.0.0.1:9999/api

请求方法: POST

请求参数:

file: 要分离的音视频文件model: 模型名称 2stems,4stems,5stems

返回响应: json code:int, 0 处理成功完成,>0 出错

msg:str,  出错时填充错误信息data: List[str], 每个分离后的wav url地址,例如 ['http://127.0.0.1:9999/static/files/2/accompaniment.wav']status_text: dict[str,str], 每个分离后wav文件的包含信息,{'accompaniment': '伴奏', 'bass': '低音', 'drums': '鼓', 'other': '其他', 'piano': '琴', 'vocals': '人声'}
import requests
# 请求地址
url = "http://127.0.0.1:9999/api"
files = {"file": open("C:\\Users\\c1\\Videos\\2.wav", "rb")}
data={"model":"2stems"}
response = requests.request("POST", url, timeout=600, data=data,files=files)
print(response.json()){'code': 0, 'data': ['http://127.0.0.1:9999/static/files/2/accompaniment.wav', 'http://127.0.0.1:9999/static/files/2/vocals.wav'], 'msg': '分离成功
', 'status_text': {'accompaniment': '伴奏', 'bass': '低音', 'drums': '鼓', 'other': '其他', 'piano': '琴', 'vocals': '人声'}}

CUDA 加速支持

安装CUDA工具 详细安装方法

如果你的电脑拥有 Nvidia 显卡,先升级显卡驱动到最新,然后去安装对应的 CUDA Toolkit 11.8 和 cudnn for CUDA11.X。

安装完成成,按Win + R,输入 cmd然后回车,在弹出的窗口中输入nvcc --version,确认有版本信息显示,类似该图:

然后继续输入nvidia-smi,确认有输出信息,并且能看到cuda版本号,类似该图:

注意事项

  1. 中文音乐或中式乐器,建议选择使用2stems模型,其他模型对“钢琴、贝斯、鼓”可单独分离出文件;

  2. 如果电脑没有NVIDIA显卡或未配置cuda环境,不要选择 4stems和5stems模型,尤其是处理较长时长的音频时, 否则很可能耗尽内存。

项目链接

https://github.com/jianchang512/vocal-separate

这篇关于音乐人声分离工具:极简的人声和背景音乐分离工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/625181

相关文章

Java中的工具类命名方法

《Java中的工具类命名方法》:本文主要介绍Java中的工具类究竟如何命名,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java中的工具类究竟如何命名?先来几个例子几种命名方式的比较到底如何命名 ?总结Java中的工具类究竟如何命名?先来几个例子JD

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

MySql match against工具详细用法

《MySqlmatchagainst工具详细用法》在MySQL中,MATCH……AGAINST是全文索引(Full-Textindex)的查询语法,它允许你对文本进行高效的全文搜素,支持自然语言搜... 目录一、全文索引的基本概念二、创建全文索引三、自然语言搜索四、布尔搜索五、相关性排序六、全文索引的限制七

基于Java实现回调监听工具类

《基于Java实现回调监听工具类》这篇文章主要为大家详细介绍了如何基于Java实现一个回调监听工具类,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录监听接口类 Listenable实际用法打印结果首先,会用到 函数式接口 Consumer, 通过这个可以解耦回调方法,下面先写一个

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

基于Python打造一个全能文本处理工具

《基于Python打造一个全能文本处理工具》:本文主要介绍一个基于Python+Tkinter开发的全功能本地化文本处理工具,它不仅具备基础的格式转换功能,更集成了中文特色处理等实用功能,有需要的... 目录1. 概述:当文本处理遇上python图形界面2. 功能全景图:六大核心模块解析3.运行效果4. 相

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

基于Python实现高效PPT转图片工具

《基于Python实现高效PPT转图片工具》在日常工作中,PPT是我们常用的演示工具,但有时候我们需要将PPT的内容提取为图片格式以便于展示或保存,所以本文将用Python实现PPT转PNG工具,希望... 目录1. 概述2. 功能使用2.1 安装依赖2.2 使用步骤2.3 代码实现2.4 GUI界面3.效

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in