Secara otomatis menyesuaikan volume berdasarkan konten?

51

Dalam sumber audio yang berbeda tingkat suara berbeda. Sangat menjengkelkan mengatur tingkat suara di hampir setiap konten media. Terkadang, ketika sebelumnya Anda memiliki sesuatu yang sunyi, Anda harus menyesuaikannya lebih keras dan setelah beberapa waktu Anda ingin memutar media lain - bang! tiba-tiba merusak headphone Anda, suaranya sangat keras!

Jadi, apakah ada beberapa plugin / fitur yang dapat secara otomatis menyesuaikan tingkat suara pada setiap konten media?

megas
sumber

Jawaban:

39

Menyesuaikan level suara dengan plugin LADSPA

Untuk mendapatkan tingkat output suara yang cukup normal terlepas dari level input, kami dapat menggunakan LADSPA-plugin untuk menyaring output suara melalui PulseAudio.

Minimal, kita membutuhkan plugin kompresor seperti dysonCompressor dari swh-plugins Instal swh-plugins yang perlu diinstal jika belum ada.

Setelah mengetahui nama bak cuci default kami dengan

pacmd list-sinks

dan nama persis dari plugin yang disimpan /usr/lib/ladspa/(dengan sistem saya di sini dyson_compress_1403) kita dapat mengeluarkan perintah berikut

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

Ganti <alsa_output>dengan nama persis output sink (di sistem saya ini alsa_output.pci-0000_00_14.2.analog-stereo).

Output terkompresi sekarang dapat didengar di wastafel keluaran yang baru dibuat ladspa_sinkdapat diakses dari menu Pengaturan Suara .

masukkan deskripsi gambar di sini

Pengaturan kontrol untuk plugin kompresor adalah sebagai berikut: batas puncak, waktu rilis, rasio cepat, rasio . Lihat dalam dokumentasi plugin untuk detail lebih lanjut, default, dan nilai minimal resp minimum untuk kontrol ini.

Untuk menghindari kliping pemutaran kami juga dapat menggabungkan plugin ini dengan limiter setelah kompresi. Kita dapat menggunakan fast_lookahead_limiteruntuk ini dengan master sink sekarang lasdpa_sink yang baru kita buat dari atas:

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

Sumber: pengaturan di atas disesuaikan dengan pulseaudio dari blog brien di miscfits

Takkat
sumber
sangat keren! dengan memilih entri keluaran di atas kita dapat segera mendengar perbedaannya! btw, cmd untuk menghapusnya hanya untuk pengujian pacmd unload-module module-ladspa-sink, dan untuk memilih wastafel yang dinormalisasipacmd set-default-sink ladspa_normalized
Aquarius Power
Saya mengalami kesalahan, volume tiba-tiba menjadi terlalu sunyi, seperti itu telah dimodifikasi untuk mencegah kenyaringan, dan kemudian saya harus menaikkan volume satu langkah untuk mendengar apa yang berbicara ppl, tetapi kemudian menjadi agak keras .. Saya ingin tahu jika kita dapat memiliki semacam "equaliser normalizer", di mana semua frekuensi dikelola secara dinamis agar kita dapat mendengarkan musik, efek suara, dan ucapan orang dinormalisasi dengan baik dan tidak pernah sangat keras. Ada tip / ide?
Aquarius Power
1
@AquariusPower Saya kira itu karena plugin mencoba menebak terlebih dahulu berapa volume yang mungkin ... ini tampaknya sulit dikodekan selama 5 ms. Anda dapat mencoba dengan pembatas lain misalnya dari set TAP: tap-plugins.sourceforge.net/ladspa/limiter.html yang memiliki latensi 12,5 ms atau kompresor lain (mis. MLT mltframework.org/bin/view/MLT/FilterLadspa-1072 ) ... belum mencobanya.
Takkat
mmm ... saya harus menambahkan itu, masalah yang saya alami tampaknya hanya terjadi pada satu video youtube saja yang kebetulan saya mainkan tepat setelah menerapkan ladspa; ini bekerja sangat baik untuk yang lainnya, termasuk game! thx pada tips-tips lain ini juga, saya akan memeriksanya!
Aquarius Power
1
Ubah controlparameter untuk mencerminkan control=-12,1,0.5,0.99menggunakan -12 bukan 0. Ini berarti bahwa hanya suara di atas -12 dB akan dikompresi (dilunakkan), yang biasanya mencakup apa saja yang lebih keras daripada suara / percakapan. Buat perubahan ini jika Anda menemukan itu, saat menonton film (misalnya RED 2 di NetFlix), vokal masih terlalu sepi dibandingkan dengan ledakan.
Jonathan Neufeld
15

Solusi Takkat baik, tapi inilah variasi yang lebih sederhana dan permanen.

Hanya ada dua langkah:

  1. apt-get install swh-plugins
  2. Potong dan rekatkan yang berikut ke dalam file bernama ~ / .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
    

Lain kali Anda masuk (atau menjalankan pulseaudio -k), Anda akan secara otomatis mengaktifkan normalisasi.

hackerb9
sumber
Apa efek dari menghilangkan parameter "master"? Apa yang dikonfigurasi sebagai master wastafel dalam kasus itu?
Nicolay Doytchev
Hai Nicolay: Pembacaan saya terhadap kode sumber menunjukkan bahwa string NULL sama dengan "@ DEFAULT_SINK @". (Lihat juga baris 216, atau lebih, dari namereg.c). Tetapi mengapa Anda bertanya? Jika ada masalah dengan solusi saya, saya ingin memperbaikinya.
hackerb9
Hai, saya mulai menggunakan solusi dalam jawaban ini untuk dapat beralih di antara speaker dan headphone tanpa mencabutnya, dan di panel kontrol Suara, saya hanya mendapatkan output yang disaring untuk speaker. Adakah ide tentang cara membuatnya bekerja untuk output headphone juga?
user1738984
Saya tidak yakin, tapi mungkin Anda perlu menjalankan dua filter, satu untuk setiap output. Atau, mungkin normalisasi perlu terjadi setelah memisahkan headphone / speaker menjadi output terpisah.
hackerb9
Sebenarnya, saya salah, maaf soal itu: apa yang terjadi adalah jika saya memilih output yang difilter, saya memiliki suara yang datang melalui headphone dan speaker, yang tidak saya inginkan. Saya belum menemukan cara untuk memisahkannya
user1738984
3

Normalisasi volume hadir di SMPlayer. Pusat perangkat lunak Goto dan unduh pemutar yang luar biasa ini, lalu aktifkan normalisasi volume di bawah opsi audio :)

aishu
sumber
1

Sebelumnya saya juga mengalami masalah normalisasi audio saat memutar film pada VLC media player saya tetapi beberapa pencarian melalui Internet saya dapat menemukan solusi yang sempurna untuk ini dan saya telah membagikannya di bawah ini sehingga Anda juga dapat memperoleh manfaat dari itu ....

Audio Normalisasi VLC Fix / Audio Out of Sync VLC Fix

Pankaj Kumar
sumber
2
Selamat Datang di Tanya Ubuntu! Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Kevin Bowen
0

Bersamaan dengan alternatif, saya punya beberapa komentar untuk solusi di atas yang menyarankan menggunakan disoncompressor.

Dari 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

Penulis paket tidak tahu apa yang dikendalikan oleh dua nilai terakhir. Jadi bagaimana Anda semua bisa mengatakan apa yang harus Anda input sebagai dua nilai terakhir?

Plugin itu sendiri menyarankan kontrol = 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

Saya bahkan menyarankan agar Anda mencoba salah satu kompresor lain, yang sepertinya lebih baik didokumentasikan, seperti 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
sumber
Kompresor alternatif ini kedengarannya lebih baik bagi saya, tetapi parameter kontrol yang tercantum dalam jawaban tampaknya tidak berpengaruh. Level ambang diatur ke 0 (tidak pernah kompres) dan rasio diatur 1 (bahkan jika dikompresi, itu akan menggunakan 1: 1, yang tidak mengubah sinyal). Anda bisa menggunakan sesuatu seperti kontrol = 0,101.125.401, -22,10,3.25,0 sebagai gantinya, sehingga apa pun di atas -22dB dikompresi 1:10. Ini adalah nilai yang sengaja agak ekstrem sehingga orang dapat mendengar efek filter dan kemudian dapat menyetel nilai-nilainya.
Zoltan