在 Mac 上去除歌曲人声

将 Mac 上的音乐录音制成练唱用伴奏。免费的 speech 命令行工具会分离人声、鼓、贝斯和其他乐器,再由 FFmpeg 混合三个伴奏音轨。先试用下方短示例并试听,再处理自己的歌曲。

在 Android、iPhone 和 iPad 上移除歌曲人声、分离乐器并导出 WAV。免费使用,完成模型设置后即可在设备上处理。

1. 安装工具

你需要一台运行 macOS 15 或更高版本的 Apple Silicon Mac,并安装 Homebrew。打开终端,执行安装命令。这是 Mac 本地工作流程,无需 Soniqo 账号,也不必上传音频。

brew install speech ffmpeg

首次分离会从 Hugging Face 下载 HTDemucs 模型,需要联网并预留时间。模型会缓存到 Mac;以后即可使用缓存模型离线分离。

2. 试用音乐示例

新建一个工作文件夹,集中保存输入和结果。下载立体声 WAV 示例,也可以先播放下方音频。播放器使用同一段录音,方便比较各个输出保留的声音。

curl -fL https://soniqo.audio/audio/samples/music/sample.wav -o sample.wav

下载 WAV 示例 · 示例来源与许可

Core ’ngrato (1995) · Singing Sergeants, United States Air Force Band. 这些是下方命令生成的示例结果,并非分离质量的基准测试。

原始录音
人声
伴奏

3. 分离录音

在包含 sample.wav 的文件夹中执行命令。它会在 stems 中生成 vocals.wav、drums.wav、bass.wav 和 other.wav。原始录音仍保留在原处。

speech separate sample.wav --engine htdemucs --htdemucs-precision int8 --output-dir stems

4. 保存伴奏

混合鼓、贝斯及其他乐器,不加入人声音轨。此 FFmpeg 命令生成 instrumental.wav,并用限制器控制峰值。它混合三个分离结果,而不是从原始文件中减去估算人声。

ffmpeg -i stems/drums.wav -i stems/bass.wav -i stems/other.wav -filter_complex 'amix=inputs=3:normalize=0,alimiter=limit=0.98:level=false:latency=true' -c:a pcm_s16le instrumental.wav

打开 instrumental.wav 检查伴奏,打开 stems/vocals.wav 试听人声。注意残留的人声、缺失的乐器或变化的瞬态。密集混音、混响及声音重叠都可能留下可听见的分离伪影。

使用自己的歌曲

将输入替换为自己的立体声 WAV 路径。文件名含空格时保留引号,每首歌使用不同输出文件夹。本教程使用 44.1 kHz 立体声 WAV;其他格式请先转换为 WAV。

speech separate "/path/to/Your Song.wav" --engine htdemucs --htdemucs-precision int8 --output-dir my-song-stems

制作伴奏时,将 FFmpeg 命令中的 stems 替换为该歌曲的输出文件夹。

结果预期

短示例不能作为三分钟歌曲或手机性能的基准。耗时和内存取决于录音及模型。先处理短片段,保留原始录音,并在用于练习或编辑前试听检查。

模型设置与 Swift API 见声源分离。安装帮助见入门指南,命令选项见 CLI 参考。