OBS 人声分离实操:把麦克风与背景音乐分开控制的完整指南
【免费下载链接】obs-studioOBS Studio - Free and open source software for live streaming and screen recording项目地址: https://gitcode.com/GitHub_Trending/ob/obs-studio
直播到一半,弹幕开始刷"人声被BGM盖住了"。这种翻车,靠 OBS Studio 的分轨和人声分离能力就能救回来:把麦克风和背景音乐拆成各自独立的轨道,音量、滤镜互不干扰,录出来的文件也各是各的,后期不用再救。
先看看你的音频源长什么样
动手前先自检一下,你的素材属于哪种情况:
- 麦克风和BGM本来就是分开的:打开源列表,看是不是有两个源(麦克风输入、媒体源)。是的话,直接跳到下一节,5分钟搞定。
- 已经混在一起的立体声:右键源 → 高级音频属性,看声道设置。如果人声全在左声道、音乐全在右声道(很多伴奏包会这样处理),可以做声道偏置分离,也很快。
- 单轨混音,人声音乐糊在一轨里:这是最麻烦的情况,内置滤镜只能"改善",彻底分开要靠下一节的AI工具。
5分钟出效果:最省事的分轨操作步骤
人声分离的第一原则:别让它们共用一个源。按下面来:
- 添加:在源列表里分别添加"麦克风/辅助音频"和"媒体源"(BGM文件)。
- 打开:混音器右键 → 高级音频属性。
- 设为:麦克风"输出轨道"只勾轨道1;媒体源只勾轨道2。每个源同时记得勾选"录制"。
- 保存并启动录制:文件会分成多段,轨道1是纯净人声,轨道2是纯BGM。
多轨录制需要在 设置 → 输出 切到"高级"模式,把录像编码设为"分割轨道文件"(Split Track Files)。之后每轨都可以单独再导回OBS做媒体源,音量随便拧。
精细调音:滤镜链参数往哪拧
混在一轨、暂时不想上AI的时候,靠滤镜链把差距拉出来。给麦克风源依次加这四件:噪声抑制、噪声门限、3段均衡器(3-Band EQ)、压缩器(Compressor)。注意顺序别乱:降噪在前,整形在后。
- 噪声抑制(Noise Suppression):RNNoise 模式(
plugins/obs-filters/noise-suppress-filter.c)。房间嘈杂用"中",安静环境用"低"就行,开太猛人声会发空。 - 噪声门限(Noise Gate):静音时关嘴用的。阈值先设在噪声底噪之下、人声出现之前,大约 -40 dB;攻击 20 ms,释放 200–300 ms。
- 3段EQ:低频(约 800 Hz 以下)减 6–12 dB,削弱BGM的低频能量;中频(800 Hz–5 kHz,人声主体)加 3–6 dB;高频(约 5 kHz 以上)加 2–4 dB 提清晰度。
- 压缩器:阈值 -20 dB 左右、比率 2:1–4:1,把小声的话也顶上来。
可直接抄的一组:EQ 低 -12 / 中 +5 / 高 +3;门限 -40 dB;压缩比 3:1。最后再加一条限制器防削波。这一套全是CPU友好型,日常配置占用不到 5%。
上强度:AI 模型怎么接进 OBS
要"真正切开"而不是"调得能听",上AI分离工具。思路是:混合音频导出 → 离线分离 → 结果导回 OBS。
ffmpeg -i rec.mp3 -ar 44100 -ac 2 mix.wav python -m demucs --two-stems=vocals mix.wav跑完会生成人声、伴奏两个 wav。在OBS里把它们各加一个媒体源,分别指定轨道——从这一刻起,"人声"和"背景音乐"就是两个可以独立控制的源,音量、滤镜、轨道归属各管各的。
| 方式 | 输入 | 输出 | 延迟 |
|---|---|---|---|
| Demucs | 一段混音 | 人声/伴奏两轨 | 离线,分钟级 |
| Spleeter 2stems | 一段混音 | 人声/伴奏两轨 | 离线,比Demucs快 |
| VST插件(实时) | OBS内的音频流 | 处理后流 | 毫秒级,吃CPU |
想要直播中实时分离,走VST路线:OBS自带VST宿主(plugins/obs-vst/obs-vst.cpp),在源上添加 VST 滤镜即可加载第三方音频插件。实时方案对CPU要求高,先在推流机外实测再上。
效果不对?三列诊断法
| 你听到什么 | 大概率原因 | 改哪个参数 |
|---|---|---|
| 人声还是被盖住 | BGM整体响度偏高 | BGM滑块降 6–10 dB,或麦克风压缩比提到 4:1 |
| 人声发空、有"电子味" | 降噪强度过头 | RNNoise 降一档,EQ中频增益减 2–3 dB |
| 一停说话就漏出音乐 | 门限阈值偏高、释放太快 | 门限降到 -45 dB 以下,释放加长到 300 ms |
| 声音卡顿、爆音 | CPU处理不过来 | 减滤镜数量,或AI部分改离线处理 |
不同场景直接抄配置
游戏直播(低延迟优先)
- 麦克风 → 轨道1;系统/游戏声音 → 轨道2
- 麦克风链:噪声抑制(低)→ 压缩 2:1 → EQ 中频 +4
- BGM轨音量直接压低 10 dB,不挂滤镜
- 两轨都推流;录制动笔轨,方便回放
网课录制(音质优先)
- 麦克风 → 轨道1;BGM媒体源 → 轨道2
- 麦克风链:RNNoise → EQ 低 -12 / 中 +5 / 高 +3 → 门限 -40 dB
- BGM 轨全程压低,只起氛围
- 录制拆分文件,后期各轨单独精修
播客 / 对录
- 每人一个麦克风源,各占一条轨道
- 每人滤镜链相同参数,方便整体听感统一
- BGM 单独一条轨,进段/出段音乐独立控制
- 推流与录制都动笔轨,留足后期余地
继续探索
- 全部音频滤镜源码:
plugins/obs-filters/,增益在gain-filter.c,门限在noise-gate-filter.c - 音频混音与轨道路由核心:
libobs/obs-audio.c、libobs/media-io/audio-io.h - VST 宿主实现:
plugins/obs-vst/obs-vst.cpp - 官方文档里的音频与输出章节:
docs/sphinx/backend-design.rst、docs/sphinx/reference-outputs.rst
【免费下载链接】obs-studioOBS Studio - Free and open source software for live streaming and screen recording项目地址: https://gitcode.com/GitHub_Trending/ob/obs-studio
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考