文章目录

  • 什么是源分离?
  • 使用手册
    • 使用2stems模型
    • 使用4stems模型
    • 使用5stems模型
    • 批量处理
    • 训练模型
    • 评估模型
    • 使用Docker映像
    • 建立影像
    • 运行容器
  • windows下配置spleeter及测试

近日,Deezer开源了一个名为Spleeter项目,该项目利用深度学习对音乐曲目进行源分离。它使用Keras和TensorFlow构建,Spleeter可以帮助音乐信息检索(MIR)领域的研究机构,充分利用最先进的源分离算法的强大功能,它以基于Tensorflow的Python库的形式出现,包含针对2、4和5个词干分隔的预训练模型。

什么是源分离?

音乐录音通常是几个单独乐器音轨的组合(主音,鼓,贝斯,钢琴等)。
音乐源分离的任务是:给定混合音我们是否可以恢复这些分离的音轨(有时称为tems)

这个任务的应用范围非常广泛:比如混音、上混音、主动聆听、教育目的,还可以预处理其他任务,例如转录。
通过多种乐器的混合,像Spleeter这样的源分离引擎会输出一组单独的音轨或词干。
有趣的是,我们的大脑非常擅长分离乐器。只需专注于该曲目中的一种乐器,您就可以与其他乐器完全区别开来,并且听到它。但这并不是真正的分离,您仍然可以听到所有其他部分。
在许多情况下,可能无法准确恢复已混合在一起的各个音轨。因此,面临的挑战是尽可能地逼近它们,也就是说,在不造成太多失真的情况下,尽可能地接近原作。
多年来,来自世界各地的数十个杰出研究团队探索了许多策略。
近来,取得了突破性的进步,这主要归功于机器学习方法的进步。
为了跟踪最新进展,人们一直在国际评估活动中比较他们的算法。所以我们知道Spleeter的性能与提出的最佳算法相匹配。
此外,Spleeter非常快。如果您运行的是GPU版本,则预期分离速度比实时速度快100倍,这使其成为处理大型数据集的理想选择。

数据集
mushdb

使用手册

命令 描述
train 训练源分离模型,您需要一个单独的轨道数据集才能使用它
evaluate 在musDB 测试集中进行预训练的模型评估

要获得有关separate 命令可用的不同选项的帮助 ,请键入:

spleeter separate -h

使用2stems模型

您可以使用默认的2个词干 (人声/伴奏)预训练模型直接分离音频文件, 如下所示:

spleeter separate -i audio_example.mp3 -o audio_output

-i 选项用于提供音频文件名列表。
-o 是提供输出路径在哪里写分离的wav文件。
由于该命令将下载预先训练的模型,因此在第一次运行时可能会花费一些时间。如果一切顺利,则应该获得一个audio_output/audio_example 包含两个文件的文件夹 : accompaniment.wav 和 vocals.wav。

使用4stems模型

您还可以使用预先训练的4个主音色 (人声/贝斯/鼓/其他)模型:
该 -p 选项用于提供模型设​​置。它可以是Spleeter 嵌入式设置标识符2 ,也可以是 JSON 文件配置的路径 如:
这一次,它会生成四个文件: vocals.wav, drums.wav, bass.wav 和 other.wav。
目前,可以使用以下嵌入式配置:

  • spleeter:2stems
  • spleeter:4stems
  • spleeter:5stems

使用5stems模型

最后,开箱即用的还有经过预训练的 5个 主音(人声/贝斯/鼓/钢琴/其他)模型:

spleeter separate -i audio_example.mp3 -o audio_output -p spleeter:5stems

这将产生五个文件: vocals.wav, drums.wav, bass.wav, piano.wav 和 other.wav

批量处理

separate 每次调用模型时,该命令都会构建模型,并在首次下载时进行下载。如果您处理单个音频文件(尤其是简短的音频文件),则与单独进行分离过程相比,此过程可能会很长。如果要分离多个文件,则建议通过一次调用进行所有分离 separate:

spleeter separate \-i <path/to/audio1.mp3> <path/to/audio2.wav> <path/to/audio3.ogg> \-o audio_output
spleeter separate -i E:\Sabinetek\spleeter-master\DanceMonkey.mp3 -p spleeter:2stems -o output

训练模型

为了训练自己的模型,您需要:

  • 分离文件的数据集,例如mushdb
  • 数据集必须在CSV 文件中描述 : 一个用于训练 ,一个用于 验证(用于生成训练数据)。
  • JSON配置文件,收集所需的培训和路径的所有参数 的CSV 文件。

评估模型

为了评估模型,您需要mushdb数据集。例如,您可以通过这种方式评估提供的4个词干预训练模型:

spleeter evaluate -p spleeter:4stems --mus_dir </path/to/musdb> -o eval_output

为了使用多通道维纳滤波执行分离,您需要添加 --mwf 选项(以获取报告的结果):

spleeter evaluate -p spleeter:4stems --mus_dir </path/to/musdb> -o eval_output --mwf

使用Docker映像

我们提供的图像是为了将Spleeter 与 Docker一起使用 ( GPU 和 CPU 图像)。您首先需要安装 Docker,例如 Docker Community Edition。

建立影像

您可以使用docker build 命令从克隆的存储库构建映像 :

git clone https://github.com/deezer/spleeter
cd spleeter
#构建CPU映像。
docker build -f docker / cpu.Dockerfile -t spleeter:cpu。
#构建GPU映像。
docker build -f docker / gpu.Dockerfile -t spleeter:gpu。

运行容器

内置图像入口点是 Spleeter的 主要命令 spleeter。因此,您可以 separate 使用docker run3命令运行此先前构建的映像来运行该 命令,并使用已安装的目录进行输出写入:

# Run with CPU :
docker run -v $(pwd)/output:/output spleeter:cpu separate -i audio_example.mp3 -o /output
# Or with GPU if available :
nvidia-docker run -v $(pwd)/output:/output spleeter:gpu separate -i audio_example.mp3 -o /output

要通过GPU运行命令 ,应使用 nvidia-docker 命令而不是 docker command。此替代命令允许容器 从主机访问 Nvidia 驱动程序和 GPU设备。

这将分离作为输入提供的音频文件(此处 audio_example.mp3 嵌入在生成的图像中),并将分离的文件 vocals.wav 和 accompaniment.wav 您的计算机放在已安装的输出文件夹中 output/audio_example。

要使用自己的音频文件,您需要在运行图像时创建容器音量,我们也建议您创建一个用于存储下载的模型的音量。这样可以避免 Spleeter 每次运行映像时都下载模型文件。

为此,我们首先创建一些环境变量:

export AUDIO_IN='/path/to/directory/with/audio/file'
export AUDIO_OUT='/path/to/write/separated/source/into'
export MODEL_DIRECTORY='/path/to/model/storage'

然后我们可以separate 通过container 运行 命令:

# Run with CPU :
docker run -v $(pwd)/output:/output spleeter:cpu separate -i audio_example.mp3 -o /output
# Or with GPU if available :
nvidia-docker run -v $(pwd)/output:/output spleeter:gpu separate -i audio_example.mp3 -o /output

non️至于非docker用法,我们建议您一次调用Spleeter 映像执行多个文件的分离

您可以使用 train 命令(您应该主要在GPU上使用 它,因为它在计算上非常昂贵)以及 使用musevalevaluate 对musDB测试数据集4 进行评估的 命令

# Model training.
nvidia-docker run -v </path/to/musdb>:/musdb spleeter:gpu train -p configs/musdb_config.json -d /musdb
# Model evaluation.
nvidia-docker run -v $(pwd)/eval_output:/eval_output -v </path/to/musdb>:/musdb spleeter:gpu evaluate -p spleeter:4stems --mus_dir /musdb -o /eval_output

您需要请求访问权限并从此处下载
在GPU上,分离过程应该非常快(在musdb测试集上应该少于90s),但是执行 museval 需要更多的时间(几个小时)

windows下配置spleeter及测试

1.下载压缩包到本地并解压
github
2. 安装ffmpeg(windows版)
win64版本ffmpeg
将依赖ffmpeg(.exe文件)放入spleeter目录下
这里有直接下载好的
3.安装spleeter

pip install spleeter

4.运行程序

spleeter separate -i E:\Sabinetek\spleeter-master\DanceMonkey.mp3 -p spleeter:2stems -o output


6.看效果
背景声:

分离的声音:

点此试听音乐效果

spleeter分离伴奏和人声相关推荐

  1. 使用spleeter分离背景音乐与人声

    操作环境:Ubuntu 20.04.2 LTS x64 in VMware虚拟机 来源 spleeter-github spleeter-github-wiki Ubuntu环境变量配置 步骤 安装s ...

  2. 如何分离伴奏和人声?分享三个好用的软件

    在现代音乐制作的世界中,有一项令人着迷的技术,那就是提取伴奏与人声.无论是对于专业的音乐制作人还是对于普通的音乐爱好者来说,这项技术都具有巨大的吸引力.通过提取伴奏与人声,我们可以深入研究音乐的各个层 ...

  3. 字节跳动这项研究火了:基于残差UNet架构 ,一键分离伴奏和人声

    来源:机器之心 字节跳动的这项研究,可以完美将混合音频分离成单个源任务. 音乐源分离 (MSS) 是将混合音频分离成单个源的任务,例如人声.鼓.伴奏等.MSS 是音乐信息检索 (MIR) 的重要内容, ...

  4. 使用spleeter分离音频文件中的伴奏和人声

      Spleeter 是 Deezer 源分离库,带有用 Python 编写并使用 TensorFlow 的预训练模型. 它使训练音乐源分离模型变得容易(假设您有一个孤立源的数据集),并提供已经训练过 ...

  5. 去除人声--安装和使用spleeter分离人声和背景声

    在实现过程中遇到了一些问题也在此记录下来,希望大家能少踩这些坑. 文章目录 前言 一.最后效果是什么样的 二.安装FFmpeg(不能跳) 注意FFmpeg这步必须安装 1.打开官网 三.安装splee ...

  6. 人声伴奏提取人声的软件有哪些?如何实现声伴奏提取人声?

    或许很多人不太了解人声伴奏提取人声是什么,其实这项技术在我们音乐和娱乐产业中是有着广泛的应用的,比如声伴奏提取人声可以将原唱和伴奏分离,方便后期的混音和处理,在音乐制作过程中,制作人员可以使用这种技术 ...

  7. KTV 歌房如何实现伴奏与人声同步功能

    本文讲述即构平台 KTV 歌房在iOS环境下怎么实现伴奏与人声同步功能. 相关阅读<在线KTV 歌房概述,架构,应用数据流及实现方式> 1.功能实现流程图 当主唱开始唱歌时候,需要播放伴奏 ...

  8. K歌伴奏与人声延迟测试

    一.测试前期准备 两台测试手机,一台安装好所需测试的app,一台播放人声 mac电脑一台,需要安装audition 测试case一个,为样本语音 安静的测试环境 二.测试环境搭建 1.K歌伴奏与人声- ...

  9. 你知道怎么提取音乐伴奏消除人声吗?小白也能轻松操作

    音乐是人类创造的最美妙的艺术形式之一,它能够让我们沉浸于旋律和节奏中,感受到音乐带来的情感和力量.而如今,随着数字音频技术的不断发展,我们可以更轻松地掌握音乐制作和编辑的工具,其中包括提取音乐伴奏并消 ...

最新文章

  1. 【迁移学习(Transfer L)全面指南】迁移学习中的bottlenecks(瓶颈层)
  2. MPLS TE基本配置-OSPF
  3. weedfs文件使用记录
  4. 怎样的代码算是好代码?
  5. mapreduce的规约(Combiner)
  6. java -锁(公平、非公平锁、可重入锁【递归锁】、自旋锁)
  7. jvm垃圾回收机制_JVM 垃圾回收机制之堆的分代回收
  8. asp.net 报表页面模板_CP:基于JSON配置和vue-cli插件机制的模板复用方案
  9. 三层BP神经网络的python实现
  10. 【数据仓库】什么是数据仓库?
  11. Bailian2685 打印水仙花数【入门】
  12. WF4.0 基础篇 (二十五)(补充) ActivityFunc 与 InvokeFunc
  13. 选择条件WD_SELECT_OPTIONS_20
  14. 继续南山聊代码!Apache Kafka × Apache Flink Meetup · 深圳站
  15. VS2010 用户自定义工具箱控件的制作方法
  16. 熊猫烧香delphi编写免费源代码
  17. 【纯干货】中国的支付清算体系是怎么玩的?
  18. 费尔个人防火墙采用两种封包过滤技术
  19. Doris开启Stream Load记录
  20. 谷歌浏览器显示喔唷崩溃啦 google chrome浏览器崩溃了

热门文章

  1. 商汤研究院基础视觉组正式员工(校招/社招)实习生长期招聘
  2. rknn3399pro 2小时入门指南(八)详细教程指导你一步到位训练得到yolov3 rknn模型
  3. 51单片机精确延时设计
  4. 利用ffmpeg实现Windows音视频录制
  5. 在XP上同时运行IE6,IE7,IE8,IE9
  6. Python实现C++回调图片:运用高效的跨语言技术
  7. ArcMap-network analyst
  8. 努比亚Z11系统服务器选择,努比亚Z11系统升级,赶紧来感受一下脱胎换骨的流畅感...
  9. 【一周头条盘点】中国软件网(2018.2.26~2018.3.2)
  10. 努比亚z11mini 使用 移动物联卡