十多年来,当我在 Linux 上使用 SPDIF 输出时,如果使用 44.1 kHz 频率,总是会出现噼啪声和糟糕的声音。 2006 年是 ALSA,现在是 PulseAUdio,但问题仍然存在。
将频率固定到 48 kHz 解决了这个问题。然而,音乐通常为 44.1 kHz,因此 48 kHz 输出意味着每次都需要重新采样。
这个问题是众所周知的,例如PulseAudio/故障排除 - ArchWiki寻找“波涛汹涌”。
那么有什么方法可以让Linux正确执行44.1kHz的速率呢?
(我没有支持 24 位的 SPDIF 控制器,所以都是 16 位的。我确实尝试过 96 kHz,但没有得到任何更好的结果,只是出于某种原因出现一些嘶嘶声)
答案1
猜测:
您的 SPDIF 硬件中只有 48 kHz(这是大多数 SPDIF 硬件的默认设置),当您将其设置为 44.1 kHz 时,重采样会发生在容易发生下溢的地方,从而产生裂纹/失真。
OTOH,使用 48 kHz 和 Pulseaudio,Pulseaudio 将进行重采样,并且显然具有足够大的缓冲区,下溢不是问题。
要确认这一猜测是否正确,必须查看硬件的详细信息以及如何配置所有内容。