作为一名笔记本电脑用户,我相信很多人,甚至是使用上网本的人,都已经遇到过这个问题。尤其是在听播客时,以它为例,声音可能会有大声的时刻和安静的时刻,一个人在同一集里大声说话,另一个人说话很安静。因此,我一直希望声音在整个系统范围内被压缩,前几天我注意到,在 Windows 中,一些 Realtek 驱动程序已经提供了此功能。
我们已经有一个用于全系统均衡的 pulseaudio 插件,尽管它仍然存在一些问题,例如不让我们更改其值并实时收听更改,或者在更改脉冲音量时声音会破裂,但我确实喜欢它并使用它。现在我只是缺少一些东西来将声音保持在 0db 左右(或接近您正在使用的音量),作为 pulseaudio 的调平插件。
有什么建议吗?
答案1
我成功地使用了如下所示的示例这个答案。
-
sudo apt install swh-plugins
pacmd
然后运行以下命令:load-module module-ladspa-sink sink_name=compressor plugin=sc4m_1916 label=sc4m control=1,1.5,401,-30,20,5,12 set-default-sink compressor
这个答案解释如何永久加载插件。
该压缩机的参数(control=1,1.5,401,-30,20,5,12
以上部分)描述如下Steve Harris 的 LADSPA 插件文档:
- 有效值/峰值:RMS 和峰值包络跟随器之间的平衡。RMS 通常更适合微妙的音乐压缩,而峰值更适合较重、快速的压缩和打击乐。
- 攻击时间(毫秒):攻击时间,以毫秒为单位。
- 释放时间(毫秒):释放时间,单位为毫秒。
- 阈值电平 (dB):压缩机开始启动的点。
- 比率 (1:n):信号电平超过阈值时使用的增益降低比率。
- 膝部半径 (dB):膝点曲线起始点到阈值的距离。
- 补偿增益 (dB):控制补偿输入信号的增益(以 dB 为单位)。
- 幅度 (dB):输入信号的电平,以分贝为单位。
- 增益衰减 (dB):应用于输入信号的增益降低的程度,以分贝为单位。
由于 PulseAudio 的限制,无法实时调整它们。
为了试验不同的参数,我还通过以下方式将压缩器加载为实时可调的 ALSA 插件:阿尔萨埃夸尔 通过创建以下内容~/.asoundrc
:
ctl.compressor {
type equal;
library "/usr/lib/ladspa/sc4m_1916.so";
module "sc4m";
}
pcm.plugcompressor {
type equal;
slave.pcm "plug:pulse";
library "/usr/lib/ladspa/sc4m_1916.so";
module "sc4m";
}
pcm.compressor {
type plug;
slave.pcm plugcompressor;
}
可以使用压缩器播放示例 MP3 文件mpg321 ,
mpg321 -a hw:compressor "04 - Love Song for Yoshimi.mp3"
同时alsamixer -D compressor
可以用于实时调整参数。
答案2
我建议简易效果(以前称为 PulseEffects)。这是一款应用程序,您可以使用许多工具来操纵整个系统的声音(包括压缩器)。使用起来相当简单。
安装说明
脉冲效果可以从电力供应协议(Ubuntu >= 18.04)或扁平包装。我强烈建议先尝试 flatpak,因为它是独立的并且不会干扰您的系统配置,而 PPA 版本将在 18.04 上安装 18.10 版的 Pulse Audio 12 的反向移植。
扁平包装
如果您的系统上尚未安装 flatpak,请在终端中使用以下命令进行安装:
sudo apt install flatpak
现在添加 flathub 存储库:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
...并安装 Pulse Effects:
flatpak install flathub com.github.wwmm.pulseeffects
或者,您也可以按照官方快速设置指南并从其安装PulseEffectsflathub 页面。
电力供应协议
如果 flatpak 版本不起作用或者您更喜欢使用 PPA,请在终端中运行以下命令:
sudo add-apt-repository ppa:mikhailnov/pulseeffects -y
sudo apt install pulseeffects pulseaudio --install-recommends
安装后,重新启动系统。
答案3
这些非常有帮助。谢谢你的启发。虽然目前还不完美,但我还是可以做出一些贡献。我查看了 Steve Harris 文档,发现压缩机有几种风格,我选择使用立体声压缩机。使用脉冲音频音量控制将压缩机放置在 Chrome 和 VLC 等多个应用程序上确实很复杂,但我喜欢这个结果。我使用压缩机的动机是对音量设置非常严格的下限和上限。为了不吵醒深夜家里的任何人,我不想不断调高音量来听媒体中人物的说话,而只是在超级英雄动作发生或广告播放时急于调低音量。我遵循这里的灵感并实时调整了值。然后我取了我想要的值并将它们放回示例代码中。总之,我贡献的示例代码毫不掩饰地借鉴了上面的示例,但立体声压缩机的上限和下限非常严格。最后,我把它写成了脚本。我希望这对社区有用。
#!/bin/sh
# ComperssorScript.sh
# Script to start PulseAudio Compressor with desired settings
# Original: 2016 September 17
pacmd load-module module-ladspa-sink sink_name=compressor plugin=sc4_1882 label=sc4 control=9,5,63,-6,15,3,49
pacmd set-default-sink compressor
# The parameters (the control=1,1.5,401,-30,20,5,12 for example) for this compressor are described in Steve Harris' LADSPA Plugin Docs:
# RMS/peak: The balance between the RMS and peak envelope followers. RMS is generally better for subtle, musical compression and peak is better for heavier, fast compression and percussion.
# 9, Attack time (ms): The attack time in milliseconds.
# 5, Release time (ms): The release time in milliseconds.
# 63, Threshold level (dB): The point at which the compressor will start to kick in.
# 6, Ratio (1:n): The gain reduction ratio used when the signal level exceeds the threshold.
# -15, Knee radius (dB): The distance from the threshold where the knee curve starts.
# 3, Makeup gain (dB): Controls the gain of the makeup input signal in dB's.
# 49, Amplitude (dB): The level of the input signal, in decibels.
# no value was placed here
# Gain reduction (dB): The degree of gain reduction applied to the input signal, in decibels.
# Due to a limitation of PulseAudio, it is not possible to adjust them in real time.
# no value was placed here