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

Cha*_*nry 8 linux debian pulse-audio distortion zoom-meeting

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

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

****在我共享应用程序之前,它在 pavucontrol 中的显示方式:

在播放中,有

---ZOOM VoiceEngine: playStream

记录:

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

输出设备:

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

输入设备:

---QuickCam Pro 9000 模拟单声道(麦克风作为设备)

配置:

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

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

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

记录:

---ZOOM VoiceEngine Loopback: loopbackStream from

输出设备:

---zoom_combine_device

****对于应用程序,我尝试了chromium(浏览器)、spotify 和 vlc

我什至不确定我得到了什么样的音频失真。起初,我尝试调整每个应用程序、zoom_combine_device 和 ZOOM VoiceEngine Loopback 的音量级别

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

PulseAudio 参与设置接收器“zoomcombine”或“zoom_combine”,其中麦克风和应用程序音频都被重新采样并混合在一起。

我检查了每个的配置

pacmd list
Run Code Online (Sandbox Code Playgroud)

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

麦克风源具有“s16le”,一种 16000Hz 单声道的定点采样格式。
alsa_output 接收器在 48000Hz 和 2ch、左前和右前具有“s16le”。
变焦组合水槽也一样。
zoomcombine.monitor 输出也是如此

应用程序音频具有 44100Hz 采样率。我不知道如何改变这一点,但重新采样正在发生。

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

Cha*_*nry 7

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

~/.config/pulse/daemon.conf

resample-method = speex-fixed-7
default-sample-rate = 48000
alternate-sample-rate = 44100
Run Code Online (Sandbox Code Playgroud)

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

这种可怕失真的根源来自重采样期间切换样本格式以及在 loopbackStream 中不必要地使用不同的采样率。设置默认采样率以匹配您的硬件和备用采样率以匹配不同的应用程序。单独改变重采样方法并不能产生非常清晰的音频。

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

  • 修复了 Ununtu 20.04 上的相同问题。我使用 `cat /proc/asound/card0/pcm0p/sub0/hw_params` 来确认硬件采样率,添加 daemon.conf 并使用 `killall pulseaudio` 重新启动脉冲(服务重新生成它)。救命恩人谢谢! (3认同)