Ajuster automatiquement le volume en fonction du contenu?

51

Dans différentes sources audio, le niveau des sons est différent. Il est très agaçant de régler le niveau sonore sur presque tous les contenus multimédias. Parfois, lorsque vous aviez auparavant quelque chose de silencieux, vous deviez l’ajuster plus fort et, après un certain temps, vous vouliez jouer un autre média - bang! ça casse inopinément vos écouteurs, le son est si fort!

Alors, y a-t-il un plugin / une fonctionnalité qui peut ajuster automatiquement le niveau de son sur chaque contenu multimédia?

mégas
la source

Réponses:

39

Ajuster le niveau sonore avec un plugin LADSPA

Pour obtenir un niveau de sortie sonore assez normalisé, indépendant du niveau d'entrée, nous pouvons utiliser un plug-in LADSPA pour filtrer la sortie audio via PulseAudio.

Au minimum, nous avons besoin d’un plug-in de compression tel que le dysonCompressor des swh-plugins, Installer les plugins swh qui doivent être installés s’ils ne sont pas encore présents.

Après avoir découvert le nom de notre évier par défaut avec

pacmd list-sinks

et le nom exact du plugin tel qu'il est stocké /usr/lib/ladspa/(avec mon système ici dyson_compress_1403), nous pouvons émettre la commande suivante

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

Remplacez-le <alsa_output>par le nom exact de l'évier de sortie (dans mon système, c'était alsa_output.pci-0000_00_14.2.analog-stereo).

La sortie compressée est maintenant audible sur le récepteur de sortie nouvellement créé, ladspa_sinkaccessible à partir du menu Paramètres son .

entrez la description de l'image ici

Les paramètres de contrôle du plug-in compresseur sont les suivants: limite maximale, temps de relâchement, rapport rapide, rapport . Voir la documentation du plugin pour plus de détails, les valeurs par défaut et les valeurs maximales respectives minimales pour ces contrôles.

Pour éviter l'écrêtage de la lecture, nous pouvons également combiner ce plugin avec un limiteur après compression. Nous pouvons utiliser le fast_lookahead_limiterpour cela avec l'évier maître étant maintenant notre lasdpa_sink créé ci-dessus:

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

Source: les réglages ci-dessus ont été adaptés à pulseaudio à partir du blog de brien sur miscfits

Takkat
la source
très cool! en sélectionnant l'entrée de sortie ci-dessus, nous pouvons rapidement entendre la différence! btw, cmd pour les supprimer juste pour les tests pacmd unload-module module-ladspa-sink, et pour sélectionner l'évier normalisépacmd set-default-sink ladspa_normalized
Aquarius Power
Je subis un petit problème, le volume devient soudainement trop faible, comme s'il avait été modifié pour éviter le volume, puis je dois monter le volume un pas pour entendre ce que les gens parlent, mais le volume devient un peu fort .. Je me demande. si nous pouvions avoir une sorte de "normalisateur d'égaliseur", dans lequel toutes les fréquences sont gérées de manière dynamique pour nous permettre d'entendre de la musique, des effets sonores et la parole des gens, tous correctement normalisés et jamais très forts. Toute astuce / idée?
Aquarius Power
1
@AquariusPower Je suppose que c'est parce que le plugin essaie de deviner à l'avance le volume possible ... cela semble être codé en dur pendant 5 ms. Vous pouvez essayer avec un autre limiteur, par exemple, du jeu TAP: tap-plugins.sourceforge.net/ladspa/limiter.html qui a une latence de 12,5 ms ou un autre compresseur (par exemple, MLT mltframework.org/bin/view/MLT/FilterLadspa-1072 ) ... n'ai pas essayé cependant.
Takkat
mmm ... je dois ajouter que, le problème que j'ai rencontré semble ne se produire que sur une seule vidéo youtube que, par chance, je jouais juste après l'application de ladspa; cela fonctionne très bien pour tout le reste, y compris les jeux! thx sur ces autres conseils aussi, je vais les vérifier!
Aquarius Power
1
Modifiez le controlparamètre à refléter en control=-12,1,0.5,0.99utilisant -12 au lieu de 0. Cela signifie que seuls les sons supérieurs à -12 dB seront compressés (atténués), ce qui inclut généralement tout ce qui est plus fort que les voix / conversation. Effectuez ce changement si vous constatez que lorsque vous regardez des films (par exemple, RED 2 sur NetFlix), les voix sont encore trop faibles comparées aux explosions.
Jonathan Neufeld
15

La solution de Takkat est bonne, mais voici une variante plus simple et permanente.

Il n'y a que deux étapes:

  1. apt-get install swh-plugins
  2. Coupez et collez le texte suivant dans un fichier nommé ~ / .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
    

La prochaine fois que vous vous connecterez (ou exécuterez pulseaudio -k), la normalisation sera automatiquement activée par défaut.

hackerb9
la source
Quel est l'effet de l'omission du paramètre "maître"? Qu'est-ce qui est configuré comme maître de l'évier dans ce cas?
Nicolay Doytchev
Bonjour Nicolay: Ma lecture du code source indique qu'une chaîne NULL est identique à "@ DEFAULT_SINK @". (Voir aussi la ligne 216, ou à peu près, de namereg.c). Mais pourquoi demandez-vous? S'il y a des problèmes avec ma solution, j'aimerais les résoudre.
hackerb9
Bonjour, j’ai commencé à utiliser la solution proposée dans cette réponse pour pouvoir basculer entre les haut-parleurs et le casque sans les débrancher, et dans le panneau de configuration du son, je n’obtiens que les sorties filtrées des haut-parleurs. Vous avez une idée de la façon de le faire fonctionner également pour la sortie casque?
user1738984
Je ne suis pas sûr, mais vous devrez peut-être utiliser deux filtres, un pour chaque sortie. Ou peut-être que la normalisation doit être réalisée après la division du casque / haut-parleurs en sorties séparées.
hackerb9 le
En fait, je me suis trompé, désolé, car si je sélectionne la sortie filtrée, le son passe à la fois au casque et aux haut-parleurs, ce que je ne veux pas. Je n'ai pas compris comment le séparer
user1738984
3

La normalisation de volume est présente dans SMPlayer. Allez dans le centre logiciel et téléchargez ce lecteur génial, puis activez la normalisation du volume dans les options audio :)

aishu
la source
1

Auparavant, je rencontrais également des problèmes de normalisation audio lorsque je lisais des films sur mon lecteur multimédia VLC, mais quelques recherches sur Internet m'ont permis de trouver la solution idéale. Je vous en ai fait part ci-dessous afin que vous puissiez également en bénéficier ....

Correction VLC de normalisation audio / correction VLC de sortie audio non synchronisée

Pankaj Kumar
la source
2
Bienvenue sur Ask Ubuntu! Bien que cela puisse théoriquement répondre à la question, il serait préférable d’inclure ici les parties essentielles de la réponse et de fournir le lien à titre de référence.
Kevin Bowen
0

Outre une alternative, j'ai quelques commentaires sur les solutions ci-dessus qui suggèrent d'utiliser le dysoncompresseur.

Du manuel:

 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

L'auteur du package ne sait pas ce que les deux dernières valeurs contrôlent. Alors, comment pouvez-vous tous dire ce que vous devez entrer comme les deux dernières valeurs?

Le plugin lui-même suggère 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 <[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

Je suggérerais même que vous essayiez l'un des autres compresseurs, qui semblent mieux documentés, comme 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
la source
Ce compresseur alternatif me semble meilleur, mais les paramètres de contrôle énumérés dans la réponse ne semblent pas avoir d’effet. Le niveau de seuil est défini sur 0 (jamais compressé) et le rapport sur 1 (même s'il est compressé, il utilisera 1: 1, ce qui ne modifie pas le signal). Vous pouvez utiliser quelque chose comme control = 0,101.125,401, -22,10,3.25,0 à la place, de sorte que tout ce qui dépasse -22dB soit compressé à 1:10. Ce sont intentionnellement des valeurs quelque peu extrêmes, ce qui permet d’entendre l’effet du filtre puis d’ajuster les valeurs.
Zoltan