Zoom 和 Pulseaudio - 通过 zoom_combine 运行的音频发生音频失真

Zoom 和 Pulseaudio - 通过 zoom_combine 运行的音频发生音频失真

当我在 Debian buster 上通过 Zoom 主持会议并共享应用程序时,连接到会议的客户端上出现了音频失真。

我正在使用 zoom 5.2.446620.0816,并使用“buster-backports”将 pulseaudio 更新到 13.0-3,但问题仍然存在。

****在我共享应用程序之前,pavucontrol 中的样子如下:

在播放中,

---ZOOM 语音引擎:playStream

记录:

---ZOOM VoiceEngine:recStream 来自(麦克风流输入到 Zoom,已知工作正常)

输出设备:

---内置音频扬声器播放+耳机播放

输入设备:

---QuickCam Pro 9000 Analog Mono(麦克风作为设备)

配置:

---QuickCam Pro 9000,配置文件“模拟单声道输入”

---内置音频,配置文件“播放 HiFi 品质音乐”

当我通过 Zoom 共享应用程序并选择“共享计算机声音”时,添加了以下内容。

记录:

---ZOOM VoiceEngine Loopback:来自的 loopbackStream

输出设备:

---zoom_combine_device

****对于应用程序,我尝试过 Chromium(浏览器)、Spotify 和 VLC

我甚至不确定我听到的是哪种音频失真。首先,我尝试调整每个应用程序、zoom_combine_device 和 ZOOM VoiceEngine Loopback 的音量

这听起来像是削波失真,但当我循环切换音量级别时,声音的质量并没有改变。所以,我怀疑这可能是由比特率或采样率转换问题引起的。此外,在使用耳机进行测试时,我可以一边对着麦克风讲话,一边尝试播放共享应用程序音频。即使应用程序仍然失真,麦克风信号也能清晰地传出。

PulseAudio 涉及设置接收器“zoomcombine”或“zoom_combine”,麦克风和应用程序音频分别被重新采样并混合在一起。

我检查了每个配置

pacmd list

****在我在这里的 OP 中看到的配置中,

麦克风源具有“s16le”,这是 16000Hz 单声道的定点采样格式。alsa_output
接收器具有 48000Hz 和 2ch、前左和前右的“s16le”。zoom
组合接收器具有相同的功能。zoomcombine.monitor
输出也是如此

应用程序音频的采样率为 44100Hz。我不知道如何更改这一点,但重采样正在进行中。

然后,loopbackStream输出具有44100Hz的采样率。

答案1

我在 ~/.config/pulse 中做了以下更改,但如果 ~/.pulse 尚不存在,您也可以将它们放入其中。至少在此系统上,pulseaudio 以用户身份运行。没有从 /etc/pulse 应用任何系统配置,因此编辑它们没有任何区别。

〜/ .config/pulse/daemon.conf

resample-method = speex-fixed-7
default-sample-rate = 48000
alternate-sample-rate = 44100

这 3 个设置中的每一个都是必不可少的。它将 loopbackStream 采样率设置为 48000Hz,以便与 zoom Combine 和硬件相匹配。然后,zoom Combine 将成功地从应用程序音频中重新采样,频率从 44100Hz 到 48000Hz。speex-float 不合适。样本类型是固定的。

这种严重失真的根源在于重采样期间切换采样格式,以及在 loopbackStream 中不必要地使用不同的采样率。设置默认采样率以匹配您的硬件,如果不同,则设置替代采样率以匹配应用程序。仅更改重采样方法并不能产生完美清晰的音频。

我用音乐测试了 speex-fixed-N 重采样方法。speex-fixed-7 是高端开始闪耀的地方,钹声清晰。有些人认为 speex-fixed-5 就足够了。

相关内容