游戏串流软件如Sunshine语音聊天回音问题的解析

现在原子化时代,想要朋友一起近距离玩游戏和看电影越来越困难了。不仅是找人难,还在于就算是有了指定的游戏,如果每个人都寻找一份副本且进度同步,其实是一件成本很高,难度很高的事。

我目前能想到的最好的方案就是串流——不仅是串流玩游戏,还可以串流一起看电影,看视频,逛网站。

在2022年的时候,我就用过Parsec,对于回音问题还是有一些心得的。现在Parsec新版已经直接更新了app 白名单制度,可以直接使用Skype在国内语音通话而不会发生任何回音。

经过我的测试,在国内最简单和优质的串流方案就是Parsec+Skype。其他的语音聊天软件在国内基本处于用起来让人崩溃的阶段。

不过现在的sunshine服务器和网易的gameviewer的回音又应该如何解决呢?

Parsec以前的方案也就是用VB audio出品的虚拟Cable来解决问题,其他的方案因为没有原生的白名单支持,所以依然可以使用这个完全免费的简单方案。

回音问题的起源

所谓回音问题,是在Host主机上开语音聊天软件与串流的其他受众在语音时,受众会发现自己说话的声音出现在了自己的扬声器中。受众当事人会稍后听到自己的声音,所以就有了回音。

究其原因,是因为Parsec默认抓取的声音输出是整个系统的声音输出,其中就包括Host主机上听到的声音,也就是之前说的受众说话的声音。

回音消除的思路

显然的,想要消除回音,就让Parsec抓取的声音和语音聊天软件所使用的声音分离,正确地将游戏和系统声音输送到Client的受众,同时还要让Host主机当事人可以听到自己的系统声音。

可以选择的方案其实很多,Voicemeeter等等软件是有成本的。最免费和简单的,是用同公司出品的VB-CABLE Virtual Audio Device免费软件。

VB-CABLE Virtual Audio Device的唯一作用,是作为输出端接收声音,此时属于虚拟扬声器;然后将前者的声音作为输入端播放声音,此时属于虚拟麦克风。它唯一的作用就是一个声音桥接。

通过这点,我们可以将需要串流的声音全部输出到虚拟扬声器,然后让Parsec,Sunshine,网易gameviewer等软件抓取虚拟扬声器的声音。

同时,我们在语音聊天软件中,将真实的麦克风设置为语音聊天的输入端,再将真实的物理扬声器,设置为声音的输出端,那么sunshine等串流软件,就不再会抓取到client受众的语音说话声音,那么回音就自然消除了。

看到这里,你估计已经发现了问题,那么Host岂不是自己就没了游戏等系统声音?

要解决这点,在彻底免费的大前提下,可以使用Windows自带的录制“侦听”,或者翻译为倾听,将虚拟麦克风的声音回放到指定的物理设备。

如此,就彻底解决了声音分离和host能听到声音的问题。

 

VB-CABLE Virtual Audio Device的配置

首先是安装对应的驱动程序然后重启计算机。这点请自行完成。

请将真实物理扬声器的音量拉满

然后我们需要打开Windows控制面板的声音设置,将真实物理声音输出设备所连接的声卡音量拉满。

这是因为,等会我们会将虚拟声音设备的声音重新输出到真实物理设备,从而确保Host主机可以听到自己系统的声音。但是不同声卡的音量大小是独立的。现在请将真实设备的音量拉满,方便我们稍后在虚拟设备中调节音量大小。

如果你不这么做,那么虚拟设备最大的音量也不会超过真实设备设置好的音量。

请将VB-CABLE设置为系统默认声音输出

Windows现在有两套声音设置界面,两者的数据是互通的。下图表述的是将虚拟声音设备设置为系统默认声音输出设备。

设置不同APP的声音输出设置

聪明的你应该已经通过上图发现了,不同APP一般来说是使用的系统默认输出设备,但是每个APP本质上可以独立设置自己的输出和输入,所以也请检查你想要串流的APP是否将声音输出设置到了虚拟设备。

上图为网易云的声音输出设置。我将网易云音乐的声音输出设置到了Wasapi的虚拟扬声器。

 

通过倾听设备,将输入的声音回放到真实物理输出设备

请打开传统Windows声音面板,切换到录制,选择虚拟麦克风,打开侦听功能,同时指定真实的音响设备。

这项设置的功能,是将虚拟麦克风接收到的声音,重新投送到真实物理扬声器上进行回放。

所谓“侦听”其实是“倾听”,“播放”,其实是“回放”。

因为这里涉及到了一点声音处理转接和混合流程,所以声音会稍微多一点延迟。

确保Parsec等软件抓取的是虚拟扬声器的声音

保险起见,请手动确认下,Host中等待被抓取的设备是否是虚拟扬声器设备

以上截图仅仅用作示例,因为Parsec已经支持app白名单,所以是没有必要使用虚拟扬声器的。需要使用虚拟扬声器的,注定是sunshine,网易gameviewer等软件。

 

语音聊天软件请直接使用物理设备

以微信为例,请一定一定要使用真实的麦克风和扬声器作为输入输出设备,不然就会再次发生回音。我们的目的就是要分离不同app的声音,可别在这里弄错了。

 

 

通过以上设置,本文最开始的思路和目标已经完全实现。现在语音聊天和串流之间互不干扰,且host主机自己也可以听到声音。终于可以愉快的和小伙伴玩耍了。

 

本文本质上是对Parsec官方文章的重新解读,如有需要可阅读原文。

Eliminating Sound Echo While Co-Op’ing With Friends – Parsec

 

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.