🎤 开源语音分离工具大比拼:人声 VS 背景音乐 ⚔️ - 获取干净训练语音 (数据截至 2025年4月17日)
在音频处理,特别是机器学习训练数据的准备中,获取纯净的人声(去除背景音乐或噪声)是一个常见的痛点。幸运的是,开源社区提供了许多强大的工具来帮助我们完成这项任务!🎉
本文将盘点一系列 GitHub 上的开源语音分离项目,重点关注那些能有效分离“人物语音”和“背景音乐”的工具,并根据 GitHub 星标 ⭐(反映社区关注度和活跃度)从高到低进行介绍。请注意,本文中提及的 GitHub 星标数据统计于 2025年4月17日(根据用户提供的数据),这些数字是动态变化的,反映了当时的社区热度。 无论你是需要为语音识别(ASR)、声纹识别(Speaker Verification)还是其他语音任务准备训练数据,这里总有一款工具适合你!
🚀 开源语音分离工具巡礼 (按 Star ⭐ 数排序 - 数据截至 2025年4月17日)
-
Spleeter (⭐ 26.7k+)
- GitHub: https://github.com/deezer/spleeter
- 简介: 由音乐流媒体服务 Deezer 开发,是目前最流行、最易用的音乐源分离工具之一。主要设计用于分离音乐中的不同音轨(人声、鼓、贝斯、其他)。提取
vocals
轨道即可得到人声。 - 💪 优点: 安装简单(pip install spleeter),命令行/Python 库调用方便,提供多种高质量预训练模型(2/4/5 stems),效果稳定。
- 🤔 注意: 主要基于音乐数据训练,对纯粹的说话声可能不是最优,分离结果可能存在微小的“串音”(bleeding)。
- 适合: 快速上手,通用音乐/人声分离场景。
-
Ultimate Vocal Remover GUI (⭐ 20.3k+)
- GitHub: https://github.com/Anjok07/ultimatevocalremovergui
- 简介: 这是一个非常受欢迎的图形用户界面(GUI)工具,它集成了多种业界顶尖的音频分离模型(如 MDX-Net, Demucs, VR Architecture 等)。
- 💪 优点: 无需编码!用户友好的界面,可以选择不同的后端模型进行尝试,参数调整直观,效果通常非常好。支持多种模型集成和模型融合(Ensemble)。
- 🤔 注意: 本身是一个界面和模型管理器,需要下载对应的模型文件。依赖底层模型的效果。
- 适合: 不想写代码、希望通过图形界面尝试不同顶尖模型并调优的用户。
-
pyvideotrans (⭐ 12.5k+)
- GitHub: https://github.com/jianchang512/pyvideotrans
- 简介: 主要目标是视频翻译和字幕生成,但其流程中包含了人声/背景声分离的功能(通常调用
vocal-remover
或类似库),以便单独处理人声进行识别和翻译。 - 💪 优点: 提供了一个集成化的视频处理流程,包含了分离步骤。对于需要处理视频源并提取人声进行后续操作(如 ASR)的场景很方便。
- 🤔 注意: 语音分离是其功能的一部分,而非核心。分离效果依赖其内部使用的具体分离模型。
- 适合: 需要处理视频,并顺带分离人声用于转录/翻译等目的。
-
FunASR (⭐ 9.8k+)
- GitHub: https://github.com/modelscope/FunASR
- 简介: 阿里达摩院 ModelScope 社区推出的工业级语音识别工具链。虽然核心是 ASR,但也包含语音增强、分离等前端处理能力,可以用来提升嘈杂环境下的语音质量。
- 💪 优点: 集成度高,与 ModelScope 生态结合紧密,提供了工业级的 ASR 相关模型和方案,其语音增强模块可用于去噪/分离。
- 🤔 注意: 主要设计目标是服务于 ASR,分离功能可能作为预处理步骤存在,需要探索其具体接口和模型。
- 适合: 需要结合语音识别、语音增强等多种功能的开发者,希望使用工业级方案。
-
SpeechBrain (⭐ 9.7k+)
- GitHub: https://github.com/speechbrain/speechbrain
- 简介: 一个基于 PyTorch 的一体化、灵活、用户友好的语音处理工具包。涵盖 ASR, TTS, 说话人识别, 语音增强/分离等众多任务。
- 💪 优点: 功能全面,模块化设计,提供了多种语音增强和分离的 baseline 和 SOTA 模型实现。非常适合研究和构建复杂的语音系统。
- 🤔 注意: 功能强大但也意味着学习曲线相对陡峭,需要理解其配置和使用方式。
- 适合: 研究人员,需要在一个框架内实现多种语音处理任务的开发者。
-
Demucs (⭐ 8.8k+)
- GitHub: https://github.com/facebookresearch/demucs
- 简介: 由 Meta AI (Facebook Research) 开发的高性能音乐源分离模型。采用时域/频域混合方法(Hybrid Spectrogram/Waveform),在多项评测中表现优异。
- 💪 优点: 分离质量非常高,通常被认为是 SOTA 级别的模型之一。提供了多个版本的预训练模型。
- 🤔 注意: 对计算资源要求较高(推荐 GPU),安装和使用比 Spleeter 稍复杂。
- 适合: 追求最高分离质量,且有一定计算资源的用户。
-
pyannote-audio (⭐ 7.3k+)
- GitHub: https://github.com/pyannote/pyannote-audio
- 简介: 专注于说话人日志 (Speaker Diarization) 的开源工具包,即在音频中检测“谁在何时说话”。
- 💪 优点: 在说话人日志任务上非常专业和强大,提供预训练模型和流水线。
- 🤔 注意: 其核心目标不是分离人声和音乐,而是区分不同的说话人活动。可能包含语音活动检测(VAD)能力,有助于提取语音片段,但不能直接分离叠加的音乐。
- 适合: 需要区分、标记或分割音频中不同说话人的场景。
-
ClearerVoice-Studio (⭐ 2.6k+)
- GitHub: https://github.com/modelscope/ClearerVoice-Studio
- 简介: ModelScope 社区的另一个项目,专注于通用的语音增强和去噪。旨在提升语音清晰度,可以分离人声和背景噪声(音乐可视为一种噪声类型)。
- 💪 优点: 目标是改善语音质量,适用于多种噪声环境。利用 ModelScope 生态。
- 🤔 注意: 可能更侧重于去除非平稳噪声,对结构化的背景音乐分离效果需具体评估。
- 适合: 主要目的是整体提升语音清晰度,去除包括音乐在内的各类背景干扰的用户。
-
Asteroid (⭐ 2.4k+)
- GitHub: https://github.com/asteroid-team/asteroid
- 简介: 一个基于 PyTorch 的音频源分离工具包,实现了多种先进的分离模型(如 Conv-TasNet, DPRNN, DPTNet 等)。更像是一个灵活的研究框架。
- 💪 优点: 提供了多种模型架构的选择和实现,非常灵活,适合进行源分离研究和定制化开发。包含预训练模型。
- 🤔 注意: 使用门槛比 Spleeter/Demucs 高,需要一定的深度学习和 PyTorch 基础。
- 适合: 研究人员,需要尝试不同先进分离模型或进行定制开发的开发者。
-
AudioSep (⭐ 1.7k+)
- GitHub: https://github.com/Audio-AGI/AudioSep
- 简介: 一个旨在实现通用音频分离的项目,可能支持更细粒度的声音事件分离,甚至可能根据文本描述或其他条件进行分离。
- 💪 优点: 概念前沿,目标是超越传统的音乐/语音分离,实现更灵活的“听音辨物”。
- 🤔 注意: 相对较新,可能还在快速发展中,稳定性和易用性可能不如成熟项目。具体分离人声/音乐的效果需验证。
- 适合: 探索前沿音频分离技术,对通用或条件化分离感兴趣的用户。
-
vocal-separate (⭐ 1.5k+)
- GitHub: https://github.com/jianchang512/vocal-separate
- 简介: 与
pyvideotrans
同作者,这是一个更专注于人声分离的命令行工具。底层可能依赖其他库(如vocal-remover
包,间接使用 Spleeter 或 UVR 模型等)。 - 💪 优点: 目标明确,专注于人声提取。提供简单的命令行接口。
- 🤔 注意: 效果依赖其使用的具体分离模型和库。可能是一个封装层。
- 适合: 需要一个简单直接的命令行工具进行人声分离的用户。
-
Open-Unmix (PyTorch) (⭐ 1.4k+)
- GitHub: https://github.com/sigsep/open-unmix-pytorch
- 简介: 基于长短时记忆网络 (LSTM) 和 U-Net 思想的音乐分离模型的参考实现(PyTorch 版本)。是 SiSEC (Signal Separation Evaluation Campaign) 音乐分离任务的一个基准模型。
- 💪 优点: 模型结构相对清晰,是许多后续研究的基础和比较对象,适合学习音乐分离模型的基本原理。
- 🤔 注意: 作为较早的基准模型,其性能可能不如 Spleeter 或 Demucs 等更新、更复杂的模型。
- 适合: 学习音乐分离模型原理,用作研究的基线模型。
-
svoice (⭐ 1.3k+)
- GitHub: https://github.com/facebookresearch/svoice
- 简介: Facebook Research (Meta AI) 的一个项目,根据其描述,专注于基于流的神经网络进行语音合成 (TTS) 和 声音转换 (Voice Conversion)。
- 💪 优点: 在语音生成和转换领域可能具有先进技术。
- 🤔 注意: 其核心功能并非语音与音乐的分离,而是语音的生成与变换。
- 适合: 对 TTS 或声音转换技术感兴趣的研究者或开发者。
-
Wave-U-Net (⭐ 888+)
- GitHub: https://github.com/f90/Wave-U-Net
- 简介: 实现了直接在时域波形上操作的 U-Net 架构用于音频源分离。与大多数在频谱图上操作的方法不同。
- 💪 优点: 避免了相位估计问题,直接对波形建模。是一种重要的研究方向。
- 🤔 注意: 时域模型的计算量通常较大。此为特定模型的实现,易用性可能不如 Spleeter 等集成工具。
- 适合: 对时域音频分离模型感兴趣的研究者,或者需要特定 Wave-U-Net 实现的用户。
-
Demucs-Gui (⭐ 751+)
- GitHub: https://github.com/CarlGao4/Demucs-Gui
- 简介: 为强大的 Demucs 模型提供的一个第三方图形用户界面 (GUI)。
- 💪 优点: 让不熟悉命令行的用户也能方便地使用高质量的 Demucs 分离模型。
- 🤔 注意: 依赖于 Demucs 本身的安装和运行。是 Demucs 的一个前端界面。
- 适合: 喜欢图形界面操作,并希望使用 Demucs 模型进行分离的用户。
-
python-audio-separator (⭐ 712+)
- GitHub: https://github.com/nomadkaraoke/python-audio-separator
- 简介: 一个 Python 库,旨在简化对多种音频分离后端模型(特别是来自 Ultimate Vocal Remover 生态的模型,如 MDX-Net、VR 等)的调用。
- 💪 优点: 提供统一的 Python 接口来使用不同的先进模型,方便集成到 Python 项目中。可以看作是 UVR 命令行/库版本的封装。
- 🤔 注意: 本身不包含模型,需要用户自行下载或通过库自动下载模型文件。效果依赖所选后端模型。
- 适合: 需要在 Python 代码中灵活调用多种现代分离模型(尤其是 UVR 支持的模型)的开发者。
-
spleeter-web (⭐ 471+)
- GitHub: https://github.com/JeffreyCA/spleeter-web
- 简介: 一个基于 Web 的用户界面,允许用户通过浏览器上传音频文件并使用 Spleeter 进行分离。
- 💪 优点: 提供非常友好的 Web 界面,无需安装 Spleeter 或编写代码即可使用。
- 🤔 注意: 可能需要在服务器端部署,或者依赖公共服务(如果提供)。处理速度和能力受服务器限制。
- 适合: 希望通过 Web 浏览器快速体验 Spleeter 分离效果的普通用户。
-
MVSEP-MDX23-Colab_v2 (⭐ 300+)
- GitHub: https://github.com/jarredou/MVSEP-MDX23-Colab_v2
- 简介: 一个 Google Colab 笔记本,用于运行在 MDX Challenge 2023 (Music Demixing Challenge) 中表现出色的高质量模型。
- 💪 优点: 可以方便地在 Google Colab 的免费(或付费)GPU 环境下运行顶尖的音乐分离模型,无需本地配置复杂环境。
- 🤔 注意: 使用 Colab 平台,可能受资源限制。是特定比赛模型的运行脚本。
- 适合: 希望利用 Colab 尝试最新/最强音乐分离模型,尤其是 MDX 竞赛相关模型的研究者或发烧友。
-
TDANet (⭐ 272+)
- GitHub: https://github.com/JusperLee/TDANet
- 简介: 特定研究论文 “TDANet: Task-Decoupled Two-Stage Attention Network for Speech Enhancement” 的代码实现。该网络用于语音增强。
- 💪 优点: 实现了一种新颖的注意力网络结构用于语音增强任务。
- 🤔 注意: 这是一个研究性质的项目,专注于特定的模型架构。可能需要较强的专业背景来理解和使用。目标是增强而非专门分离音乐。
- 适合: 对该特定语音增强模型或相关研究感兴趣的研究人员。
-
VoiceSplit (⭐ 245+)
- GitHub: https://github.com/Edresson/VoiceSplit
- 简介: 一个基于 TensorFlow 的工具,旨在使用预训练模型将音轨分离为人声和伴奏。
- 💪 优点: 提供了一个基于 TensorFlow 的分离方案。
- 🤔 注意: 使用 TensorFlow 框架(与 PyTorch 系工具不同)。模型的性能和易用性需要与 Spleeter/Demucs 等对比。项目活跃度可能需要关注。
- 适合: TensorFlow 用户,寻找 TensorFlow 生态下的语音分离工具。
-
Looking-to-Listen-at-the-Cocktail-Party (⭐ 164+)
- GitHub: https://github.com/JusperLee/Looking-to-Listen-at-the-Cocktail-Party
- 简介: 这是一项研究工作的代码,旨在利用视觉信息(如说话人的面部视频)来辅助从混合音频中分离出目标说话人的语音,即解决视听语音分离(Audio-Visual Speech Separation)问题,常被称为“鸡尾酒会问题”的一种解法。
- 💪 优点: 探索了多模态信息(音频+视觉)在语音分离中的应用,是该领域的一个重要研究方向。
- 🤔 注意: 应用场景特定,需要同时有混合音频和对应的说话人视频。是研究性质的代码。
- 适合: 对多模态学习、视听语音分离技术感兴趣的研究人员。
-
Deep-Audio-Prior (⭐ 159+)
- GitHub: https://github.com/adobe/Deep-Audio-Prior
- 简介: Adobe Research 的一个项目,探索使用深度神经网络作为音频信号的先验知识,用于音频修复任务,如去噪、去混响、带宽扩展等。源分离也可以看作一种利用先验知识的修复。
- 💪 优点: 提出了一种利用深度模型先验进行无监督或自监督音频处理的新思路。
- 🤔 注意: 这是一个研究性项目,侧重于方法论。不一定是直接可用的分离工具,而是底层技术的探索。
- 适合: