Автоматично регулювати гучність на основі вмісту?


51

У різних джерелах звуку рівень звуку різний. Дуже прикро встановлювати рівень звуку майже на кожному медіа-контенті. Іноді, коли раніше у вас було щось тихе, вам довелося налаштувати це голосніше і через деякий час ви захочете відтворити інший носій - баг! це несподівано розбиває ваші навушники, звук такий гучний!

Отже, чи є якийсь плагін / функція, яка може автоматично регулювати рівень звуку на кожному медіа-контенті?


Відповіді:


39

Регулювання рівня звуку за допомогою плагіна LADSPA

Для отримання досить нормалізованого рівня виходу звуку, незалежного від рівня входу, ми можемо використовувати плагін LADSPA для фільтра звукового виходу через PulseAudio.

Як мінімум, нам потрібен плагін компресора, такий як dysonCompressor з swh-плагінів, Встановіть swh-плагіни який потрібно встановити, якщо його ще немає.

Дізнавшись назву нашої мийки за замовчуванням

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

Джерело: наведені вище параметри були адаптовані до pulseaudio з блогу Brien про помилки


дуже круто! вибравши вихідний запис вище, ми можемо швидко почути різницю! btw, cmd, щоб видалити їх лише для тестів pacmd unload-module module-ladspa-sinkта вибрати нормалізовану раковинуpacmd set-default-sink ladspa_normalized
Водолій Power

У мене виникають збої, гучність раптом стає занадто тихою, наче вона була модифікована для запобігання гучності, і тоді я повинен збільшити гучність на один крок, щоб почути, що говорять на ppl, але потім він стає трохи голоснішим. Цікаво якби ми могли мати якийсь "нормалізатор еквалайзера", де всі частоти динамічно вдається управляти, щоб ми могли слухати музику, звукові ефекти і мовлення людей, все нормально нормалізовано і ніколи не дуже голосно. Будь-яка порада / ідея?
Сила Водолія

1
@AquariusPower Я думаю, це тому, що плагін намагається заздалегідь відгадати, який може бути об'єм ... Це, здається, важко закодовано протягом 5 мс. Ви можете спробувати з іншим обмежувачем, наприклад, із набору TAP: tap-plugins.sourceforge.net/ladspa/limiter.html, який має затримку 12,5 мс або інший компресор (наприклад, MLT mltframework.org/bin/view/MLT/FilterLadspa-1072 ) ... але цього не намагалися.
Таккат

ммм ... Я мушу додати, що проблема, яку я зазнав, здається, трапилася лише на одному відео YouTube, яке, на щастя, я грав лише після нанесення ладспа; це чудово працює для всього іншого, включаючи ігри! THX на ці інші поради, я їх перевірю!
Сила Водолія

1
Змініть controlпараметр так, щоб він відображався, control=-12,1,0.5,0.99використовуючи -12 замість 0. Це означає, що тільки звук вище -12 дБ буде стискатися (пом'якшуватися), що, як правило, включає все голосніше, ніж голоси / розмова. Внесіть цю зміну, якщо виявите, що під час перегляду фільмів (наприклад, RED 2 на NetFlix), вокал все ще занадто тихий порівняно з вибухами.
Джонатан Нойфельд

15

Рішення Такката добре, але ось варіант, який простіший і постійніший.

Є лише два кроки:

  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 @". (Див. Також рядок 216, або так, namereg.c). Але чому ви питаєте? Якщо є якісь проблеми з моїм рішенням, я б хотів їх виправити.
hackerb9

Привіт, я почав використовувати рішення в цій відповіді, щоб мати можливість перемикатися між динаміками та навушниками, не відключаючи їх, і на панелі управління звуком я отримую лише відфільтровані виходи для колонок. Будь-яке уявлення про те, як змусити його працювати і для виходу навушників?
користувач1738984

Я не впевнений, але, можливо, вам потрібно запустити два фільтри, по одному на кожен вихід. Або, можливо, нормалізація повинна відбутися після розбиття навушників / динаміків на окремі виходи.
hackerb9

Насправді я помилявся, вибачте за це: що трапляється, що якщо я вибираю відфільтрований вихід, у мене звук проходить як через навушники, так і через колонки, чого я не хочу. Я не зрозумів, як це розділити
user1738984

3

Нормалізація обсягу присутня в SMPlayer. Перейдіть у центр програмного забезпечення та завантажте цей дивовижний програвач, а потім увімкніть нормалізацію гучності за допомогою параметрів аудіо :)


1

Раніше у мене також виникали проблеми з нормалізацією звуку під час відтворення фільмів на моєму медіаплеєрі VLC, але за допомогою кількох пошуків через Інтернет я змогла знайти ідеальне рішення для цього, і я поділилася ним нижче, щоб ви також могли отримати з цього користь ....

Нормалізація аудіо VLC Fix / Аудіо вимкнено синхронізацію VLC Fix


2
Ласкаво просимо до Ask Ubuntu! Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
Кевін Боуен

0

Поряд з альтернативою, у мене є деякі коментарі до вищезгаданих рішень, які пропонують використовувати дізокомпресор.

З посібника:

 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

Автор пакета не знає, що контролюють останні два значення. То як же ви могли сказати, що слід вводити як два останніх значення?

Сам плагін пропонує контроль = 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. Це навмисно дещо екстремальні значення, щоб можна було почути дію фільтра, а потім змогти фінітувати значення.
Золтан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.