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

我的声音现在已经有一段轻微的烦恼了,我终于决定是时候做点什么了。

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

当我按下我的音量热键一次,Master和LFE取消静音时,PCM和LFE的滑块大约跳了一半。 主滑块保持为零。 另一台印刷机使PCM和LFE达到约4/5,而Master仍然无动于衷。

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

这样做的结果是,直到大约15%-20%才会得到任何声音(因为Master是零),当我超过该阈值时,我立即得到一个响亮的低音声音(显然来自LFE) 。 如果我使用耳机,我仍然没有得到任何声音,直到那个阈值,但至少它没有爆炸我发出声音。

在PulseAudio配置或其他任何可能改变输出混音器行为的地方有什么吗?

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

体积范围exception

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

诊断

您遇到以下任何情况:

  • 音量跳跃,例如,如果低于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 

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

 killall pulseaudio 

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

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

 load-module module-alsa-sink control=PCM 

(记得删除行开头的#!)可选择用想要PulseAudio控制的混音器控件替换PCM。

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

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