简体中文 · English
▶ 在浏览器中直接使用——无需安装, 音频全程留在你自己的标签页里,不会上传到服务器。
Purivox 是一款面向舞台和现场录音的垫音消除工具,有桌面版和浏览器版两种形态, 基于 Python、PySide6 和 PySide6-Fluent-Widgets 开发。核心的 MR Remove 只有一条工作流: 提供一段舞台 / 现场录音,再添加它的歌曲音源。
- 一份音源:程序自动对齐并去除这一首。音源与录音等长时会在全长上校正两者的速度差; 只覆盖录音的一段时,按匹配到的位置处理。
- 多份音源:程序先在录音里逐首定位,再对每首歌所在的片段分别去除垫音。文件顺序不影响识别。
垫音消除只处理歌曲音源能够解释的内容,因此会保留音源中没有的现场人声、讲话、欢呼和环境声。 歌曲音源越准确,效果越好;录音削波、明显混响、编曲不同或选错音源,都会影响结果。
需要不依赖歌曲音源的两轨分离,请使用 Ultimate Vocal Remover 这类专门的工具,Purivox 只做参考对消。
- Fluent Design 桌面界面,支持浅色、深色和跟随系统主题
- 中文、英文、日语和韩语界面即时切换
- 全局倍速检测与保音高拉伸、时间对齐、局部时钟漂移跟踪和基于参考的相干对消
- 多音源歌曲识别、重复片段识别和可编辑的处理范围
- 长音频分块处理、任务取消和安全的原子写入
- 导出沿用输入文件的采样率与位深,不为凑规格而升采样
- 处理完成后可在应用内试听并查看音频统计信息
- 设置页可检查新版本,有更新时弹窗显示 Changelog 并跳转 Release 页面,不做自动更新
- 每次运行都写入按日期命名的日志文件,未处理的异常会自动打开当天日志并提示提交 Issue
- 常用操作有快捷键:
Ctrl+O选择输入、Ctrl+Return开始、F5识别歌曲、Esc取消、Ctrl+P试听播放 / 暂停 - 可以直接从 YouTube / YouTube Music 链接获取音源,下载过的文件会记录下来供反复选用
- 图形界面与命令行共用同一套 MR Remove 处理管线
不想安装可以直接用浏览器版: 它跑的是同一套处理管线,只是受浏览器内存上限约束,录音过长时会被拒绝。 详见浏览器版(WebAssembly)。
桌面版可以直接从 Release 页面
下载:Windows 用 Purivox.exe,Linux 用 .deb、.rpm 或自解压的
purivox-linux-x86_64.tar.gz,macOS 用 purivox-macos-arm64.tar.gz(Apple Silicon)
或 purivox-macos-x86_64.tar.gz(Intel),每次发布都附带 SHA256SUMS。
macOS 版解压得到 Purivox.app,拖进“应用程序”即可;它只有 ad-hoc 签名,没有 Apple 开发者签名,
所以第一次打开要在访达里右键选“打开”。
从源码运行需要先安装 uv。
项目会根据 .python-version 自动选择 Python 版本,
并在仓库内维护隔离环境。请不要在该环境中安装其他会导出 qfluentwidgets 的 Qt Fluent 组件。
uv sync --locked启动图形界面:
uv run --locked purivox- 打开“垫音消除”,选择要处理的舞台 / 现场录音。
- 添加录音里可能出现的歌曲音源:一份就消除这一首,多份会先在录音里逐首定位, 文件顺序不影响识别。
- 有多份音源时,点击“识别歌曲”,检查完整歌曲、短片段、未识别区间和匹配度。
- 必要时双击修改录音时间或音源范围,也可以取消勾选不想处理的片段。
- 在“导出内容”中选择要保存的音轨:仅消音结果、仅垫音,或两者。垫音轨不是从录音里减出来的, 而是把对消估计出的传递套在音源上重新渲染的,因此保留音源本身的音质,同时带着垫音在舞台上 实际的音量与频响。
- 确认保存位置和处理选项后开始处理。试听结果后再调整强度;如果声音出现明显的抽吸感, 或人声变薄,请降低强度,或确认歌曲音源选择是否正确。
请尽量使用与现场一致的歌曲版本。母带不同、经过剪辑、变速、升降调或包含额外内容,都会降低消除效果。
未识别区间会按原样保留,时长不变,因此串场讲话、观众互动、广告和空场不会被自动剪掉。 命令行只接受一份歌曲音源;要一次处理多首,请用图形界面或浏览器版。
舞台录音行和音源列表都带有「获取」按钮:
- 粘贴 YouTube 或 YouTube Music 链接直接下载;也可以输入关键词搜索 YouTube,双击结果下载。 YouTube Music 只支持链接,它的搜索接口不返回可下载的歌曲条目。
- 下载完的文件记在「已下载」里,换个任务也可以再选一次。同一首不会重复下载:链接换个形式
(例如 YouTube 自动加上的
&list=…)也认得出是同一首。 - 链接里带播放列表时只取链接指向的那一首,不会把整个列表拖下来。
- 选中后点「使用所选」,文件就填进刚才那个字段。音源列表可以一次选多个。
装有 ffmpeg 时下载结果转成 WAV;没有时保留原始容器(通常是 WebM/Opus),交给 Qt Multimedia
解码,两条路管线都能读。文件保存在应用数据目录的 downloads 下,对话框里可以「打开文件夹」
查看,或「删除」连同文件一起清掉。
请只下载你有权使用的内容。
查看版本和帮助:
uv run --locked purivox --version
uv run --locked purivox --help
uv run --locked purivox mr --help用默认参数执行参考对消:
uv run --locked purivox mr "现场录音.wav" "歌曲音源.wav" "现场人声.wav"也可以在命令行中指定强度和统计窗口:
uv run --locked purivox mr "现场录音.wav" "歌曲音源.wav" "现场人声.wav" \
--strength 75 --sigma 8 --align常用参考对消参数:
| 参数 | 取值 | 说明 |
|---|---|---|
--strength |
0~100 |
垫音消除强度,默认 75 |
--sigma |
1、3、8、16 |
统计窗口秒数(进阶参数),默认 3;图形界面固定使用 3 |
--align / --no-align |
开 / 关 | 是否自动对齐,默认开启 |
--tracks |
vocal、backing、both |
导出内容,默认 vocal(仅消音结果) |
--lang |
zh_cn、zh_tw、en_us、ja_jp、ko_kr |
进度信息语言 |
从链接获取音源:
uv run --locked purivox fetch "https://www.youtube.com/watch?v=..." # 直接下载
uv run --locked purivox fetch "关键词" --limit 5 # 只列出搜索结果
uv run --locked purivox fetch "关键词" --pick 2 # 下载列表中的第 2 个
uv run --locked purivox fetch --list # 列出下载过的文件| 参数 | 取值 | 说明 |
|---|---|---|
--out |
目录 | 保存位置,默认为应用数据目录下的 downloads |
--limit |
整数 | 搜索结果条数,默认 10 |
--pick |
整数 | 下载搜索结果中的第几个,从 1 开始;不给就只列出不下载 |
--list |
开关 | 列出下载过的文件 |
成功时把文件路径打印到标准输出,可以直接接给 purivox mr 使用。
- WAV、FLAC、OGG 等格式由 libsndfile 直接支持;系统可以解码的其他格式会尝试通过 Qt Multimedia 读取。
- MR Remove 全程在舞台 / 现场音频的原始采样率下工作,导出同样保持该采样率。
- 导出的 PCM WAV 沿用输入文件的采样率与位深:8-bit 与 16-bit PCM 输入写出 16-bit,更宽的 24/32-bit PCM、浮点以及所有有损格式写出 24-bit。升采样不会凭空产生输入里没有的频谱细节, 只会让文件变大,因此不做这一步。
- 输出路径不能覆盖任何输入文件。按
Ctrl+C可取消命令行任务。 - 下载由 yt-dlp 完成。站点改版时请先更新依赖再排查;同一个链接只会下载一次,重复请求直接 返回已有文件。
- 合成测试只能说明实现没有明显退化,最终效果请以同一素材处理前后的试听对比为准。
算法、架构、测试和发布说明已移至 docs/:
- Vocal-Extractor:为频域人声提取方向提供启发。
- Ultimate Vocal Remover GUI: 没有歌曲音源时的神经网络分离工具。
本项目以 AGPL-3.0-or-later 发布。PySide6-Fluent-Widgets 开源版本使用 GPLv3,商业使用前请先确认其上游许可。