如何更改 Ubuntu 调整音量混合器级别的方式?

DLH*_*DLH 15 sound pulseaudio alsa

很长一段时间以来,我的声音都遇到了一个有点烦人的问题,我终于决定是时候做点什么了。

每次我调整工具栏中的主音量滑块,或使用笔记本电脑上的音量热键时,Ubuntu 都会以一种奇怪的方式调整我的混音器级别。当我打开 GNOME ALSA Mixer 时,我注意到我的 SigmaTel STAC9200 有三个输出滑块:Master、PCM 和 LFE。Master 和 LFE 都有静音复选框。

当我按下音量调高热键一次时,Master 和 LFE 取消静音,PCM 和 LFE 的滑块跳到一半左右。主滑块保持为零。另一按将 PCM 和 LFE 提高到大约 4/5,而 Master 在底部保持不动。

在 PCM 和 LFE 达到最大值之前,Ubuntu 不会移动 Master,这在主输出混音器上发生在大约 15%-20% 之间。

这样做的结果是,直到大约 15%-20%(因为 Master 为零)我才听到任何声音,当我越过这个阈值时,我立即听到一个响亮的低音(显然来自 LFE) . 如果我使用耳机,直到那个阈值我仍然听不到任何声音,但至少当我听到声音时它不会让我感到震惊。

PulseAudio 配置或其他任何地方是否有任何可能改变我的输出混音器行为的内容?

Dan*_*hen 24

音频堆栈中有许多层可能导致这种症状。最直接的是 PulseAudio 默认的行为,您可以在http://pulseaudio.org/wiki/PulseAudioStoleMyVolumes阅读有关该行为的信息。您可以使用我在https://wiki.ubuntu.com/DebuggingSoundProblems/KarmicCaveats#Volume%20range%20anomalies提供的说明解决某些实例:

音量范围异常

PulseAudio 的最新版本尝试使用其混音器控件来控制声卡的音量。通常这工作得很好,但在某些情况下这不能正常工作。(无论这是 PulseAudio 还是 ALSA 的错,都超出了本维基页面的范围。更多背景信息在这里。)

诊断

您会遇到以下任何情况:

  • 音量跳跃,例如,如果低于 20% 的所有内容都静音,而 21% 非常响亮。
  • 如果音量设置高于某个(低)水平,则过载(声音失真)
  • 部分范围内的音量没有变化,例如,如果 20% 与 70% 一样响亮。

修复/解决方法

有几个变量可以控制 PulseAudio 如何控制音量。您可以编辑 /etc/pulse/default.pa(您必须是 root 才能这样做)以更改所有用户的行为,或者将该文件复制到~/.pulse/default.pa然后编辑该文件,以仅更改当前用户的行为。

打开上面提到的文件。找到行说load-module module-udev-detect并将其更改为:

load-module module-udev-detect ignore_dB=1
Run Code Online (Sandbox Code Playgroud)

要尝试您的更改,请使用以下命令重新启动 PulseAudio:

killall pulseaudio
Run Code Online (Sandbox Code Playgroud)

PulseAudio 然后将自动生成(重新启动自身)。

您可能会发现上述解决方法是不够的,在这种情况下,您可以将 PulseAudio 配置为仅控制一个混音器控件,例如 PCM(参见 alsamixer)。找到行说 #load-module module-alsa-sink并将其更改为:

load-module module-alsa-sink control=PCM
Run Code Online (Sandbox Code Playgroud)

(请记住删除行开头的 #!)(可选)将 PCM 替换为您希望 PulseAudio 控制的混音器控件。

然后您将需要killall pulseaudio如上所述并允许守护程序自动生成。

最后,这个异常是否真的是一个 bug 需要你使用ubuntu-bug alsa-base.