ปรับระดับเสียงโดยอัตโนมัติตามเนื้อหาหรือไม่


51

ในแหล่งเสียงที่แตกต่างกันระดับของเสียงจะแตกต่างกัน มันน่ารำคาญมาก ๆ ที่จะตั้งระดับเสียงในเนื้อหาสื่อเกือบทุกชนิด บางครั้งเมื่อก่อนหน้านี้คุณมีบางสิ่งบางอย่างที่เงียบสงบคุณต้องปรับมันให้ดังขึ้นและหลังจากเวลาที่คุณต้องการเล่นสื่ออื่น - ปัง! มันทำลายหูฟังของคุณอย่างกะทันหันเสียงดังมาก!

ดังนั้นมีปลั๊กอิน / คุณสมบัติที่สามารถปรับระดับเสียงในเนื้อหาสื่อทุกอย่างโดยอัตโนมัติหรือไม่?


คำตอบ:


38

การปรับระดับเสียงด้วยปลั๊กอิน LADSPA

เพื่อให้ได้ระดับเสียงที่ออกมาค่อนข้างปกติโดยไม่ขึ้นอยู่กับระดับสัญญาณเข้าเราอาจใช้ LADSPA-plugin เพื่อกรองสัญญาณเสียงผ่าน PulseAudio

เราจำเป็นต้องมีปลั๊กอินของคอมเพรสเซอร์เช่นdysonCompressorจากswh-plugins ติดตั้งปลั๊กอิน 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)

ตอนนี้สามารถได้ยินเสียงเอาต์พุตที่ถูกบีบอัดใน sink ที่สร้างขึ้นใหม่ที่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และเพื่อเลือก sink ปกติpacmd set-default-sink ladspa_normalized
Aquarius Power

ฉันกำลังประสบกับความผิดพลาดเสียงก็ดังเกินไปเพราะมันได้รับการแก้ไขเพื่อป้องกันเสียงดังแล้วฉันต้องเพิ่มระดับเสียงหนึ่งขั้นเพื่อฟังว่า ppl กำลังพูดอะไร แต่แล้วมันก็ดังขึ้นเล็กน้อย .. ฉันสงสัย หากเรามี "อีควอไลเซอร์นอร์มอลไลเซอร์" บางชนิดซึ่งความถี่ทั้งหมดได้รับการจัดการแบบไดนามิกเพื่อให้เราได้ยินเพลงเอฟเฟกต์เสียงและการพูดของผู้คนทั้งหมดถูกทำให้เป็นมาตรฐานและไม่ดังมาก เคล็ดลับ / ความคิดใด ๆ
กุมภ์อำนาจ

1
@ AquariusPower ฉันเดาว่ามันเป็นเพราะปลั๊กอินพยายามที่จะคาดเดาล่วงหน้าว่าไดรฟ์ข้อมูลที่อาจจะเป็น ... นี้ดูเหมือนจะเป็นรหัสยากสำหรับ 5 มิลลิวินาที คุณสามารถลองกับตัว จำกัด อื่นเช่นจากชุด TAP: tap-plugins.sourceforge.net/ladspa/limiter.htmlที่มีเวลาแฝง 12.5 ms หรือตัวบีบอัดอื่น (เช่น MLT mltframework.org/bin/view/MLT/FilterLadspa-1072 ) ... ยังไม่ได้ลอง
Takkat

mmm ... ฉันต้องเพิ่มสิ่งนั้นปัญหาที่ฉันพบดูเหมือนจะเกิดขึ้นเฉพาะในวิดีโอ youtube เดียวที่ฉันโชคดีที่ฉันเล่นหลังจากสมัคร ladspa; นี่ใช้งานได้ดีสำหรับทุกอย่างรวมถึงเกม! ขอบคุณในเคล็ดลับอื่น ๆ เหล่านี้ฉันจะตรวจสอบพวกเขา!
อำนาจกุมภ์

1
เปลี่ยนcontrolพารามิเตอร์เพื่อสะท้อนการcontrol=-12,1,0.5,0.99ใช้ -12 แทน 0 ซึ่งหมายความว่าเฉพาะเสียงเหนือ -12 เดซิเบลเท่านั้นที่จะถูกบีบอัด (อ่อนลง) ซึ่งโดยทั่วไปจะมีอะไรดังกว่าเสียง / การสนทนา ทำการเปลี่ยนแปลงนี้หากคุณพบว่าเมื่อดูภาพยนตร์ (เช่น RED 2 บน NetFlix) เสียงร้องยังคงเงียบเกินไปเมื่อเทียบกับการระเบิด
Jonathan Neufeld

15

ทางออกของ Takkat นั้นดี แต่นี่เป็นรูปแบบที่ง่ายและถาวร

มีสองขั้นตอนเท่านั้น:

  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) คุณจะเปิดใช้งานการทำให้เป็นมาตรฐานโดยอัตโนมัติตามค่าเริ่มต้น


ผลของการข้ามพารามิเตอร์ "master" คืออะไร มีการกำหนดค่าอะไรเป็นมาสเตอร์ของอ่างล้างจานในกรณีนั้น
Nicolay Doytchev

สวัสดี Nicolay: การอ่านซอร์สโค้ดของฉันระบุว่าสตริง NULL เหมือนกับ "@ DEFAULT_SINK @" (ดูที่บรรทัด 216 หรือมากกว่านั้นของ namereg.c) แต่ทำไมคุณถาม หากมีปัญหาใด ๆ เกี่ยวกับวิธีแก้ไขปัญหาของฉันฉันต้องการแก้ไขปัญหาเหล่านั้น
hackerb9

สวัสดีฉันเริ่มใช้โซลูชันในคำตอบนี้เพื่อให้สามารถสลับระหว่างลำโพงและหูฟังโดยไม่ต้องถอดปลั๊กและในแผงควบคุมเสียงฉันได้รับเอาต์พุตที่กรองสำหรับลำโพงเท่านั้น มีความคิดเกี่ยวกับวิธีทำให้มันใช้งานได้กับหูฟังเอาท์พุตด้วยหรือไม่?
user1738984

ฉันไม่แน่ใจ แต่บางทีคุณอาจต้องเรียกใช้ตัวกรองสองตัวหนึ่งตัวสำหรับแต่ละเอาต์พุต หรือบางทีการปรับสภาพปกติต้องเกิดขึ้นหลังจากแยกหูฟัง / ลำโพงออกเป็นเอาต์พุตแยกกัน
hackerb9

ที่จริงฉันผิดขอโทษด้วย: สิ่งที่เกิดขึ้นคือถ้าฉันเลือกเอาต์พุตที่กรองแล้วฉันจะมีเสียงผ่านหูฟังและลำโพงที่ฉันไม่ต้องการ ฉันไม่ได้คิดวิธีแยกมัน
user1738984

3

การทำให้เป็นมาตรฐานของไดรฟ์ข้อมูลมีอยู่ใน SMPlayer ไปที่ศูนย์ซอฟต์แวร์และดาวน์โหลดเครื่องเล่นที่ยอดเยี่ยมนี้จากนั้นเปิดใช้งานการปรับความดังของเสียงภายใต้ตัวเลือกเสียง :)


1

ก่อนหน้านี้ฉันยังมีปัญหาเกี่ยวกับการทำให้ปกติทางเสียงในขณะที่เล่นภาพยนตร์บนเครื่องเล่นสื่อ VLC ของฉัน แต่มีการค้นหาทางอินเทอร์เน็ตเพียงไม่กี่ครั้งฉันก็สามารถหาทางออกที่สมบูรณ์แบบสำหรับเรื่องนี้และฉันได้แบ่งปันมันด้านล่าง

การปรับสภาพเสียงปกติ VLC Fix / Audio Out of Sync VLC Fix


2
ยินดีต้อนรับสู่ถาม Ubuntu! ในขณะที่สิ่งนี้อาจตอบคำถามในทางทฤษฎีมันก็ควรที่จะรวมส่วนสำคัญของคำตอบที่นี่และให้ลิงค์สำหรับการอ้างอิง
Kevin Bowen

0

พร้อมกับทางเลือกอื่นฉันมีความคิดเห็นเกี่ยวกับวิธีแก้ไขปัญหาข้างต้นที่แนะนำให้ใช้ dysoncompressor

จากคู่มือ:

 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 ซึ่งไม่เปลี่ยนสัญญาณ) คุณสามารถใช้บางสิ่งบางอย่างเช่นการควบคุม = 0,101.125,401, -22,10,3.25,0 แทนดังนั้นสิ่งที่เหนือ -22dB ได้รับการบีบอัด 1:10 ค่าเหล่านี้เป็นค่าที่ค่อนข้างมากโดยเจตนาเพื่อให้สามารถได้ยินผลกระทบของตัวกรองและจากนั้นสามารถปรับค่าได้
Zoltan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.