ปัญหาที่ผู้ใช้ Ubuntu มักประสบหลังจากติดตั้ง Ubuntu หรืออัปเกรดเป็นเวอร์ชันใหม่คือปัญหาด้านเสียง หรือโดยเฉพาะอย่างยิ่ง ปัญหา "ไม่มีเสียง" สิ่งนี้สามารถเกิดขึ้นได้จากหลายสาเหตุ บางครั้งอาจเกี่ยวข้องกับการกำหนดค่าที่ไม่ถูกต้องในการตั้งค่าลำโพง หรือฮาร์ดแวร์ของคุณอาจไม่ได้รับการสนับสนุนอย่างดี
สำหรับคนส่วนใหญ่ มักจะเป็นปัญหาที่แก้ไขได้ง่าย เนื่องจากปัญหาส่วนใหญ่เกิดจากปัญหากับบริการที่ทำงานอยู่บนระบบ ในบทความนี้ เราจะพูดถึงวิธีแก้ไขง่ายๆ สองสามข้อที่คุณสามารถลองใช้ได้ คุณไม่จำเป็นต้องลองทั้งหมด เพียงแค่เริ่มต้นที่ด้านบนสุดของรายการและดำเนินการตามขั้นตอนของคุณ
ติดตั้งการควบคุมระดับเสียงสำหรับ PulseAudio
PulseAudio เป็นบริการเสียงเริ่มต้นสำหรับ Ubuntu รวมถึงบริการอื่นๆ อีกสองสามรายการ เป็นโอเพ่นซอร์สและโดยทั่วไปเชื่อถือได้ โดยทำงานร่วมกับไดรเวอร์ ALSA และ OSS เพื่อให้แน่ใจว่าสัญญาณเสียงที่ระบบสร้างขึ้นจะถูกส่งต่อไปยังลำโพงของคุณ
แต่ในขณะที่แอปพลิเคชันและสภาพแวดล้อมเดสก์ท็อปมาพร้อมกับตัวควบคุมระดับเสียงสำหรับ PulseAudio เอง แต่ก็ไม่ได้ละเอียดขนาดนั้นและไม่อนุญาตให้คุณควบคุมสตรีมการเล่นแต่ละรายการแยกกัน Pavucontrol ช่วยให้คุณควบคุมอุปกรณ์เสียงแต่ละเครื่องบนพีซีของคุณได้มากขึ้น ดังนั้นคุณจึงสามารถเล่นกับแถบเลื่อนเหล่านั้นได้ เพื่อให้แน่ใจว่าระดับเสียงของลำโพงหรือหูฟังตั้งค่าไว้ที่ที่ควรจะเป็น เป็นต้น
การติดตั้ง pavucontrol
ให้เปิด Terminal และป้อนคำสั่งต่อไปนี้:
pulseaudio --start sudo apt install pavucontrol
หลังจากนั้นให้เรียกใช้ pavucontrol
จากเทอร์มินัลหรือค้นหา "PulseAudio Volume Control" ในเมนูเปิดใช้สภาพแวดล้อมเดสก์ท็อปของคุณ ไปที่แท็บ "อุปกรณ์ส่งออก" และตรวจสอบให้แน่ใจว่าได้เลือกลำโพงเริ่มต้นของคุณแล้ว
ตรวจสอบการตั้งค่าลำโพงของคุณ
เมื่อประสบปัญหาด้านเสียงในเครื่อง Ubuntu ของคุณ ก่อนอื่นคุณต้องตรวจสอบหูฟังและลำโพงของคุณเพื่อหาปัญหาการเชื่อมต่อ อาจเป็นเพราะเสียบสายสัญญาณเสียงกับพอร์ตผิดหรือไม่ได้เชื่อมต่อเลย
หากคุณกำลังใช้อุปกรณ์บลูทูธ ให้ตรวจดูว่าจับคู่ถูกต้องหรือไม่ อย่าลืมดูตัวควบคุมระดับเสียงของอุปกรณ์ของคุณเพื่อให้แน่ใจว่าอยู่ในระดับที่ยอมรับได้ คุณควรตรวจสอบด้วยว่าคอมพิวเตอร์ของคุณไม่ได้ปิดเสียงเอาต์พุตและเลือกอุปกรณ์ส่งออกที่ถูกต้อง
ตรวจสอบมิกเซอร์ ALSA
ภายใต้ประทุน PulseAudio ใช้ ALSA ซึ่งเป็นโมดูลเคอร์เนลที่ควบคุมอุปกรณ์เสียงของคุณโดยตรง หากคุณต้องการการควบคุมที่ละเอียดยิ่งขึ้นสำหรับระดับเสียงระดับ ALSA ของคุณ ให้ทำตามขั้นตอนด้านล่าง:
- เปิดเทอร์มินัล
- พิมพ์
alsamixer
แล้วกดปุ่ม Enter กุญแจ. คุณจะเห็นผลลัพธ์ต่อไปนี้ในเทอร์มินัลของคุณ
- เลือกการ์ดเสียงที่ถูกต้องโดยกด F6 . สำหรับฉัน ค่าเริ่มต้นใช้งานได้ดี แต่อย่าลังเลที่จะลองใช้ตัวเลือกอื่นหากไม่ได้ผล
- ใช้ ลูกศรซ้าย และ ลูกศรขวา ปุ่มเพื่อเลือกตัวควบคุมระดับเสียง รายการที่เลือกในปัจจุบันจะแสดงเป็นสีแดงที่ด้านล่าง
- ใช้ ลูกศรขึ้น และ ลูกศรลง ปุ่มสำหรับเพิ่มและลดระดับเสียงสำหรับตัวควบคุมแต่ละส่วน
- เมื่อปิดเสียงตัวควบคุมมิกเซอร์ “MM” จะปรากฏใต้แถบระดับเสียง โปรดทราบว่าแถบสามารถเต็มได้ 100% แต่ยังคงปิดเสียงอยู่ ดังนั้นให้ตรวจสอบสิ่งนี้ คุณสามารถเปิดเสียงตัวควบคุมโดยกด m กุญแจ. สิ่งนี้จะเปลี่ยน “MM” เป็น “OO”
- ในการออกจาก alsamixer ให้กด Esc ที่สำคัญ
หมายเหตุ :เมื่อคุณปิดหรือเปิดเสียงตัวควบคุม pulseaudio อาจหยิบขึ้นมาและปิดเสียงและเปิดเสียงการควบคุมอื่นๆ ด้วย ตรวจสอบให้แน่ใจว่าได้เปิดเสียงการควบคุมที่เกี่ยวข้องและตัวควบคุมหลักก่อนที่จะออก
โหลด ALSA ใหม่
อีกสิ่งหนึ่งที่คุณสามารถลองได้หากปัญหาเสียงยังคงมีอยู่คือการโหลด ALSA ใหม่ ในการทำเช่นนั้น ใช้คำสั่งต่อไปนี้ในเทอร์มินัล:
sudo alsa force-reload
ผลลัพธ์ที่ได้จะเป็นดังภาพต่อไปนี้
เมื่อเสร็จแล้ว หากยังมีปัญหาในการทำให้เสียงใช้งานได้ ให้ลอง
pulseaudio -k && pulseaudio -D
คุณอาจมีปัญหาหลังจากโหลด ALSA ใหม่ หาก pulseaudio ไม่ได้ลงทะเบียนว่ามีการโหลดโมดูลใหม่
หากคุณยังไม่ได้รับเสียง ให้ลองใช้คำสั่ง ALSA แบบครั้งเดียวนี้โดยตรง:
alsactl restore
ติดตั้ง ALSA และ PulseAudio อีกครั้ง
หากวิธีการข้างต้นไม่สามารถแก้ไขปัญหาของคุณได้ ให้ลองติดตั้ง ALSA และ PulseAudio ใหม่ด้วยวิธีต่อไปนี้ เปิดเทอร์มินัลของคุณและป้อนคำสั่งต่อไปนี้:
sudo apt remove --purge alsa-base pulseaudio sudo apt install alsa-base pulseaudio
โหลด ALSA ใหม่อีกครั้งและรีบูตเครื่องคอมพิวเตอร์ของคุณ
การแก้ไขปัญหาขั้นสูง
ในการแก้ไขปัญหาเสียงของคุณอย่างถูกต้องหลังจากที่ทุกอย่างล้มเหลว เราต้องจัดการให้สกปรกขึ้นเล็กน้อยและเข้าสู่การแก้ไขปัญหาขั้นสูงเพิ่มเติม:
เอาต์พุตของคุณอาจทริกเกอร์ ALSA แต่ไม่ใช่ PulseAudio
ในท้ายที่สุด หาก PulseAudio ปิดเสียงเอาต์พุต ก็ไม่สำคัญว่า ALSA จะพูดอะไร เสียงที่ออกมาจากอุปกรณ์ของคุณจะได้รับการประมวลผลผ่าน ALSA แต่จะไม่ให้บริการ ผ่าน PulseAudio
เพื่อแก้ปัญหานี้ เราต้องบังคับให้ ALSA คุยกับ PulseAudio เมื่อระดับเสียงหลักเปลี่ยนไป เพื่อให้แน่ใจว่าเสียงหลังจะตามมา
amixer -D pulse sset Master toggle
อุปกรณ์ที่โวลุ่มสามารถโต้ตอบกับ ALSA ได้ด้วยเหตุผลบางอย่างเท่านั้นที่จะโต้ตอบกับ PulseAudio
คุณแน่ใจหรือว่าไม่ใช่แค่แอปพลิเคชันเดียว
แอปพลิเคชันที่ทำงานผิดปกติอาจทำให้เกิดปัญหามากกว่าที่คุณคิดในลักษณะที่จะทำให้คุณประหลาดใจ อาจเป็นแอปพลิเคชั่นที่คุณไม่ได้เปิด!
หากต้องการดูทุกอย่างโดยใช้ตัวควบคุมเสียง ให้พิมพ์:
pacmd list-sink-inputs
หากคุณต้องการผ่าตัดมากกว่านี้ พิมพ์:
pacmd list-sink-inputs | grep application.name
ในกรณีของฉัน อย่างในรูป Firefox เป็นสิ่งเดียวที่ฉันกำลังฟังอยู่ หากคุณใช้ grep
หากต้องการจำกัดเอาต์พุตในเทอร์มินัล ให้ใช้คำสั่งเดิมอีกครั้งและให้ความสนใจกับค่า “ปิดเสียง:”, “ดัชนี:” และ “ระดับเสียง:”
คุณอาจมีระดับเสียงในแอปพลิเคชันและยังสามารถปิดเสียงหรือเปิดเสียงเป็นศูนย์ได้!
หากต้องการแก้ไขแอปพลิเคชันที่ปิดเสียง ให้พิมพ์ (แทนที่ application_index
ด้วยหมายเลขดัชนีที่คุณพบใน “index:”):
pacmd set-sink-input-mute application_index false
หากต้องการแก้ไขแอปพลิเคชันที่มีระดับเสียงต่ำผิดปกติ ให้พิมพ์:
pacmd set-sink-input-volume application_index 0x10000
ไม่มีเสียงเมื่อเล่นต่อหลังจากพัก/พักเครื่อง
บางครั้ง PulseAudio ก็ไม่อยู่ในอารมณ์ที่จะตื่นขึ้นพร้อมกับส่วนที่เหลือของคอมพิวเตอร์ของคุณ ในกรณีนี้ ให้รัน
pasuspender /bin/true
นำเสียงของคุณกลับมาจากความตาย แต่อย่าตื่นเต้นเกินไป การดำเนินการนี้จะไม่รอดจากการรีบูตหรือระงับ/พักเครื่องอีกครั้ง ปฏิบัติตามคู่มือฉบับย่อนี้อย่างระมัดระวังเพื่อแก้ไขปัญหาอย่างถาวร:
- ในเทอร์มินัล พิมพ์
sudo touch /etc/systemd/system/[email protected]
เพื่อสร้างไฟล์ตัวจัดการบริการ systemd
- เปิดไฟล์เพื่อแก้ไข:
sudo nano /etc/systemd/system/pulseaudio-sleep-fix.service
วาง (Ctrl + กะ + วี สำหรับการวางเทอร์มินัล) สิ่งนี้ลงไป:
[Unit] Description=Fix PulseAudio after resume from suspend After=suspend.target [Service] User=%I Type=oneshot Environment="XDG_RUNTIME_DIR=/run/user/%U" ExecStart=/usr/bin/pasuspender /bin/true [Install] WantedBy=suspend.target
- กด Ctrl + X เพื่อออกและ Y ในข้อความแจ้งถามว่าคุณต้องการบันทึกบัฟเฟอร์ที่แก้ไขหรือไม่
- พิมพ์ข้อมูลต่อไปนี้เพื่อลงทะเบียนเป็นบริการ systemd
sudo systemctl enable pulseaudio-sleep-fix@your_username.service
อย่าลืมแทนที่ your_username ด้วยค่าที่เหมาะสม
คุณกำลังขี้ขลาดอยู่หรือเปล่า
หากคุณเรียกใช้แพ็คเกจ timidity ใน Ubuntu (ตรวจสอบโดยเรียกใช้ apt search timidity
และตรวจสอบหา [installed]
ที่ส่วนท้ายของรายการที่เหมาะสม) คุณอาจประสบปัญหาในการเรียกใช้ PulseAudio เนื่องจากวิธีจัดการกับการประมวลผลเสียงที่ขี้ขลาด
เพื่อให้เกิดความขี้ขลาดในการทำงานอย่างถูกต้อง ให้เริ่มต้นด้วยการเพิ่มลงในการเริ่มต้นอัตโนมัติ (บางครั้งเรียกว่าแอปพลิเคชันเริ่มต้นในสภาพแวดล้อมเดสก์ท็อปเช่น GNOME) และแก้ไขคำสั่งที่เรียกใช้แอปพลิเคชันเป็น:
timidity -iA -Os
ทำสิ่งต่อไปอีกเล็กน้อย พิมพ์ต่อไปนี้เพื่อเพิ่มรูทให้กับกลุ่มการเข้าถึงแบบพัลส์
sudo usermod -a -G pulse-access root
เมื่อคุณรีบูต เสียงของคุณควรทำงานได้ดี หากยังคงล้มเหลว วิธีเดียวที่ทำได้คือขจัดความขี้ขลาดออกจาก Ubuntu
ตอนนี้ คุณจะมีบริการที่ใช้งานได้เฉพาะเมื่อคุณกลับมาทำงานต่อหลังจากถูกระงับ และปิดตัวลงทันทีเมื่อทำงานเสร็จเพื่อหลีกเลี่ยงการเพิ่มปริมาณ
คำถามที่พบบ่อย
1. ฉันจะลบ ALSA และเก็บ PulseAudio ไว้ได้ไหม
เหยียบที่นี่อย่างระมัดระวัง! PulseAudio ต้องใช้โมดูลเสียงระดับเคอร์เนลจึงจะใช้งานได้ หากคุณกำลังวางแผนที่จะแทนที่ ALSA ด้วยสิ่งอื่นที่ทำงานในเคอร์เนล (เช่น Open Sound System) ไม่ว่าอย่างไรก็ตาม ให้ดำเนินการนั้น กระบวนการนี้ซับซ้อนกว่าการเปลี่ยนโมดูลเคอร์เนล Realtek สำหรับเครือข่ายเล็กน้อย ดังนั้นโปรดทราบว่าคุณอาจนั่งเป็นเวลานานมากในการพยายามแยกแยะปัญหา
2. PulseAudio มีทางเลือกอื่นหรือไม่
ใช่! ทางเลือกที่ได้รับความนิยมมากที่สุด (และเป็นไปได้มากที่สุด หากคุณวางแผนที่จะใช้เดสก์ท็อป) แทน PulseAudio คือ PipeWire ประกอบด้วยการรองรับอุปกรณ์ Bluetooth ที่ดีขึ้นและปรับปรุงวิธีการสุ่มตัวอย่างและขั้นตอนหลังการประมวลผลของ PulseAudio ขณะนี้การแจกแจงจำนวนมากทำให้พร้อมใช้งานในที่เก็บอย่างเป็นทางการ และความเสถียรก็ดีขึ้นอย่างมากในช่วงไม่กี่ปีที่ผ่านมา
หากคุณต้องการการตั้งค่าเสียงอย่างมืออาชีพมากขึ้น คุณอาจต้องการเลือกใช้บางอย่างเช่น JACK
3. ฉันสามารถเรียกใช้ PulseAudio ควบคู่ไปกับบริการอื่นๆ ได้หรือไม่
แม้ว่าบริการบางอย่างจะมีไลบรารี่และตัวเลือกการตั้งค่าเพื่อให้ PulseAudio ทำงานได้ ขอแนะนำเป็นอย่างยิ่งให้คุณใช้บริการครั้งละหนึ่งรายการในระบบของคุณ บริการส่วนใหญ่จะแข่งขันกับ PulseAudio สำหรับแอปพลิเคชันระบบของคุณและอาจทำให้เกิดพฤติกรรมที่คาดเดาไม่ได้ คนอื่นจะไม่ทำงานเลยหากไม่ได้กำจัด PulseAudio ทั้งหมด (PipeWire ใช้ pipewire-pulse
บริการแทนที่ pulseaudio
.)
หวังว่าคำแนะนำที่เราให้ไว้ที่นี่จะทำให้เสียงทำงานบน Ubuntu ได้อีกครั้ง เพื่อให้คุณเริ่มเพลิดเพลินกับระบบปฏิบัติการได้อีกครั้ง คุณได้ลองเปลี่ยนเว็บไซต์เป็นแอปใน Linux และแคสต์หน้าจอโทรศัพท์ Android เป็น Linux แล้วหรือยัง