คำสั่งเทอร์มินัลเพื่อตั้งค่าระดับเสียงหรือไม่


96

ฉันมีการ์ดเสียงภายนอกซึ่งส่วนใหญ่ทำงานได้ดียกเว้นเมื่อเสียบครั้งแรกหรือเมื่อเปิดแล็ปท็อประดับเสียงจะถูกตั้งค่าเป็น 100% นั่นคือระดับเสียงของระบบโดยรวมดังที่แสดงในตัวบ่งชี้เสียง

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

ฉันแหย่ไปรอบ ๆ ใน gsettings และ dbus แต่ไม่พบสิ่งใดที่จะให้ฉันตั้งค่าระดับเสียงของระบบเช่นนั้น ฉันรู้เกี่ยวกับ alsamixer แต่นั่นไม่ใช่วิธีการแก้ปัญหาที่ฉันกำลังมองหาเนื่องจากนั่นไม่อนุญาตให้ฉันเปลี่ยนระดับเสียงโดยใช้ตัวบ่งชี้เสียงหรือปุ่มมัลติมีเดียของแล็ปท็อปของฉัน


@rajagenupula เขาต้องการลดระดับเสียงเดียวกันกับ GUI ALSA จะไม่ทำงานในกรณีนี้เนื่องจากไม่ได้ควบคุมโดย ALSA แต่เป็น Pulseaudio i.stack.imgur.com/9C8Z2.png
Braiam

ดูได้ที่นี่: askubuntu.com/questions/44680/…
Takkat

คำตอบ:


120

บางส่วนของคำตอบนี้มาจากการตั้งค่าระดับเสียงไมโครโฟนที่ป้อนโดยใช้บรรทัดคำสั่ง? วางไว้ที่นี่เพื่อความสะดวกของคุณ

เพิ่มปริมาณได้ 5%

amixer -D pulse sset Master 5%+

ลดปริมาณลง 5%

amixer -D pulse sset Master 5%-

ตั้งค่าระดับเสียงเป็น 50%

amixer -D pulse sset Master 50%

หากคุณใช้ ALSA, amixer จะมีประโยชน์สำหรับการเขียนโปรแกรมสคริปต์ของคุณ

เมื่อวางamixer --helpคำสั่งในเทอร์มินัลคุณจะเห็นสิ่งนี้:

ป้อนคำอธิบายรูปภาพที่นี่

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

ป้อนคำอธิบายรูปภาพที่นี่

ในตัวอย่างของฉันด้วยการ์ดเสียงหลักของฉัน (ฉันมี 2: การ์ดเสียงฝังตัวและการ์ดเสียง PCI) ระดับอยู่ในระดับ 0 ถึง 100 ด้วยวิธีนี้ฉันสามารถเปลี่ยนระดับเสียงของอินพุต / เอาต์พุตที่ต้องการในการ์ดเสียงของฉันได้โดยการ เทอร์มินัลคำสั่งถัดไป:

amixer -c 0 set Front 50DB 
amixer -c 0 set Front 64DB 

ในคำสั่งแรกผลลัพธ์จะตั้งค่าเอาต์พุตแผงด้านหน้าเป็นระดับ 78% และชุดที่สองจะตั้งค่าเอาต์พุตแผงด้านหน้าเป็นระดับ 100%

เพื่อรวบรวมข้อมูลที่เกี่ยวข้องกับการควบคุมเครื่องผสมของคุณให้วางamixerคำสั่งโดยไม่มีพารามิเตอร์และคุณจะได้รับรายการ หรือระบุว่าอุปกรณ์เสียงใดที่คุณต้องการดูรายการตัวควบคุมด้วย amixer -c X(โดยที่ "X" คือหมายเลขของอุปกรณ์เสียงของคุณ)

BTW: โปรดจำไว้ว่าค่า DB นั้นคำนวณจากค่าลอการิทึมแบบเชิงเส้นและไม่เป็นแบบเชิงเส้น

จำไว้ว่าคำสั่งนี้อนุญาตให้คุณควบคุมพารามิเตอร์ของอุปกรณ์เสียงที่คุณใช้งานอยู่

โชคดี!


1
โปรดทราบว่าหากคุณไม่มีคอนโทรลเลอร์ "Master" หรือคอนโทรลเลอร์ "Master" ไม่สามารถเปลี่ยนปริมาณเอาต์พุตจริงได้คุณอาจทำงานผิดปกติกับการ์ดเสียง F6บนalsamixerและ--card nบนamixerการ์ดเสียงเปลี่ยนแปลง
Pooyan Khosravi

นั่นเป็นจุดที่ดี! @PooyanKhosravi แม้ว่าคุณจะสามารถเรียกใช้การ์ดเสียงที่คุณต้องการโดยอัตโนมัติจากบรรทัดคำสั่งโดยการวาง "-c X" (โดยที่ "X" เป็นหมายเลขของการ์ดเสียงของคุณ) คุณควรทราบข้อมูลที่คุณให้ไว้ ขอบคุณมาก!
Geppettvs D'Constanzo

pactl(ไม่เหมือนamixer) อนุญาตให้เพิ่มปริมาณได้มากกว่า 100% (ดูในpavucontrol) :-)
pevik

80

คุณสามารถทำได้โดยใช้ PulseAudio เอง (ฉันไม่แนะนำให้ใช้ ALSA เพราะคุณไม่สามารถใช้ GUI เพื่อเพิ่มระดับเสียงขึ้น / ลง)

ใช้pactl : คุณสามารถตั้งค่าระดับเสียงสำหรับอุปกรณ์เฉพาะดังต่อไปนี้:

pactl set-sink-volume 0 +10%

ทำให้ปริมาณเพิ่มขึ้น 10% ถ้าคุณต้องการมันลดลง 10%:

pactl set-sink-volume 0 -10%

หากคุณต้องการเสียงที่ 50%:

pactl set-sink-volume 0 50%

หากคุณต้องการเขย่าสถานที่ทั้งหมด:

pactl set-sink-volume 0 150%

คุณสามารถใช้เปอร์เซ็นหรือจำนวนเต็ม แต่จำนวนเต็มช้าและอาจไม่ใช่ของคุณ

pactl/ pacmd(ไม่เหมือนamixer) อนุญาตให้เพิ่มปริมาณได้มากกว่า 100% :-)


3
หากคุณกำลังใช้หูฟังให้ลองเพิ่มศูนย์เป็นหนึ่ง: pactl set-sink-volume 1 50%
Smile4ever

13
หากคุณต้องการที่จะแบ่งปันคำสั่งเดียวกันในครอบครัวที่แตกต่างกับอ่างล้างมือที่แตกต่างกันคุณสามารถใช้เป็นอ่างล้างจานแทนตัวเลข@DEFAULT_SINK@ 0คุณตั้งค่า sink เริ่มต้นของคุณด้วยpactl set-default-sink my-sink-name(ชื่อรายการด้วยpactl list short sinks)
pevik

3
ได้รับ: Failed to get sink information: No such entityวิธีการแก้ไขปัญหานี้? - แก้ไขฉันต้องใช้อ่างล้างมือนอกจาก0นี้ pactl list short sinksสามารถใช้หมายเลขแรกได้ คำสั่งนี้ใช้ได้ผลเช่น:pactl set-sink-volume $(pactl list short sinks | head -n1 | cut -f1) 50%
ideasman42

23

amixer set 'Master' 10%+- เพื่อเพิ่มเสียงสูงสุด 10%

amixer set 'Master' 10%-- เพื่อลดเสียงสูงสุด 10%

amixer set 'Master' 10% - รับ 10% ของเสียงสูงสุด

amixer set 'Master' 80% - รับ 80% ของเสียงสูงสุด

.. เป็นต้น

หากคุณต้องการตั้งระดับเสียงเป็นอื่นที่ไม่ใช่ 'Master' ให้ตรวจสอบรายการตาม:

amixer scontrols


คุณอาจต้องการตรวจสอบalsamixerและpacmd


6

คำตอบที่ล่าช้า แต่อาจมีประโยชน์สำหรับใครบางคน


คุณสามารถควบคุมระดับเสียงสำหรับsink ปัจจุบันโดยใช้คำสั่งต่อไปนี้

  • เพิ่มปริมาณ :pactl set-sink-volume @DEFAULT_SINK@ +1000

  • ปริมาณที่ต่ำกว่า :pactl set-sink-volume @DEFAULT_SINK@ -1000

  • ปิดเสียง :pactl set-sink-mute @DEFAULT_SINK@ toggle

คุณสามารถใช้ค่าต่อไปนี้เพื่อควบคุมระดับเสียง:

จำนวนเต็ม

  • ค่าเฉพาะ: <number>
  • เพิ่มขึ้น: +<number>
  • ลดลง: -<number>

ตัวอย่าง:

pactl set-sink-volume @DEFAULT_SINK@ 50000 จะตั้งค่าระดับเสียงประมาณ 76%

ตัวประกอบเชิงเส้น

  • ค่าเฉพาะ: <number>.<number>
  • เพิ่มขึ้น: +<number>.<number>
  • ลดลง: -<number>.<number>

ตัวอย่าง:

pactl set-sink-volume @DEFAULT_SINK@ 0.44\ จะตั้งค่าระดับเสียงประมาณ 76%

Percentaje

  • ค่าเฉพาะ: <number>%
  • เพิ่มขึ้น: +<number>%
  • ลดลง: -<number>%

ตัวอย่าง:

pactl set-sink-volume @DEFAULT_SINK@ 76% จะตั้งค่าระดับเสียงประมาณ 76%

ค่าเดซิเบล

คำเตือน: อย่าทดลองใช้ค่าเดซิเบลในขณะที่ใช้หูฟังเว้นแต่คุณจะรู้ว่ากำลังทำอะไรอยู่

  • ค่าเฉพาะ: <number>dB
  • เพิ่มขึ้น: +<number>dB
  • ลดลง: -<number>dB

ตัวอย่าง:

pactl set-sink-volume @DEFAULT_SINK@ 0.0dB จะตั้งค่าระดับเสียงเป็น 100%


แหล่งข้อมูลArch Wiki , pactl man page


+1 !! ทางออกเดียวที่ใช้ได้สำหรับฉันทันที
dboris
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.