本地运行 AI 音频分离开源项目 - Spleeter「Gpt890」

技术 2024-03-14 09:57 0


把音频中的不同音频源分离出来,是影音处理领域中的常用操作。

最普遍的需求就是把人声、背景音乐提取出来。

Spleeter 是开源的音频分离工具,分离效果非常好。

项目地址 github.com/deezer/spleeter

Spleeter 使用 TensorFlow 进行的机器学习,训练好了3种模型:

1)2 stems -- 人声、伴奏

2)4 stems -- 人声、鼓、贝斯、其他

3)5 stems -- 人声、鼓、贝斯、钢琴、其他

此外,Spleeter 也可以让你轻松的训练自己的模型。

下面是 Spleeter 的本地安装运行过程。

1. 安装依赖

必须先安装好 ffmpeg 和 libsndfile。

Spleeter 项目文档中是使用 conda 安装的。

建议使用 conda 安装,我刚开始没用 conda,折腾好久也没装好,后来使用 conda 一次就OK了

没装 conda 的,先去官网下载安装。

推荐安装 Anaconda,这个 conda 用于科学计算。它包含了 Vonda、Python 和超过 150 个科学软件包及其依赖项。

下载地址 anaconda.com/download

安装后,设置好环境变量,使命令行中可以执行 conda 命令。

conda 搞定后,创建 python 虚拟环境。

因为,安装 Spleeter 一定要使用 Python 3.10

创建虚拟环境,指定 python 版本:

conda create -n spleeter_env python=3.10

激活刚创建的环境:

activate spleeter_env

执行安装依赖命令:

conda install -c conda-forge ffmpeg libsndfile

2. 安装 spleeter

只要 python 3.10 和依赖安装好之后,spleeter 安装就很简单了。

我之前安装时主要就是卡在这两部分。

安装 spleeter:

pip install spleeter

这个过程比较长,因为 spleeter 依赖库非常多,耐心等待一会儿。

3. 运行 spleeter

运行命令:

spleeter separate -p spleeter:2stems -o output test.mp3

其中 -p spleeter:2stems 指定了使用 2stems 模型,也就是分离人声和伴奏。

第一次运行时,会自动下载 2stems 模型,时间会比较长,不要以为是死机了,耐心等待。

test.mp3 指定了要分离的目标音频文件。

-o output 参数指定了分离后文件的目录,这里是放在了 output 目录中。运行完成后,Spleeter 会自动在其中创建一个文件夹(以音频文件名命名),里面是分离好的音频文件,accompaniment.wav 和 vocals.wav。

运行完成之后,结果文件结构:

├─output
│  ├─test
│  │      accompaniment.wav
│  │      vocals.wav

播放分离后的音频,效果很棒,完全符合预期。

4. spleeter 性能

我的测试音频长度48秒,spleeter 10秒运行完成。

spleeter 对电脑配置的要求不高。

我的电脑配置:

  • CPU -- AMD Ryzen 7 5700x
  • 内存 -- 32G
  • 显卡 -- RTX 4060Ti 16G

spleeter 这10秒的运行期间,只有瞬间的资源占用高峰,CPU 达到了 70%,显卡达到了 20%,内存没有明显变化。


Spleeter 的分离效果、性能都是相当优秀的,如果你有音频分离的需求,推荐尝试。

#音频分离,#人声提取,#Spleeter,#gpt890