升级到 Tumbleweed 之后,陆陆续续发现一些问题。“浑身着火” 嘛~
今天要说的是爆音的问题。升级之后看视频,听音乐的时候感觉有很明显的爆音,就是那种高频失真,吱吱嗡嗡的感觉。声音大的时候更加明显,但是降低音量其实也还有。就是感觉伴随着正常的声音,永远同时有一个高频的声音存在,而这个高频又超出了笔记本的小喇叭的表现范围那样,表现成吱吱嗡嗡的声音。
以前用 15.2 的时候觉得笔记本的声音还好,没什么特别异常。
查了一下,发现音频相关软件又变了,最早用 Debian 的时候是 alsa, 后来用的比较新的发现版是 pulseaudio, Tumbleweed 的原来变成了 pipewire.(一开始见到这个名字的包还以为是干甚么类似雷电,火线之类的)
然后我尝试用 yast 里的声音设定来设置一下声卡。(噗,然后发现 yast 声音已经没有安装了。即使在 openSUSE software 里设法装上了,也发现已经无法使用了。)
中文搜索几乎搜索不到甚么能解决问题的信息。只有一些关于 alsa, jack, pulseaudio, pipewire 演进历史的文章。
后来用英文搜索, pipewire crackling 之类的关键字,终于在 Manjaro 的论坛找到了一个长帖子。
里面关键的一点是说采样率的事情。结合以前做过一些音频处理的事, 我大概确认了这就是关键点。
大部分我们电脑上的音频文件 ,比如 cd 转录的音频, 音乐网站上下载的音频的采样率都是 44.1kHz, 视频网站的音频也是 44.1kHz.
而 pipewire hardcode 了采样率是 48kHz. 大概是因为笔记本的小喇叭硬件上不支持 48kHz, 所以就会发生充采样(或者某种意义上的 mismatch, 所以导致出现奇怪的爆音。(而我的蓝牙耳机并不会有这个问题)
接下来的解决方式就比较简单了。首先把 /usr/share/pipewire/pipewire.conf 复制一份到自己的个人配置目录 ~/.config/pipewire/pipewire.conf. 然后修改其中关于采样率的部分。(最好不要直接去改根目录下的配置文件,升级可能会覆盖)
改成下面这样
把默认采样率改为 44100Hz, 并且在允许的采样率中 prepend 44100Hz.
重启之后,问题解决。再也不会有那种爆音了。(可能问题还是因为我的笔记本硬件不支持 48kHz 的原因吧。然而 pipewire, emmmmm…)