跳到主要内容
OT
OBS 与直播技术

虚拟声卡怎么接:让译音进 OBS 而不干扰监听

从零讲清虚拟声卡的接线逻辑,把翻译语音单独送进 OBS,同时保证主播耳机里听到的是自己需要的那一路。

研究所编辑部约 4 分钟读完
示意图:两个设备模块由线缆相连,其中一根线绕回自身,形成独立的监听回路

跨境直播里,主播的电脑上同时有三路声音要走不同的路。把它们理清楚,是搭这套系统的第一件事,也是最容易做错的一件事。

三路声音分别去哪

声音 来源 去处
原声 麦克风 推流(可选)+ 主播耳机
译音 翻译工具合成 推流(必须)+ 主播耳机(可选)
平台声 直播软件、提示音 只到主播耳机,不能进推流

问题在于:操作系统默认只有「默认输出设备」这一个概念。如果翻译工具把译音播到默认扬声器,那么它要么被麦克风二次拾取(产生回声和重复识别),要么根本进不了 OBS。

虚拟声卡解决的就是这个:它提供一对成套的「虚拟输出」和「虚拟输入」,写进虚拟输出的音频,会原样出现在虚拟输入里。任何能选输出设备的程序,都能借此把声音直接送给任何能选输入设备的程序。

为什么不能直接用「桌面音频」

新手常见的做法是在 OBS 里加一个「桌面音频」源,指望它把译音一起抓走。这条路在跨境直播里几乎一定会出问题:

  • 桌面音频会把所有系统声音抓进去,包括微信提示音、浏览器视频、直播平台的礼物音效;
  • 主播如果戴耳机,桌面音频往往抓不到(音频走了耳机通道);
  • 你没有办法单独调整译音的音量,只能整体调。

用虚拟声卡把译音单独隔离出来,才有独立控制的余地。

回环是怎么产生的

搭这套系统时最常见的故障是「识别到自己的译音,然后又翻译一遍」。产生条件是:译音通过扬声器播出 → 被麦克风拾取 → 送进语音识别 → 当成新的一句话翻译。

避免的办法只有两个,任选其一:

  1. 主播戴耳机,物理上切断扬声器到麦克风的通路;
  2. 译音不进主播的物理扬声器,只进虚拟声卡。

如果既要外放又要避免回环,就只能靠回声消除。这条路我们不推荐,理由是方向性的而不是精确的:回声消除属于送进识别之前的音频前处理,而 Google 在语音识别最佳实践里明确要求关掉降噪和自动增益这类前处理,说明原因是服务本身就是按带噪音频设计的、前处理通常反而降低准确率。回声消除是否完全落在同一类里,官方没有给结论,但能靠一副耳机在物理上解决的问题,不值得交给算法补救。

监听那一步最容易配反

OBS 的监听有两处设置,配错任何一处,现象都是「主播听得到、观众听不到」,而且要等到有人反馈才会发现。

  • 监听设备在 Settings → Advanced → Audio 的 Monitoring Device 里选,必须指向主播耳机。指向虚拟声卡就等于把译音又送回了自己的输入端,直接形成回环。
  • 每条轨的监听方式在 Edit → Advanced Audio Properties 里选。OBS 的三个选项是 Monitor Off、Monitor Only (mute output) 和 Monitoring Enabled,名字见 OBS 官方界面文案。括号里那句话就是关键:Monitor Only 会把这条轨从推流里静音。译音轨要的是 Monitoring Enabled,主播和观众都听得到。

同一个窗口里还有一列 Sync Offset,它只对音频源生效——这一点在字幕那篇里还会再用到。

Windows 与 macOS 的差异

Windows 上 VB-CABLE 是事实标准。它是捐赠授权,装完给你一根虚拟线(CABLE Input / CABLE Output);官方页面上另外提供的 A+B、C+D 是需要单独安装的额外线路,一根线不够用时才需要。采样率的处理和推流参数那篇一致:重要的是全链路统一,取哪个值反而次要,在 OBS 的 Settings → Audio 里定一个值,然后把 CABLE 的播放端和录制端都改成同一个。

macOS 上系统不允许应用直接采集其他应用的输出,所以要装一个虚拟音频驱动,BlackHole 是最常用的一个。顺带纠正一个流传很广的说法:它不是内核扩展。 官方仓库明确写着「No kernel extensions or modifications to system security necessary」,驱动装在 /Library/Audio/Plug-Ins/HAL/ 下,卸载就是删掉那个目录再重启 CoreAudio。这个区别不是咬文嚼字——它决定了你不需要为它降低系统安全等级。

装完如果要「既进 OBS 又能自己听到」,就在「音频 MIDI 设置」里建一个多输出设备,把 BlackHole 和耳机同时勾上。这一步有两个官方 FAQ 里写明的坑,都会在直播中段才发作:

  • 多输出设备里必须把内建输出放在列表最上面,否则可能整个没声音;
  • 除了时钟源之外的每个设备都要勾上漂移校正,不勾的现象是「开播几十分钟后开始出现杂音」,很容易被误判成网络问题。

验证清单

搭完之后,按顺序确认这四条,任何一条不过就不要继续往下调:

  • OBS 的音频混音器里,译音轨在说话时有电平跳动;
  • 主播耳机里能听到译音,且没有明显回声;
  • 录一段本地文件回放,译音清晰、没有重复——这一条同时能查出监听配反:如果译音轨误设成了 Monitor Only,耳机里一切正常,录制文件里却没有译音;
  • 关掉翻译工具,OBS 的译音轨电平归零(说明抓的确实是虚拟声卡,不是桌面音频)。

第四条最容易被忽略,很多人以为接好了,实际上 OBS 抓的还是桌面音频,只是恰好也能听到声音。

和字幕的关系

音频通了之后再做字幕。字幕走的是完全独立的通路(窗口捕获 + 色键),和音频路由没有耦合。先把音频跑通再加字幕,出问题时才能快速定位是哪一层的事。

操作步骤

  1. 1

    安装虚拟声卡

    Windows 装 VB-Audio Virtual Cable,macOS 装 BlackHole 2ch。装完在系统声音设置里应该能看到一个新的输出设备和一个新的输入设备。

  2. 2

    把翻译工具的播报输出指向虚拟声卡

    在翻译工具的音频设置里,把「译音输出设备」选成 CABLE Input(Windows)或 BlackHole 2ch(macOS),不要选默认扬声器。

  3. 3

    在 OBS 里新建音频输入采集

    OBS 添加「音频输入采集」源,设备选 CABLE Output(Windows)或 BlackHole 2ch(macOS)。这条就是观众听到的译音轨。

  4. 4

    单独配置主播监听

    先在 Settings → Advanced → Audio 里把 Monitoring Device 设成主播耳机(不要设成虚拟声卡)。再打开 Edit → Advanced Audio Properties,把译音轨的 Audio Monitoring 设为 Monitoring Enabled。不要选 Monitor Only (mute output),那一项会把这条轨从推流里静音。

  5. 5

    用录制回放验证

    录 30 秒本地文件,回放确认能听到原声和译音、且没有回声或双重播报,再正式开播。

关键词虚拟声卡VB-CableBlackHoleOBS 音频音频路由

查看本页 Markdown 原文