コンテンツに基づいて音量を自動的に調整しますか?


51

異なるオーディオソースでは、音のレベルが異なります。ほとんどすべてのメディアコンテンツでサウンドレベルを設定するのは非常に面倒です。時々、以前に静かなものがあったときに、音量を大きく調整しなければならず、しばらくしてから別のメディアを再生したい場合があります。ヘッドフォンが予期せず壊れてしまい、音が大きくなります!

だから、すべてのメディアコンテンツの音のレベルを自動的に調整できるプラグイン/機能はありますか?


回答:


39

LADSPAプラグインでサウンドレベルを調整する

入力レベルに関係なく、かなり正規化されたサウンド出力レベルを取得するには、LADSPAプラグインを使用して、PulseAudioを介してサウンド出力をフィルタリングします。

最低でも、まだ存在しない場合はインストールする必要があるswh-pluginsの dysonCompressorなどの圧縮プラグイン swh-pluginsをインストールしますが必要です。

でデフォルトのシンクの名前を見つけた後

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[サウンド設定]メニューからアクセスできる新しく作成された出力シンクで聞くことができます。

ここに画像の説明を入力してください

コンプレッサプラグインの制御設定は次のとおりです。ピーク制限、リリース時間、高速比率、比率。これらのコントロールの詳細、デフォルト、および最小値と最大値については、プラグインのドキュメントを参照してください。

再生のクリッピングを回避するために、圧縮後にこのプラグインをリミッターと組み合わせることもできます。我々は使用することができ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

出典:上記の設定は、miscfitsに関するbrienのブログの pulseaudioに適用されました


とてもかっこいい!上記の出力エントリを選択すると、すぐに違いを聞くことができます!ところで、ちょうどテストのためにそれらを削除するにはcmd pacmd unload-module module-ladspa-sink、および正規化されたシンクを選択するpacmd set-default-sink ladspa_normalized
アクエリアスパワー

グリッチが発生し、音量が突然大きくなりすぎて音量が大きくならないように変更されたため、音量を1段階上げてpplの発言を聞く必要がありますが、少し音量が大きくなります。すべての周波数が動的に管理され、音楽、効果音、人のスピーチがすべて適切に正規化され、非常に大声になることのない何らかの種類の「イコライザーノーマライザー」を使用できます。ヒント/アイデアはありますか?
アクエリアスパワー

1
@AquariusPowerプラグインがボリュームを事前に推測しようとするためだと思います...これは5ミリ秒間ハードコードされているようです。:あなたはTAPセットから別のリミッターなどを試すことができますtap-plugins.sourceforge.net/ladspa/limiter.html 12.5ミリ秒の遅延があり、または別の圧縮機(例えばMLT mltframework.org/bin/view/MLT/FilterLadspa-1072)...しかし、それを試していません。
Takkat

mmm ...それに加えて、私が経験した問題は、幸運なことにladspaを適用した直後に再生していた単一のyoutubeビデオでのみ発生したようです。これは、ゲームを含む他のすべてのためにうまく機能しています!これらの他のヒントのthxもチェックします!
アクエリアスパワー

1
0ではなく-12を使用controlして反映するようにパラメーターを変更します。control=-12,1,0.5,0.99これは、-12 dBを超える音のみが圧縮(ソフト化)されることを意味します。映画(NetFlixのRED 2など)を見るときに、爆発に比べてボーカルが静かすぎることがわかっている場合は、この変更を行ってください。
ジョナサンノイフェルド

15

Takkatのソリューションは優れていますが、こちらはよりシンプルで永続的なバリエーションです。

次の2つのステップのみがあります。

  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)すると、デフォルトで自動的に正規化がオンになります。


「マスター」パラメーターを省略するとどのような影響がありますか?その場合、シンクのマスターとして何が設定されますか?
ニコレイ・ドイチェフ

こんにちはニコレイ:私のソースコードの読み取りは NULL文字列が「@ DEFAULT_SINK @」と同じであることを示しています。(namereg.cの216行目も参照してください)。しかし、なぜあなたは尋ねますか?私のソリューションに問題がある場合、私はそれらを修正したいと思います。
hackerb9

こんにちは、私はこの回答でソリューションを使用して、スピーカーとヘッドフォンを外すことなく切り替えることができ、サウンドコントロールパネルでは、スピーカーのフィルターされた出力のみを取得しました。ヘッドフォン出力でも機能させる方法についてのアイデアはありますか?
user1738984

よくわかりませんが、出力ごとに1つずつ、2つのフィルターを実行する必要があります。または、ヘッドフォン/スピーカーを個別の出力に分割した後に正規化を行う必要があるかもしれません。
hackerb9

実際、私は間違っていました。申し訳ありません。フィルター処理された出力を選択すると、ヘッドフォンとスピーカーの両方から音が聞こえますが、これは望ましくありません。私はそれを分離する方法を理解していません
user1738984

3

SMPlayerにはボリュームの正規化が存在します。ソフトウェアセンターに移動してこの素晴らしいプレーヤーをダウンロードし、オーディオオプションでボリュームの正規化を有効にします:)


1

以前、VLCメディアプレーヤーで映画を再生しているときにオーディオの正規化の問題もありましたが、インターネット上での検索はほとんど行われていませんでした。

オーディオ正規化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

パッケージの作成者は、最後の2つの値が何を制御するかを知りません。では、最後の2つの値として何を入力する必要があるのでしょうか。

プラグイン自体はcontrol = 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で圧縮されるようにすることができます。これらは意図的にやや極端な値であるため、フィルターの効果を聞いてから値を微調整できます。
ゾルタン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.