根据音频输出(内部扬声器或外部)自动切换均衡器预设

Sté*_*hon 5 equalizer headphones speakers pulseaudio

以下事实来自在 64 位笔记本电脑上使用 Ubuntu 13.10 的经验。

背景/问题:糟糕的演讲者

很多人都知道,正如音频专业人士所说,笔记本电脑扬声器具有“高度不平等的频率响应”。正常人说:“他们听起来很糟糕”。

第一步解决方案:均衡

均衡提供了一种有价值的解决方法,只需一次努力即可显着提高音质。例如,我从 Web Upd8安装了PulseAudio Equalizer

为了获得好的结果,应该根据测量值选择均衡值,但那是另一回事(我可以单独用 Ubuntu 来完成,尽管这很棘手,请询问我的详细信息)。

剩下的问题:均衡曲线取决于输出

均衡值与整个链相关,但通常只有扬声器是不均衡响应的主要来源。

这意味着我有两个均衡配置文件:

  • 一种用于笔记本电脑扬声器(均衡曲线变化很大)
  • 另一个(更平坦的曲线,因此禁用均衡通常是可以接受的)当外部立体声插入到例如 3.5 毫米插孔时。

实践现状:自动取消/静音,好但不够

  • 将 3.5 毫米插孔插入外部立体声时,内部扬声器会自动静音并由 Ubuntu 堆栈调整音量。这很好,但还不够。
  • 拔下插头时,内部扬声器会再次自动激活。这很好,但还不够。

改进:不仅自动静音而且自动选择均衡曲线

在拔出/插入 3.5 毫米插孔时应用正确的均衡器预设会好得多。插上外接立体声,选择平坦曲线。拔下立体声,内置扬声器得到它们的校正曲线。


问题

如何进行快速而肮脏的黑客攻击?如何从脚本中检测插头?

如何进行干净的设置:将均衡曲线分配给内部扬声器,而不仅仅是插入事件。

例如,假设我插入一个 USB 音频设备并通过它播放音频。每当拔出/插入 3.5 毫米插孔时,这个快速而肮脏的黑客都会改变 EQ 曲线,尽管音频实际上继续进入 USB 音频设备而不是内部扬声器,这使得 EQ 曲线变化无关紧要。

在“干净”的设置中,均衡配置文件将干净地分配给内部扬声器,使设备更加坚固。无论情况如何,它都将始终(且仅)在需要时应用。

有人在做吗?任何提示?

感谢您的关注。

小智 3

因为我有一个类似的问题,所以我制作了一个“快速而肮脏”的Python脚本,它使用pulseaudio的DBus事件来检测何时激活哪个均衡器配置文件。

安装

要使用它,您必须将以下行添加到 /etc/pulse/default.pa:

load-module module-dbus-protocol
Run Code Online (Sandbox Code Playgroud)

然后通过pulseaudio-equalizer-gtk禁用均衡器并单击“应用设置”,现在关闭GUI。

下载apply-equalizer.py将其保存在某处并使其可执行。

以用户身份执行它(!)。也许你需要安装一些额外的 python 模块。另外,您可能想在登录时自动启动它(我不知道最好的方法是什么)。

用法

该脚本在 ~/.config/apply-equalizer 下创建每个端口 [1] 均衡器配置,并在设备更改输出端口(即插入或拔出耳机)时对它们进行符号链接。

[1]:许多声卡有不同的端口,例如一个扬声器端口和一个耳机端口

所以:

  1. 拔掉耳机。
  2. 打开脉冲音频均衡器 GUI
  3. 自定义均衡器设置,直到听起来不错
  4. 然后,“应用设置”会将您所做的配置(包括均衡器是否启用)分配给当前端口(在本例中为扬声器)
  5. 关闭 GUI并对要分配的每个端口重复步骤 2(未插入耳机)

现在,每当您在扬声器和耳机之间切换时,均衡器设置都会自动调整。