Lautstärke automatisch an den Inhalt anpassen?

51

Bei verschiedenen Audioquellen ist die Lautstärke unterschiedlich. Es ist sehr ärgerlich, die Lautstärke für fast alle Medieninhalte einzustellen. Manchmal, wenn Sie vorher etwas Leises hatten, mussten Sie es lauter einstellen und nach einiger Zeit möchten Sie ein anderes Medium abspielen - bang! es bricht unerwartet Ihre Kopfhörer, der Ton ist so laut!

Gibt es also ein Plugin / eine Funktion, mit der die Lautstärke für jeden Medieninhalt automatisch angepasst werden kann?

Mega
quelle

Antworten:

39

Anpassen der Lautstärke mit einem LADSPA-Plugin

Um unabhängig vom Eingangspegel einen ziemlich normalisierten Tonausgangspegel zu erhalten, können wir ein LADSPA-Plugin verwenden, um den Tonausgang durch PulseAudio zu filtern.

Als Minimum benötigen wir ein Kompressor-Plugin wie den dysonCompressor aus den swh-Plugins, Installieren Sie swh-Plugins die installiert werden müssen, falls noch nicht vorhanden.

Nachdem Sie den Namen unserer Standardspüle mit herausgefunden haben

pacmd list-sinks

und den genauen Namen des Plugins, in dem es gespeichert ist /usr/lib/ladspa/(mit meinem System hier dyson_compress_1403), können wir den folgenden Befehl ausgeben

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

Ersetzen Sie <alsa_output>durch den genauen Namen der Ausgabesenke (in meinem System war dies alsa_output.pci-0000_00_14.2.analog-stereo).

Die komprimierte Ausgabe ist jetzt auf der neu erstellten Ausgabesenke zu hören, auf die Sie ladspa_sinküber das Menü " Toneinstellungen" zugreifen können.

Bildbeschreibung hier eingeben

Die Steuerungseinstellungen für das Kompressor-Plugin lauten wie folgt: Spitzenwert, Auslösezeit, schnelles Verhältnis, Verhältnis . Weitere Informationen, Standardeinstellungen und minimale bzw. maximale Werte für diese Steuerelemente finden Sie in der Plugin-Dokumentation .

Um ein Übersteuern der Wiedergabe zu vermeiden, können wir dieses Plugin nach der Komprimierung auch mit einem Limiter kombinieren. Wir können das fast_lookahead_limiterdafür verwenden, wobei die Hauptsenke jetzt unsere gerade erstellte lasdpa_sink von oben ist:

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

Quelle: Die obigen Einstellungen wurden von Briens Blog über Miscfits an pulseaudio angepasst

Takkat
quelle
sehr cool! Durch Auswahl des obigen Ausgabeeintrags können wir den Unterschied sofort hören! Übrigens, cmd, um sie nur für Tests zu entfernen pacmd unload-module module-ladspa-sinkund die normalisierte Spüle auszuwählenpacmd set-default-sink ladspa_normalized
Aquarius Power
Ich habe eine Panne, die Lautstärke wird plötzlich zu leise, als ob sie geändert worden wäre, um die Lautstärke zu verringern, und dann muss ich die Lautstärke um einen Schritt erhöhen, um zu hören, was die Leute sprechen, aber dann wird es ein bisschen laut Wenn wir eine Art "Equalizer Normalizer" haben könnten, bei dem alle Frequenzen dynamisch gesteuert werden, um Musik, Soundeffekte und die Sprache der Menschen normal und nie sehr laut zu hören. Irgendein Tipp / Idee?
Aquarius Power
1
@AquariusPower Ich denke, es liegt daran, dass das Plugin versucht, im Voraus zu erraten, wie groß die Lautstärke sein könnte ... dies scheint für 5 ms hart codiert zu sein. Sie können es mit einem anderen Limiter versuchen, z. B. aus dem TAP-Set: tap-plugins.sourceforge.net/ladspa/limiter.html mit einer Latenz von 12,5 ms oder einem anderen Kompressor (z. B. MLT mltframework.org/bin/view/MLT/FilterLadspa-1072 ) ... habe das aber nicht ausprobiert.
Takkat
mmm ... ich muss hinzufügen, das Problem, das ich hatte, scheint nur bei einem einzigen YouTube-Video aufgetreten zu sein, das ich glücklicherweise gerade gespielt habe, nachdem ich ladspa angewendet habe. Dies funktioniert hervorragend für alles andere, auch für Spiele! Danke auch für diese anderen Tipps, ich werde sie überprüfen!
Aquarius Power
1
Ändern Sie den controlParameter so, dass er control=-12,1,0.5,0.99mit -12 anstelle von 0 wiedergegeben wird. Dies bedeutet, dass nur Töne über -12 dB komprimiert (gedämpft) werden . Dies beinhaltet normalerweise alles, was lauter ist als Stimmen / Konversation. Nehmen Sie diese Änderung vor, wenn Sie feststellen, dass der Gesang beim Ansehen von Filmen (z. B. RED 2 auf NetFlix) im Vergleich zu den Explosionen immer noch zu leise ist.
Jonathan Neufeld
15

Takkats Lösung ist gut, aber hier ist eine Variation, die einfacher und dauerhafter ist.

Es gibt nur zwei Schritte:

  1. apt-get install swh-plugins
  2. Schneiden Sie das Folgende aus und fügen Sie es in eine Datei mit dem Namen ~ / .config / pulse / default.pa ein :

    .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
    

Wenn Sie sich das nächste Mal anmelden (oder ausführen pulseaudio -k), ist die Normalisierung standardmäßig automatisch aktiviert.

hackerb9
quelle
Was bewirkt das Weglassen des "Master" -Parameters? Was ist in diesem Fall als Master der Spüle konfiguriert?
Nicolay Doytchev
Hallo Nicolay: Mein Lesen des Quellcodes zeigt an, dass eine NULL-Zeichenfolge mit "@ DEFAULT_SINK @" identisch ist. (Siehe auch Zeile 216 oder so von namereg.c). Aber warum fragst du? Wenn es Probleme mit meiner Lösung gibt, möchte ich sie beheben.
Hackerb9
Hallo, ich habe angefangen, die Lösung in dieser Antwort zu verwenden, um zwischen Lautsprechern und Kopfhörern wechseln zu können, ohne sie abzustecken, und in der Sound-Systemsteuerung erhalte ich nur die gefilterten Ausgänge für die Lautsprecher. Hast du eine Idee, wie es auch für den Kopfhörerausgang funktioniert?
User1738984
Ich bin mir nicht sicher, aber vielleicht müssen Sie zwei Filter ausführen, einen für jeden Ausgang. Oder möglicherweise muss die Normalisierung erfolgen, nachdem die Kopfhörer / Lautsprecher in separate Ausgänge aufgeteilt wurden.
Hackerb9
Eigentlich habe ich mich geirrt, tut mir leid: Wenn ich den gefilterten Ausgang auswähle, kommt der Ton über Kopfhörer und Lautsprecher, was ich nicht will. Ich habe nicht herausgefunden, wie man es trennt
user1738984
3

Die Volume-Normalisierung ist in SMPlayer vorhanden. Gehe zum Software-Center und lade diesen großartigen Player herunter und aktiviere dann die Lautstärkeregelung unter den Audiooptionen :)

aishu
quelle
1

Früher hatte ich auch Probleme mit der Audio-Normalisierung beim Abspielen von Filmen auf meinem VLC-Mediaplayer, aber nur wenige Suchanfragen über das Internet. Ich konnte eine perfekte Lösung dafür finden und habe sie nachfolgend weitergegeben, damit auch Sie davon profitieren können.

Audio Normalization VLC Fix / Audio nicht synchron VLC Fix

Pankaj Kumar
quelle
2
Willkommen bei Ask Ubuntu! Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Kevin Bowen
0

Zusammen mit einer Alternative habe ich einige Kommentare zu den obigen Lösungen, die die Verwendung des Dysoncompressors vorschlagen.

Aus dem Handbuch:

 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

Der Autor des Pakets weiß nicht, was die letzten beiden Werte steuern. Wie könnten Sie also alle sagen, was Sie als die letzten beiden Werte eingeben sollten?

Das Plugin selbst schlägt control = 0,0.25,0.5,0.5 vor

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

Plugin Name: "Dyson compressor"
Plugin Label: "dysonCompress"
Plugin Unique ID: 1403
Maker: "Steve Harris <[email protected]>"
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

Ich würde sogar vorschlagen, dass Sie einen der anderen Kompressoren ausprobieren, die besser dokumentiert zu sein scheinen, wie 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
fullmooninu
quelle
Dieser alternative Kompressor klingt für mich besser, aber die in der Antwort aufgeführten Steuerparameter scheinen keine Wirkung zu haben. Der Schwellenwert ist auf 0 gesetzt (niemals komprimiert) und das Verhältnis ist auf 1 gesetzt (selbst wenn es komprimiert ist, würde es 1: 1 verwenden, was das Signal nicht verändert). Sie könnten stattdessen so etwas wie control = 0,101.125,401, -22,10,3,25,0 verwenden, damit alles über -22dB 1:10 komprimiert wird. Dies sind absichtlich etwas extreme Werte, so dass man die Wirkung des Filters hören und dann die Werte fein abstimmen kann.
Zoltan