Emanuele Asked: 2024-09-03 05:43:34 +0800 CST2024-09-03 05:43:34 +0800 CST 2024-09-03 05:43:34 +0800 CST 为什么我在 Ubuntu 24.04 上听到噼啪声?我该如何解决? 772 我最近切换到 Ubuntu 24.04 并且我更频繁地听到噼啪声,这是为什么?我该如何修复它? sound 1 个回答 Voted Best Answer Emanuele 2024-09-03T05:43:34+08:002024-09-03T05:43:34+08:00 Ubuntu 24.04 上出现噼啪声的可能原因是,发行版已经切换到pipewire,并且它运行脉冲音频的转换服务,即pipewire-pulse。 挑战在于许多应用程序并不直接与 piepewire 对话,而是通过JACK和/或特别是脉冲本身进行对话,因此声音数据需要通过额外的跳跃进行移动。 pipewire-pulse 的默认时间缓冲区为 2.7 毫秒,这意味着应用程序需要每 2.7 毫秒填充一次声音内容,否则 pipewire 将向音频设备发送之前填充的内容以及可能的一些随机数据,从而产生噼啪声。 2.7 毫秒是一个相当严格的时间,特别是对于没有专用音频线程的应用程序(例如 Proton/wine/games)和/或在旧 CPU 上运行时 - 因此限制破解的一种方法是告诉 pipewire-pulse 设置更大的时间缓冲区,尽管在将声音发送到音频设备时会增加延迟。 为此,需要打开该文件: /usr/share/pipewire/pipewire-pulse.conf 然后找到、取消注释并更改该项目的配置: pulse.min.quantum = 128/48000 # 2.7ms 从他的值128到更大的值 - 人们应该尝试256甚至512作为起点,如果他们没有遇到噼啪声,他们应该保持原样(请注意,保存文件后,必须通过重新启动pipewire,pipewire-pulse systemctl --user restart wireplumber pipewire pipewire-pulse)。 关键是找到最小的数字,使得恼人的噼啪声不会出现(或在可接受的最小值),因为如果较大的数字(例如1024)使得很少发生噼啪声,则它们会增加延迟(1024 / 48000 -> 21.333 ms)。 速度较慢的 CPU 需要的数字应为512或更高,或者当使用多个软件使 CPU 保持繁忙时,应使用1024或 甚至这样的数字2048。 请注意,在具有 64 GiB 内存的 5950x(32 核/16 线程)上,默认情况下(128/48000)会出现明显的爆裂声,因此在性能较弱的 CPU 上,爆裂声可能会更加明显。 附注:不确定为什么/Canonical/Ubuntu 决定发布这个严格的配置,看看这个论坛和其他论坛上有多少关于噼啪声的帖子。
Ubuntu 24.04 上出现噼啪声的可能原因是,发行版已经切换到pipewire,并且它运行脉冲音频的转换服务,即pipewire-pulse。
挑战在于许多应用程序并不直接与 piepewire 对话,而是通过JACK和/或特别是脉冲本身进行对话,因此声音数据需要通过额外的跳跃进行移动。
pipewire-pulse 的默认时间缓冲区为 2.7 毫秒,这意味着应用程序需要每 2.7 毫秒填充一次声音内容,否则 pipewire 将向音频设备发送之前填充的内容以及可能的一些随机数据,从而产生噼啪声。
2.7 毫秒是一个相当严格的时间,特别是对于没有专用音频线程的应用程序(例如 Proton/wine/games)和/或在旧 CPU 上运行时 - 因此限制破解的一种方法是告诉 pipewire-pulse 设置更大的时间缓冲区,尽管在将声音发送到音频设备时会增加延迟。
为此,需要打开该文件:
/usr/share/pipewire/pipewire-pulse.conf
然后找到、取消注释并更改该项目的配置:
从他的值
128
到更大的值 - 人们应该尝试256
甚至512
作为起点,如果他们没有遇到噼啪声,他们应该保持原样(请注意,保存文件后,必须通过重新启动pipewire,pipewire-pulsesystemctl --user restart wireplumber pipewire pipewire-pulse
)。关键是找到最小的数字,使得恼人的噼啪声不会出现(或在可接受的最小值),因为如果较大的数字(例如
1024
)使得很少发生噼啪声,则它们会增加延迟(1024 / 48000 -> 21.333 ms
)。速度较慢的 CPU 需要的数字应为
512
或更高,或者当使用多个软件使 CPU 保持繁忙时,应使用1024
或 甚至这样的数字2048
。请注意,在具有 64 GiB 内存的 5950x(32 核/16 线程)上,默认情况下(
128/48000
)会出现明显的爆裂声,因此在性能较弱的 CPU 上,爆裂声可能会更加明显。附注:不确定为什么/Canonical/Ubuntu 决定发布这个严格的配置,看看这个论坛和其他论坛上有多少关于噼啪声的帖子。