根据内容自动调节音量?


51

在不同的音频源中,声音的级别是不同的。在几乎所有媒体内容上设置声音级别都是很烦人的。有时,以前您有一些安静的地方,则必须将其调大一些,过一会儿您想播放其他媒体-砰!意外地摔坏了您的耳机,声音太大了!

那么,是否有一些插件/功能可以自动调整每种媒体内容的声音级别?


Answers:


39

使用LADSPA插件调整音量

为了获得独立于输入电平的相当标准化的声音输出电平,我们可以使用LADSPA插件过滤通过PulseAudio输出的声音。

至少,我们需要一个压缩插件,例如swh -plugins中dysonCompressor安装swh插件如果尚未安装,则需要安装。

找出我们的默认接收器的名称后

pacmd list-sinks

以及存储在其中的插件的确切名称/usr/lib/ladspa/(在我的系统中dyson_compress_1403),我们可以发出以下命令

pacmd load-module module-ladspa-sink sink_name=ladspa_sink master=<alsa_output> plugin=dyson_compress_1403 label=dysonCompress control=0,1,0.5,0.99

替换为输出接收器<alsa_output>确切名称(在我的系统中为alsa_output.pci-0000_00_14.2.analog-stereo)。

现在,可以ladspa_sink从“ 声音设置”菜单访问的新创建的输出接收器上听到压缩的输出。

在此处输入图片说明

Compressor插件的控制设置如下:峰值限制,释放时间,快速比率,比率。有关这些控件的更多详细信息,默认值和最小resp最大值,请参见插件文档

为了避免回放剪辑,我们还可以在压缩后将此插件与限制器结合使用。我们可以将其fast_lookahead_limiter用于主接收器,现在是我们刚刚从上面创建的lasdpa_sink:

pacmd load-module module-ladspa-sink sink_name=ladspa_normalized master=ladspa_sink plugin=fast_lookahead_limiter_1913 label=fastLookaheadLimiter control=10,0,0.8

来源:以上设置适用于brien关于miscfits的博客中的pulseaudio


很酷!通过选择上面的输出条目,我们可以立即听到差异!顺便说一句,cmd删除它们只是为了测试pacmd unload-module module-ladspa-sink,然后选择归一化水槽pacmd set-default-sink ladspa_normalized
Aquarius Power

我遇到了小故障,音量突然变得太安静了,就像已经对其进行了修改以防止响度一样,然后我不得不将音量调高一步才能听到ppl在说什么,但是随后音量却变得有点大。如果我们可以使用某种“均衡器归一化器”,则可以动态管理所有频率,以使我们能够正确地对音乐,声音效果和人们的语音进行归一化,并且永远不会很大声。有什么建议/想法吗?
Aquarius Power

1
@AquariusPower我想这是因为插件试图提前猜测音量可能是多少……这似乎是硬编码的5毫秒。:您可以例如,从抽头组另一限制器尝试tap-plugins.sourceforge.net/ladspa/limiter.html具有12.5毫秒的时延或其它压缩机(例如MLT mltframework.org/bin/view/MLT/FilterLadspa-1072)...尚未尝试过。
塔卡特

嗯...我必须补充一点,我遇到的问题似乎只发生在一个幸运的是,我在应用ladspa之后播放的单个youtube视频上;这对包括游戏在内的所有其他功能都非常有用!在其他技巧上也要谢谢,我将检查它们!
Aquarius Power

1
改变control参数来反映control=-12,1,0.5,0.99使用-12代替0。这意味着只有声音以上 -12分贝将被压缩(软化),其典型地包括任何比声音/谈话更响亮。如果您发现在观看电影(例如NetFlix上的RED 2)时,人声与爆炸相比仍然太安静,请进行此更改。
乔纳森·诺伊菲尔德

15

Takkat的解决方案很好,但这是一个更简单且永久的变体。

只有两个步骤:

  1. apt-get install swh-plugins
  2. 将以下内容剪切并粘贴到名为〜/ .config / pulse / default.pa的文件中

    .nofail
    .include /etc/pulse/default.pa
    load-module module-ladspa-sink  sink_name=ladspa_sink  plugin=dyson_compress_1403  label=dysonCompress  control=0,1,0.5,0.99
    load-module module-ladspa-sink  sink_name=ladspa_normalized  master=ladspa_sink  plugin=fast_lookahead_limiter_1913  label=fastLookaheadLimiter  control=10,0,0.8
    set-default-sink ladspa_normalized
    

下次登录(或运行pulseaudio -k)时,默认情况下将自动启用标准化。


省略“ master”参数有什么作用?在这种情况下,什么配置为接收器的主控器?
尼古拉·杜伊切夫

嗨,尼古拉:我对源代码的阅读表明NULL字符串与“ @ DEFAULT_SINK @”相同。(另请参阅namereg.c的第216行)。但是你为什么要问?如果我的解决方案有任何问题,我想修复它们。
hackerb9

嗨,我开始在此答案中使用该解决方案,以便能够在不拔出扬声器和耳机的情况下进行切换,并且在声音控制面板中,我仅获得扬声器的滤波后输出。关于如何使它也适用于耳机输出的任何想法吗?
user1738984

我不确定,但是也许您需要运行两个过滤器,每个输出一个。或者,可能需要在将耳机/扬声器拆分为单独的输出后进行标准化。
hackerb9

其实,我错了,对此感到遗憾:发生的事情是,如果我选择了滤波后的输出,那么我会通过耳机和扬声器听到声音,这是我所不希望的。我还没弄清楚如何分开它
user1738984

3

SMPlayer中存在体积标准化。转到软件中心并下载此超赞的播放器,然后在音频选项下启用音量标准化:)


1

早些时候,在VLC媒体播放器上播放电影时,我也遇到了音频标准化问题,但是在Internet上进行的搜索很少,因此我可以找到一个完美的解决方案,在下面进行了共享,以便您也可以从中受益。

音频归一化VLC修复/音频不同步VLC修复


2
欢迎来到Ask Ubuntu!尽管从理论上讲这可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。
凯文·鲍文

0

除了替代方案,我对上述建议使用Dysoncompressor的解决方案发表了一些评论。

从手册中:

 2.37  Dyson compressor (dysonCompress, 1403)
Peak limit (dB)
Controls the desired limit of the output signal in dB's.
Release time (s)
Controls the time taken for the compressor to relax its gain control over the input signal.
Fast compression ratio
I have no clear idea what this controls.
Compression ratio
I have no clear idea what this controls. 

http://plugin.org.uk/ladspa-swh/docs/ladspa-swh.html#tth_sEc1.1

包的作者不知道最后两个值控制什么。那么,大家怎么能说应该输入的最后两个值呢?

插件本身建议控制= 0,0.25,0.5,0.5

$ analyseplugin /usr/lib/ladspa/dyson_compress_1403.so

Plugin Name: "Dyson compressor"
Plugin Label: "dysonCompress"
Plugin Unique ID: 1403
Maker: "Steve Harris <steve@plugin.org.uk>"
Copyright: "GPL"
Must Run Real-Time: No
Has activate() Function: Yes
Has deactivate() Function: No
Has run_adding() Function: Yes
Environment: Normal or Hard Real-Time
Ports:  "Peak limit (dB)" input, control, -30 to 0, default 0
    "Release time (s)" input, control, 0 to 1, default 0.25
    "Fast compression ratio" input, control, 0 to 1, default 0.5
    "Compression ratio" input, control, 0 to 1, default 0.5
    "Input" input, audio
    "Output" output, audio

我什至建议您尝试使用其他压缩器之一,这些压缩器似乎更有据可查,例如sc4。

load-module module-ladspa-sink  sink_name=ladspa_sink  plugin=sc4_1882 label=sc4  control=0,101.125,401,0,1,3.25,0

这种替代压缩机对我来说听起来更好,但是答案中列出的控制参数似乎没有任何作用。阈值级别设置为0(从不压缩),比率设置为1(即使压缩,也将使用1:1,这不会改变信号)。您可以改用control = 0,101.125,401,-22,10,3.25,0之类的东西,以便将-22dB以上的内容压缩为1:10。这些是有意设置的极端值,以便您可以听到滤波器的效果,然后可以微调这些值。
Zoltan '18年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.