StemDeck 开源本地 AI 人声分离工具
快速概览
StemDeck 使用 Meta AI 的开源 Demucs 模型,提供免费、离线的六音轨分离(人声、鼓、贝斯、吉他、钢琴、其他),无需上传云端、注册账户或订阅服务。
StemDeck 的功能
- 仅本地处理 – 音频永远不会离开你的设备;YouTube 链接通过本地的 yt-dlp 获取。
- 六音轨输出 – 使用 Demucs
htdemucs_6s模型分离出人声、鼓、贝斯、吉他、钢琴和“其他”音轨。 - DAW 风格混音器 – 每个音轨的音量、静音、独奏、监听、VU 指示器、波形缩放、循环区域,以及单独导出各音轨或自定义混音。
- 跨平台安装包 – 提供原生 macOS(Apple Silicon 与 Intel)和 Windows 构建版本;也支持作为网页服务器或 Docker 容器运行。
- 无需账户、无配额限制 – 在 Apache 2.0 许可下完全免费,无遥测数据或隐藏费用。
核心技术
| 组件 | 库 / 工具 | 作用 |
|---|---|---|
| 后端 | Python 3.12,由 uv 管理 | 执行推理并协调任务 |
| API | FastAPI | 提供 REST 和 Server-Sent Events 以获取任务状态 |
| 音轨模型 | Demucs htdemucs_6s(Meta AI) |
六音轨神经网络分离 |
| 可选人声分离 | audio-separator(UVR-MDX-NET Karaoke 2) | 提取主唱/和声 |
| YouTube 下载 | yt-dlp | 本地获取音频流 |
| 转码 / 混音 | FFmpeg | 音频解码、混音、导出 |
| BPM 与调性分析 | librosa | 节拍追踪、调性/音阶检测 |
| 响度测量 | pyloudnorm(ITU-R BS.1770) | 集成 LUFS 分析 |
| 桌面外壳 | Tauri v2(Rust + WKWebView / WebView2) | 将 UI 打包为原生应用 |
| 前端 | 原生 JavaScript + Web Audio API | 波形渲染、播放控制 |
功能亮点
- 设备自动选择 – 自动选择 NVIDIA GPU 上的 CUDA,Apple Silicon 上的 MPS,或回退至 CPU。
- YouTube 与本地文件导入 – 拖拽或粘贴 URL;支持 MP3、WAV、FLAC、OGG/Opus、MP4、M4A 格式。
- 原始伴奏轨道 – 当选择部分音轨时,第七个轨道会显示补全音轨(完整歌曲减去已选音轨),便于 A/B 对比。
- 可取消任务 – 立即中止处理流程并清理部分输出。
- 库面板 – 基于文件夹的组织方式,支持拖拽、搜索和回收站。
- 导出选项 – 可导出单独的 WAV 音轨、合并后的
mix.wav,或包含原始源文件的自定义 MP4 视频。
与商业服务的真实对比
| 方面 | StemDeck | 典型云服务(Moises、LALAL.AI) |
|---|---|---|
| 价格 | 永久免费 | 免费增值;需积分或订阅 |
| 隐私 | 音频保留在设备上 | 音频上传至第三方服务器 |
| 音轨数量 | 6 个(人声、鼓、贝斯、吉他、钢琴、其他) | 最多 10 个,视套餐而定 |
| 硬件依赖 | 在你的 GPU/CPU 上运行;速度因设备而异 | 云服务在服务商硬件上运行——对所有用户都很快 |
| 移动端应用 | 无 | 提供 iOS/Android 应用 |
| 额外音乐工具 | 无(无音高变换、和弦检测等) | 通常包含音高/调性变换、歌词同步、节拍器 |
| 源代码 | 开源,可 Fork | 闭源 |
如果你需要最高音质、批量处理或移动端访问,付费服务可能更值得。但若用于个人练习、注重隐私且希望零成本使用,StemDeck 已足够。
快速上手
桌面安装
- macOS – 下载对应 DMG(Apple Silicon 用
arm64,Intel 用x64)。首次启动会下载捆绑的 Python 运行时(约 500 MiB)、FFmpeg 和 Demucs 模型(约 170 MiB)。 - Windows – 解压安装包(CPU 用
StemDeck-Windows-x64.zip,CUDA 用*.NVIDIA.zip)。运行StemDeck.exe;首次启动执行相同的运行时设置。 - Gatekeeper – 在 macOS 上,右键点击 → 打开 以绕过初始安全提示。
网页服务器 / Docker
- Python 服务器 –
git clone https://github.com/stemdeckapp/stemdeck && cd stemdeck && ./run.sh setup && ./run.sh start(macOS/Linux)或在 Windows 上使用等效 PowerShell 命令。 - Docker –
docker compose -f build/docker-compose.yml up --build。暴露端口 8000;音轨输出至./jobs/。 - GPU 加速 – 设置
STEMDECK_DEMUCS_DEVICE=cuda并安装支持 CUDA 的 PyTorch 轮子。
使用流程
- 导入 – 将文件拖到栏上或粘贴 YouTube 链接。
- 选择音轨 – 点击音轨芯片;默认为全部六个。
- 处理 – 点击 处理;观察进度条,经历上传、分析、分离和混音阶段。
- 混音 – 使用多轨 UI:音量推子、静音/独奏、循环区域、播放速度控制。
- 导出 – 点击 下载混音 导出合并的 WAV 文件,或通过文件列表导出单个音轨。
快捷键 – Space(播放/暂停),[ / ](-/+ 5 秒快进),L(循环),I/O(循环入/出),M(静音),S(独奏),Shift+滚轮(粗调音量),滚轮(细调音量)。
社区反馈(Hacker News 精选)
- 用户称赞其 以隐私为先的设计,并指出该工具在个人练习和学习中表现良好。
- 有人将其与 Nuo Stems 对比,后者使用更先进的模型如
mel_band_roformer;StemDeck 仍只是htdemucs_6s的轻量封装。 - 有评论指出,Audacity 可通过 OpenVINO 插件实现类似效果,为偏好完全开源 DAW 的用户提供替代方案。
- 对 Android 支持 和 音轨转 MIDI 的请求频繁出现,表明用户希望将工作流扩展至移动端。
- 技术讨论强调了打包挑战(捆绑 Python/PyTorch、GPU 内存峰值、端口冲突),并确认 StemDeck 的设计有意避免大型捆绑安装包,通过首次运行时引导依赖项来实现。
限制与故障排除
- 首次运行延迟 – Demucs 模型(约 170 MiB)和 Python 运行时在首次启动时下载。
- GPU 内存 – 六音轨 Demucs 在长曲目上可能超过 4 GiB VRAM;若 CUDA 不可用,应用将回退至 CPU。
- ffmpeg 未找到 – 安装 FFmpeg 并重启(
./run.sh restart)。 - YouTube 下载警告 – 安装
deno可消除“未找到支持的 JavaScript 运行时”提示。 - 仅 CPU 速度 – 预期处理较慢;现代 GPU 可显著缩短分离时间。
许可与免责声明
StemDeck 采用 Apache 2.0 许可发布。其用途为个人学习、研究与实验。软件不会下载或分发受版权保护的内容;用户需确保其处理的音频拥有合法使用权。所有第三方依赖项保留其原始许可证。
更多资源
- GitHub – https://github.com/stemdeckapp/stemdeck
- Discord – https://discord.gg/YhCKsjhcwB
- Reddit – https://www.reddit.com/r/StemDeckApp/
- 官网 – https://stemdeck.app/
总结
StemDeck 提供了一套完全离线、开源的六音轨音频分离解决方案,功能与商业云服务相当,同时保障隐私并免除成本。其模块化架构、清晰的许可证和活跃的社区,使其成为音乐人、教育工作者和开发者在无需依赖专有平台的前提下,实现本地音轨提取的坚实基础。
Sources
相关
- 项目
- 项目
- 项目
- 项目
- 项目