以下事实来自在 64 位笔记本电脑上使用 Ubuntu 13.10 的经验。
背景/问题:糟糕的演讲者
众所周知,笔记本电脑扬声器音频专业人士会说,它们有“高度不均衡的频率响应”。普通人会说:“它们声音很糟糕“。
第一步解决方案:均衡
均衡提供了一种有价值的解决方法,只需一次努力就能显著改善音质。例如,我安装了Web Upd8 的 PulseAudio 均衡器。
为了获得良好的结果,应根据测量结果选择均衡值,但这是另一回事(我可以单独使用 Ubuntu 来做到这一点,尽管这很棘手,请向我询问详细信息)。
剩余问题:均衡曲线与输出相关
均衡值与整个链相关,但通常只有扬声器才是造成不平等响应的主要来源。
这意味着我有两个均衡配置文件:
- 一个用于笔记本电脑扬声器(均衡曲线变化很大)
- 当将外部立体声音响插入例如 3.5 毫米插孔时,则是另一回事(曲线更加平坦,因此禁用均衡通常是可以接受的)。
当前实践情况:自动取消/静音,不错但不足
- 当将 3.5 毫米插孔插入外部立体声音响时,内置扬声器会自动静音,音量由 Ubuntu 堆栈调整。这很好,但还不够。
- 拔掉电源后,内置扬声器会自动再次激活。这很好,但还不够。
改进:不仅可以自动静音,还可以自动选择均衡曲线
拔下/插入 3.5 毫米插孔时应用正确的均衡器预设会更好。插入外部立体声音响,选择平坦曲线。拔下立体声音响,内置扬声器会获得其校正曲线。
问题
如何快速进行黑客攻击?如何从脚本中检测插头?
关于检测堵塞事件。我在网上找不到文档,而且关键字“jack”返回的结果与 jack 软件套件无关,与此无关。起点不高:声音 - 如何在拔下/插入耳机时自动更改音量? - 询问 Ubuntu 音频插孔检测:蓝图:Ubuntu
关于改变均衡器曲线我找不到任何关于的文档
pulseaudio-equalizer-gtk
。概念验证脚本会摆弄文件然后调用,这样pulseaudio-equalizer interface.applysettings
可以更改设置,但 GUI 不会意识到。
如何进行干净的设置:将均衡曲线分配给内部扬声器,而不仅仅是插头事件。
例如,假设我插入 USB 音频设备并通过它播放音频。只要拔下/插入 3.5 毫米插孔,这个快速而简单的技巧就会改变 EQ 曲线,尽管音频实际上继续进入 USB 音频设备而不是内置扬声器,因此 EQ 曲线的变化无关紧要。
在“干净”的设置中,均衡配置文件将干净地分配给内置扬声器,从而使设备更加稳定。无论在什么情况下,它总是(并且只)在需要时应用。
有人在做这个吗?有什么提示吗?
感谢您的关注。
答案1
因为我遇到了类似的问题,所以我编写了一个“快速而粗糙”的 python 脚本,它使用 pulseaudio 的 DBus-Events 来检测何时激活哪个均衡器配置文件。
安装
要使用它,您必须将以下行添加到 /etc/pulse/default.pa:
load-module module-dbus-protocol
然后通过 pulseaudio-equalizer-gtk 禁用均衡器并单击“应用设置”,现在关闭 GUI。
下载应用均衡器.py将其保存在某处并使其可执行。
以用户身份执行它(!)。也许您需要安装一些额外的 Python 模块。此外,您可能希望在登录时自动启动它(我不知道最好的方法是什么)。
用法
该脚本在 ~/.config/apply-equalizer 下创建每个端口 [1] 均衡器配置,如果设备改变输出端口(即插入或拔出耳机),则对其进行符号链接。
[1]:许多声卡有不同的端口,例如一个扬声器端口和一个耳机端口
所以:
- 拔下耳机。
- 打开 pulseaudio-equalizer GUI
- 自定义均衡器设置,直到听起来不错
- 然后,“应用设置”会将你所做的配置(包括均衡器是否已启用)分配给当前端口(此处为发言者)
- 关闭 GUI并对要分配的每个端口重复第 2 步(未插入耳机)
现在,只要您在扬声器和耳机之间切换,均衡器设置就会自动调整。
答案2
这里有一个手动解决方案,可以在均衡器开启(使用您喜欢的设置)和关闭之间切换:
if [ "$(pulseaudio-equalizer status | grep "Equalizer status" | cut -d"[" -f2 | cut -d"]" -f1)" == "enabled" ]; then
pulseaudio-equalizer disable
else
pulseaudio-equalizer enable
fi
将文件保存为 bash 脚本,创建一个新的面板启动器,以便能够直接从桌面或菜单面板启动该脚本。