Regola automaticamente il volume in base al contenuto?


51

In diverse fonti audio il livello dei suoni è diverso. È molto fastidioso impostare il livello del suono su quasi tutti i contenuti multimediali. A volte, quando in precedenza avevi qualcosa di silenzioso, dovevi regolarlo più forte e dopo qualche tempo vuoi riprodurre un altro media - bang! si rompe inaspettatamente le cuffie, il suono è così forte!

Quindi, c'è qualche plugin / funzione che può regolare automaticamente il livello del suono su ogni contenuto multimediale?


Risposte:


39

Regolazione del livello audio con un plug-in LADSPA

Per ottenere un livello di uscita audio abbastanza normalizzato indipendentemente dal livello di ingresso, è possibile utilizzare un plug-in LADSPA per filtrare l'uscita audio tramite PulseAudio.

Come minimo, abbiamo bisogno di un plugin del compressore come dysonCompressor dei plugin swh Installa plugin swh che deve essere installato se non ancora presente.

Dopo aver scoperto il nome del nostro sink predefinito con

pacmd list-sinks

e il nome esatto del plugin così come è archiviato /usr/lib/ladspa/(con il mio sistema qui dyson_compress_1403) possiamo emettere il seguente comando

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

Sostituisci <alsa_output>con il nome esatto del sink di output (nel mio sistema questo era alsa_output.pci-0000_00_14.2.analog-stereo).

L'uscita compressa può ora essere ascoltata sul sink di uscita appena creato ladspa_sinkaccessibile dal menu Impostazioni audio .

inserisci qui la descrizione dell'immagine

Le impostazioni di controllo per il plug-in del compressore sono le seguenti: limite di picco, tempo di rilascio, rapporto veloce, rapporto . Consultare la documentazione del plug-in per maggiori dettagli, valori predefiniti e valori massimi di resp per questi controlli.

Per evitare il clipping della riproduzione, possiamo anche combinare questo plugin con un limitatore dopo la compressione. Possiamo usare il fast_lookahead_limiterper questo con il master sink che ora è il nostro lasdpa_sink appena creato dall'alto:

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

Fonte: le impostazioni di cui sopra sono state adattate a pulseaudio dal blog di brien sugli abiti sbagliati


molto bello! selezionando la voce di output sopra possiamo prontamente sentire la differenza! a proposito, cmd per rimuoverli solo per i test pacmd unload-module module-ladspa-sinke per selezionare il lavandino normalizzatopacmd set-default-sink ladspa_normalized
Aquarius Power

Sto riscontrando un problema tecnico, il volume diventa improvvisamente troppo basso, come se fosse stato modificato per evitare il volume, e quindi devo alzare il volume di un passo per sentire di cosa parla il ppl, ma poi diventa un po 'rumoroso .. Mi chiedo se potessimo avere una sorta di "equalizzatore normalizzatore", in cui tutte le frequenze sono gestite dinamicamente per farci ascoltare musica, effetti sonori e discorsi delle persone tutti correttamente normalizzati e mai molto rumorosi. Qualche suggerimento / idea?
Aquarius Power,

1
@AquariusPower Immagino sia perché il plug-in cerca di indovinare in anticipo quale potrebbe essere il volume ... questo sembra essere codificato per 5 ms. Puoi provare con un altro limitatore, ad esempio dal set TAP: tap-plugins.sourceforge.net/ladspa/limiter.html con una latenza di 12,5 ms o un altro compressore (ad esempio MLT mltframework.org/bin/view/MLT/FilterLadspa-1072 ) ... non ci ho provato comunque.
Takkat,

mmm ... devo aggiungere che, il problema che ho riscontrato sembra essersi verificato solo su un singolo video di YouTube che per fortuna stavo giocando subito dopo aver applicato ladspa; funziona alla grande per tutto il resto, compresi i giochi! grazie anche a questi altri consigli, li controllerò!
Aquarius Power il

1
Modificare il controlparametro per riflettere control=-12,1,0.5,0.99usando -12 invece di 0. Ciò significa che verrà compresso (attenuato) solo il suono al di sopra di -12 dB, che in genere include qualcosa di più forte di voci / conversazione. Apporta questa modifica se scopri che, quando guardi film (ad esempio RED 2 su NetFlix), la voce è ancora troppo silenziosa rispetto alle esplosioni.
Jonathan Neufeld,

15

La soluzione di Takkat è buona, ma ecco una variante più semplice e permanente.

Ci sono solo due passaggi:

  1. apt-get install swh-plugins
  2. Taglia e incolla quanto segue in un file chiamato ~ / .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
    

Al successivo accesso (o esecuzione pulseaudio -k), la normalizzazione verrà attivata automaticamente per impostazione predefinita.


Qual è l'effetto dell'omissione del parametro "master"? Cosa si configura come master del sink in quel caso?
Nicolay Doytchev,

Ciao Nicolay: La mia lettura del codice sorgente indica che una stringa NULL è uguale a "@ DEFAULT_SINK @". (Vedi anche la riga 216, o giù di lì, di namereg.c). Ma perché me lo chiedi? Se ci sono problemi con la mia soluzione, vorrei risolverli.
hackerb9,

Ciao, ho iniziato a utilizzare la soluzione in questa risposta per essere in grado di passare da altoparlanti a cuffie senza scollegarli e nel pannello di controllo audio ottengo solo le uscite filtrate per gli altoparlanti. Qualche idea su come farlo funzionare anche per l'uscita delle cuffie?
user1738984

Non sono sicuro, ma forse è necessario eseguire due filtri, uno per ogni output. Oppure, forse la normalizzazione deve avvenire dopo aver suddiviso cuffie / altoparlanti in uscite separate.
hackerb9

In realtà, mi sbagliavo, mi dispiace per quello: quello che succede è che se seleziono l'uscita filtrata, ho un suono che arriva sia dalle cuffie che dagli altoparlanti, cosa che non voglio. Non ho capito come separarlo
user1738984

3

La normalizzazione del volume è presente in SMPlayer. Vai al software center e scarica questo fantastico lettore, quindi abilita la normalizzazione del volume con le opzioni audio :)


1

In precedenza avevo anche problemi di normalizzazione dell'audio durante la riproduzione di film sul mio lettore multimediale VLC, ma poche ricerche su Internet sono stato in grado di trovare una soluzione perfetta per questo e l'ho condiviso di seguito in modo da poterne beneficiare anche ...

Correzione VLC di normalizzazione audio / Correzione VLC audio fuori sincronizzazione


2
Benvenuti in Ask Ubuntu! Sebbene ciò possa teoricamente rispondere alla domanda, sarebbe preferibile includere qui le parti essenziali della risposta e fornire il collegamento come riferimento.
Kevin Bowen,

0

Insieme a un'alternativa, ho alcuni commenti alle soluzioni sopra che suggeriscono di usare il disoncompressore.

Dal manuale:

 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'autore del pacchetto non sa cosa controllano gli ultimi due valori. Quindi, come potreste dire tutti cosa dovreste inserire come ultimi due valori?

Il plugin stesso suggerisce 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

Suggerirei anche di provare uno degli altri compressori, che sembrano meglio documentati, come 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

Questo compressore alternativo mi suona meglio, ma i parametri di controllo elencati nella risposta non sembrano avere alcun effetto. Il livello di soglia è impostato su 0 (non comprime mai) e il rapporto è impostato su 1 (anche se compresso, utilizzerebbe 1: 1, che non modifica il segnale). Invece potresti usare qualcosa come control = 0,101.125.401, -22,10,3,25,0, in modo che tutto ciò che superi -22dB venga compresso 1:10. Si tratta di valori intenzionalmente alquanto estremi in modo che si possa sentire l'effetto del filtro e quindi perfezionare i valori.
Zoltan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.