1
21
2023
6

使用 EasyEffects 调整 Bose 音箱的体验

本文来自依云's Blog,转载请注明。

最近到手一个「Bose SoundLink Mini 蓝牙扬声器 II-特别版」音箱,蓝牙名称「Bose Mini II SE SoundLink」。这家伙小巧、沉重,黑色版和我显示器的黑色支架也挺合得来的。然而音质上我遇到了一点问题。

就如同 Bose 产品页说的,它「低音浑厚」。效果就是,只要播放的声音有一点低音,它都给它放大到很明显,震动人心的同时也震动了我的桌面。这用来听强调低音的音乐应该非常有感觉。可是,我听的大部分歌曲都是女声呀。这就像纯净清澈的蓝天蒙上了一层雾霾。

我用白噪声、粉噪声和频率连续变化的正弦波测了一下,用 Spectroid 查看,发现这音箱会加强 100Hz 及 7kHz 附近的声音。所以我把播放的声音处理一下,降低这个地方的强度不就好了吗——嗯,我需要个均衡器。

我记得群里有人提到一个叫 PulseEffects 的软件,于是找了一下。它已经更名为 EasyEffects 啦,不过仅支持 PipeWire。而我还在使用 PulseAudio,于是先装上 pulseeffects-legacy 试了一下。效果十分不错,清澈的女声回来啦(还丢掉了笔记本扬声器所附带的金属感)。不过有点吃 CPU,即使不显示频谱图,也大约得消耗掉 10% 的 CPU。群友说 EasyEffects 的资源占用很小,于是我花了一些时间,切换到 PipeWire 上来啦。

EasyEffects 均衡器截图

切换起来其实不难,我主要是担心有功能不支持以及遇到 bug。pacman -Syu pipewire-pulse pipewire-alsa wireplumber easyeffects就好啦。然后把 PulseAudio 的服务停掉,PipeWire 的对应物开起来,就切换完毕了。PipeWire 的 PulseAudio 兼容性还不错,pavucontrol 用起来完全没有问题,甚至还解决了之前蓝牙编码器在连接之后从 SBC XQ 变回 SBC 的问题。EasyEffects 的 CPU 占用大约在 4%,低了不少。我关心的另一个问题是网络支持,但我发现这个 PipeWire 也兼容了,同样的命令pactl load-module module-native-protocol-tcp auth-ip-acl=192.168.57.0/24对 PipeWire 也能用。

至于 bug 嘛,确实有一些。虚拟机里通过网络播放的时候,偶尔会卡一下。EasyEffects 有时候会需要重启。刚刚不知道为什么音箱明明是连接上的状态,但是就是没声音。重连之后才恢复。我大概会用一些天,如果不是很严重的话我就不切回去了。

哦对了,easyeffects --gapplication-service 这样启动 EasyEffects 就可以不显示图形界面了。但是依旧需要连接上 Wayland 或者 X11,所以需要安排在图形界面启动之后运行。我给 EasyEffects 写了个 systemd 服务,WantedBy 自己写的 xprofile.target,然后在~/.xprofile的最后启动一下,就可以了。

至于其它系统,Windows 上可以使用 Equalizer APO,Android 上我使用的播放器 Poweramp 也有均衡器功能。而且这俩也是可以给指定的输出设备配置的(不过好像 Equalizer APO 只支持一组配置)。

最后再吐槽一下,作为音箱,做不到把声音完美还原也就算了,就请不要主动乱改好吗……哦对了,手机上的相机不少也有同样的问题。我不反对你们后期搞点效果,但是请不要不支持真实的世界。(经常听女声的人,记得看到「低音浑厚」就离远点儿~)

Category: 硬件 | Tags: linux 蓝牙 音频 外部设备 | Read Count: 16601
RNE 说:
Jun 02, 2024 06:50:56 PM

可以试试pipewire自己的filter-chain,感觉easy effects对于单纯配置均衡器来说还是太重了(

Avatar_small
依云 说:
Jun 03, 2024 08:52:02 AM

EasyEffects 确实有点重,尤其是它还有内存漏洞。那有现成的软件或者教程吗?不是很想自己重新发明轮子……

RNE 说:
Jun 04, 2024 11:59:06 PM

可以参考一下我这篇文章:https://zhuanlan.zhihu.com/p/692615629(

Avatar_small
依云 说:
Jun 05, 2024 10:55:04 AM

这个能根据输出设备动态配置吗?

RNE 说:
Jun 05, 2024 01:43:49 PM

自然可以。用match rules(在filter.rules中)。可参考https://docs.pipewire.org/page_man_pipewire-client_conf_5.html

Avatar_small
依云 说:
Jun 07, 2024 04:09:47 PM

用 match rules 不太行。我最终用近百行 Lua 脚本搞定了。Wireplumber 这 API 没文档,只能翻源码,花了好久……


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter

Mastodon | Theme: Aeros 2.0 by TheBuckmaker.com