AI 驱动的音频人声/伴奏分离工具
支持 MP3 / FLAC / OGG 输入 · 内置图形界面 · 模型内嵌 · Windows DirectML GPU 加速 · 双击即用
| macOS | Windows |
|---|---|
![]() |
![]() |
| 图形界面 | 内置 GUI,支持中英文切换、拖放文件、原生文件选择器 |
| CLI 模式 | 完整的命令行界面,适合脚本和自动化场景 |
| 模型内嵌 | ONNX 模型编译进二进制文件,无需联网下载 |
| 双击即用 | macOS .app 包 / Windows .exe,双击启动,无需任何依赖 |
| GPU 加速 | Windows DirectML 加速(NVIDIA/AMD/Intel GPU),自动回退 CPU |
| 高质量分离 | 基于 MDX-Net (Kim_Vocal_1) 深度学习模型,分离效果优秀 |
| 多格式支持 | 输入 MP3 / FLAC / OGG,输出 WAV(保留原始采样率) |
| 输入格式 | 输出格式 | 说明 |
|---|---|---|
.mp3 |
.wav |
MP3 解码后分离 |
.flac |
.wav |
FLAC 无损解码后分离,自动重采样 |
.ogg |
.wav |
OGG/Vorbis 解码后分离 |
输出为两个 WAV 文件:*_vocals.wav(人声)和 *_accompaniment.wav(伴奏)。
前往 Releases 下载对应平台的构建产物:
- macOS:下载
audio-separator-macos-arm64-app.tar.gz(Apple Silicon)或audio-separator-macos-x86_64-app.tar.gz(Intel),解压后双击Audio Separator.app即可使用 - Windows:下载
audio-separator-windows-x86_64.zip,解压后运行audio-separator.exe
前置要求:
- Rust 1.70+(推荐使用 rustup 安装)
- macOS:
brew install onnxruntime - Kim_Vocal_1.onnx 模型文件(放在项目根目录,编译时自动嵌入)
git clone https://github.com/ownlight6/audio-separator.git
cd audio-separator
# 下载模型(编译时自动嵌入二进制文件)
curl -LO https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/Kim_Vocal_1.onnx
# 编译(默认包含 GUI、Windows 上自动启用 DirectML GPU 加速)
cargo build --release
# 生成 macOS .app 包
./scripts/create-app-bundle.shWindows 用户注意:如需 GPU 加速,需将 DirectML 版
onnxruntime.dll放在项目根目录再编译。可从 NuGet 下载:runtimes/win-x64/native/onnxruntime.dll。编译时将自动嵌入二进制文件,首次运行自动提取。如果项目目录中没有
Kim_Vocal_1.onnx,编译产物将在首次运行时自动下载模型。
cargo build --release --no-default-features# 直接运行(无参数)自动启动图形界面
audio-separator
# 或显式指定
audio-separator --gui- 文件选择 — 点击"浏览"按钮选择文件,或直接拖放文件到窗口
- 输出目录 — 默认与输入文件同目录,可自定义
- 中英文切换 — 右上角语言按钮
- 进度显示 — 实时显示当前阶段和进度条
# 基本用法
audio-separator /path/to/song.mp3
# 指定输出目录
audio-separator /path/to/song.flac -o /path/to/output/
# 使用自定义模型
audio-separator --model /path/to/custom.onnx /path/to/song.ogg完整参数
audio-separator [OPTIONS] [INPUT]
Arguments:
[INPUT] 输入音频文件(MP3、FLAC、OGG)
Options:
-o, --output <DIR> 输出目录(默认同输入文件目录)
--model <PATH> ONNX 模型文件路径(默认使用内嵌模型)
--gui 启动图形界面
-h, --help 显示帮助
-V, --version 显示版本
输入文件 (MP3/FLAC/OGG)
↓
[symphonia] 解码为 PCM 采样
↓
[rubato] 重采样至 44100 Hz(如需要)
↓
[realfft] STFT 短时傅里叶变换(n_fft=6144, hop=1024)
↓
[ort] MDX-Net ONNX 模型推理(分块处理 + 重叠融合)
↓
[realfft] ISTFT 逆变换,重建人声波形
↓
伴奏 = 原始信号 - 人声
↓
[rubato] 重采样回原始采样率(如需要)
↓
[hound] 输出 WAV 文件
- Kim_Vocal_1 (MDX-Net) — 专为人声/伴奏分离优化的深度学习模型
- 输入维度:
[batch, 4, 3072, 256](立体声复数 STFT:实部+虚部 × 2通道) - 来源:UVR Model Repo
| 库 | 用途 |
|---|---|
symphonia |
纯 Rust 音频解码(MP3/FLAC/OGG) |
hound |
WAV 文件写入 |
ort |
ONNX Runtime Rust 绑定(ML 推理),Windows 启用 DirectML |
realfft |
实数 FFT(STFT/ISTFT) |
rubato |
高质量音频重采样 |
egui / eframe |
跨平台 GUI 框架 |
rfd |
原生文件选择对话框 |
src/
├── main.rs — CLI/GUI 双模式入口,自动定位 ONNX Runtime
├── lib.rs — 库导出:separate_file() 完整分离管线
├── gui.rs — egui 图形界面(中英文双语)
├── audio_io.rs — 音频解码/编码/重采样
├── separator.rs — STFT + MDX-Net ONNX 推理 + ISTFT(含 DirectML GPU 加速)
└── model_manager.rs — 模型内嵌/下载/缓存管理
build.rs — 检测模型与 onnxruntime.dll,条件编译嵌入
macos/
└── Info.plist — macOS .app 包配置
scripts/
└── create-app-bundle.sh — macOS .app 打包脚本
imgs/
├── mac.png — macOS GUI 界面截图
└── win.png — Windows GUI 界面截图
本项目基于 GNU General Public License v3.0 许可证开源。

