¿Ajustar automáticamente el volumen según el contenido?

51

En diferentes fuentes de audio, el nivel de los sonidos es diferente. Es muy molesto establecer el nivel de sonido en casi todos los contenidos multimedia. A veces, cuando anteriormente tenías algo silencioso, tenías que ajustarlo más fuerte y después de un tiempo quieres reproducir otro medio: ¡explosión! inesperadamente rompe tus auriculares, ¡el sonido es muy fuerte!

Entonces, ¿hay algún complemento / función que pueda ajustar automáticamente el nivel de sonido en cada contenido multimedia?

megas
fuente

Respuestas:

39

Ajuste del nivel de sonido con un complemento LADSPA

Para obtener un nivel de salida de sonido bastante normalizado independiente del nivel de entrada, podemos usar un complemento LADSPA para filtrar la salida de sonido a través de PulseAudio.

Como mínimo, necesitamos un complemento de compresor como dysonCompressor de los complementos swh Instalar complementos swh que deben instalarse si aún no están presentes.

Después de haber descubierto el nombre de nuestro sumidero predeterminado con

pacmd list-sinks

y el nombre exacto del complemento tal como está almacenado /usr/lib/ladspa/(con mi sistema aquí dyson_compress_1403) podemos emitir el siguiente 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

Reemplace <alsa_output>con el nombre exacto del sumidero de salida (en mi sistema esto era alsa_output.pci-0000_00_14.2.analog-stereo).

La salida comprimida ahora se puede escuchar en el sumidero de salida recién creado ladspa_sinkaccesible desde el menú Configuración de sonido .

ingrese la descripción de la imagen aquí

Los ajustes de control para el complemento del compresor son los siguientes: límite de pico, tiempo de liberación, relación rápida, relación . Consulte la documentación del complemento para obtener más detalles, valores predeterminados y valores máximos mínimos de respiración para estos controles.

Para evitar el recorte de la reproducción, también podemos combinar este complemento con un limitador después de la compresión. Podemos usar el fast_lookahead_limiterpara esto con el sumidero maestro que ahora es nuestro lasdpa_sink recién creado desde arriba:

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

Fuente: la configuración anterior se adaptó a pulseaudio del blog de brien sobre miscfits

Takkat
fuente
¡muy genial! Al seleccionar la entrada de salida arriba, ¡podemos escuchar la diferencia rápidamente! por cierto, cmd para eliminarlos solo para pruebas pacmd unload-module module-ladspa-sink, y para seleccionar el sumidero normalizadopacmd set-default-sink ladspa_normalized
Aquarius Power
Estoy experimentando un problema técnico, el volumen de repente se vuelve demasiado silencioso, como si hubiera sido modificado para evitar el volumen, y luego tengo que subir el volumen un paso para escuchar lo que están hablando las personas, pero luego se vuelve un poco alto ... Me pregunto si pudiéramos tener algún tipo de "ecualizador de ecualizador", donde todas las frecuencias se manejan dinámicamente para permitirnos escuchar música, efectos de sonido y habla de la gente, todos correctamente normalizados y nunca muy fuertes. ¿Algún consejo / idea?
Acuario Power
1
@AquariusPower Supongo que se debe a que el complemento intenta adivinar de antemano cuál podría ser el volumen ... esto parece estar codificado durante 5 ms. Puede probar con otro limitador, por ejemplo, del conjunto TAP: tap-plugins.sourceforge.net/ladspa/limiter.html que tiene una latencia de 12.5 ms u otro compresor (por ejemplo, MLT mltframework.org/bin/view/MLT/FilterLadspa-1072 ) ... no lo he intentado sin embargo.
Takkat
mmm ... Debo agregar que, el problema que experimenté parece haber sucedido solo en un solo video de youtube que por suerte estaba jugando justo después de aplicar ladspa; ¡Esto funciona muy bien para todo lo demás, incluidos los juegos! Gracias a estos otros consejos también, ¡los comprobaré!
Acuario Power
1
Cambie el controlparámetro para reflejar el control=-12,1,0.5,0.99uso de -12 en lugar de 0. Esto significa que solo se comprimirá (suavizará) el sonido por encima de -12 dB, que generalmente incluye algo más fuerte que las voces / conversación. Realice este cambio si está descubriendo que, cuando mira películas (por ejemplo, RED 2 en NetFlix), las voces siguen siendo demasiado silenciosas en comparación con las explosiones.
Jonathan Neufeld
15

La solución de Takkat es buena, pero aquí hay una variación que es más simple y permanente.

Solo hay dos pasos:

  1. apt-get install swh-plugins
  2. Corte y pegue lo siguiente en un archivo llamado ~ / .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 próxima vez que inicie sesión (o ejecute pulseaudio -k), automáticamente activará la normalización de forma predeterminada.

hackerb9
fuente
¿Cuál es el efecto de omitir el parámetro "maestro"? ¿Qué está configurado como maestro del fregadero en ese caso?
Nicolay Doytchev
Hola Nicolay: Mi lectura del código fuente indica que una cadena NULL es igual a "@ DEFAULT_SINK @". (Véase también la línea 216, más o menos, de namereg.c). Pero porque preguntas? Si hay algún problema con mi solución, me gustaría solucionarlo.
hackerb9
Hola, comencé a usar la solución en esta respuesta para poder cambiar entre altavoces y auriculares sin desconectarlos, y en el panel de control de sonido, solo obtengo las salidas filtradas para los altavoces. ¿Alguna idea sobre cómo hacer que funcione también para la salida de auriculares?
user1738984
No estoy seguro, pero quizás necesite ejecutar dos filtros, uno para cada salida. O tal vez la normalización debe ocurrir después de dividir los auriculares / altavoces en salidas separadas.
hackerb9
En realidad, me equivoqué, perdón por eso: lo que sucede es que si selecciono la salida filtrada, tengo sonido que sale tanto de los auriculares como de los altavoces, lo que no quiero. No he descubierto cómo separarlo
user1738984
3

La normalización de volumen está presente en SMPlayer. Vaya al centro de software y descargue este reproductor increíble, luego habilite la normalización del volumen en las opciones de audio :)

aishu
fuente
1

Anteriormente también tenía problemas de normalización de audio mientras reproducía películas en mi reproductor multimedia VLC, pero pocas búsquedas en Internet pude encontrar una solución perfecta para esto y la he compartido a continuación para que también pueda beneficiarse de ella ...

Normalización de audio VLC Fix / Audio Out of Sync VLC Fix

Pankaj Kumar
fuente
2
Bienvenido a Ask Ubuntu! Si bien esto puede responder teóricamente la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
Kevin Bowen el
0

Junto con una alternativa, tengo algunos comentarios a las soluciones anteriores que sugieren usar el compresor dyson.

Del manual:

 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

El autor del paquete no sabe qué controlan los dos últimos valores. Entonces, ¿cómo podrían decir lo que deberían ingresar como los dos últimos valores?

El complemento en sí sugiere 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

Incluso te sugiero que pruebes uno de los otros compresores, que parecen estar mejor documentados, como 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
fuente
Este compresor alternativo me suena mejor, pero los parámetros de control enumerados en la respuesta no parecen tener ningún efecto. El nivel de umbral se establece en 0 (nunca se comprime) y la relación se establece en 1 (incluso si se comprime, usaría 1: 1, que no cambia la señal). En su lugar, podría usar algo como control = 0,101.125,401, -22,10,3.25,0, para que cualquier cosa por encima de -22dB se comprima 1:10. Estos son valores intencionalmente algo extremos para que uno pueda escuchar el efecto del filtro y luego pueda ajustar los valores.
Zoltan el