Strona główna
» Porady PC
»
Zmniejsz zniekształcenia dźwięku w systemie Ubuntu 24.04 dzięki ukierunkowanym modyfikacjom ALSA
Zmniejsz zniekształcenia dźwięku w systemie Ubuntu 24.04 dzięki ukierunkowanym modyfikacjom ALSA
Zacznij od obniżenia wzmocnienia odtwarzania i sprawdzenia, czy zniekształcenia dotyczą każdej aplikacji. W systemie Ubuntu 24.04 Desktop PipeWire zazwyczaj działa między aplikacjami a urządzeniem dźwiękowym, więc modyfikacja ALSA jest przydatna tylko wtedy, gdy usuwa przyczynę: użyj miksera do przycinania, ALSA plugPCM dla aplikacji ALSA-Direct z niezgodnością formatu lub testu oszczędzania energii dla kliknięć po bezczynności. Unikaj zastępowania domyślnego ustawienia ALSA w całym systemie jako pierwszego kroku.
Czy zniekształcenia pochodzą z jednej aplikacji czy z całego systemu?
To rozróżnienie decyduje o tym, które ustawienie jest istotne. Przeglądarka, która źle brzmi, podczas gdy system ostrzega, a inny odtwarzacz brzmi czysto, wskazuje na aplikację, jej poziom strumienia lub wybrane wyjście. Zniekształcenia w każdej aplikacji mogą wynikać z nadmiernego wzmocnienia odtwarzania, urządzenia lub kabla, sterownika lub zmiany zasilania. Ustawienia ALSA nie naprawiają uszkodzonego głośnika ani słabego połączenia fizycznego.
Odtwórz ten sam krótki klip audio w dwóch różnych aplikacjach, używając tego samego wyjścia. Przed testowaniem obniż głośność aplikacji i poziom wyjściowy Ubuntu; sygnału cyfrowego przesterowanego w górę strumienia nie da się naprawić, wymieniając później mikser sprzętowy.
Otwórz terminal i uruchom polecenia pactl infooraz wpctl status. Wyświetlają one aktywny serwer audio i dostępne obiekty PipeWire po zainstalowaniu tych narzędzi. Plan testów dźwięku pulpitu Ubuntu dokumentuje PipeWire jako serwer dźwięku pulpitu. Jeśli instalacja została dostosowana, użyj wyników tych poleceń, zamiast zakładać ścieżkę audio.
Uruchom aplay -l, aby wyświetlić listę urządzeń odtwarzających ALSA. Jeśli problem występuje tylko w przypadku jednego zestawu słuchawkowego, głośnika, stacji dokującej lub kabla, przed zmianą konfiguracji należy ponownie podłączyć lub zamienić to połączenie.
Ilustrujący wynik terminala pokazujący PipeWire jako serwer audio i listę urządzeń odtwarzających.
Czy wzmocnienie odtwarzania może być przycinane?
Tak. Jeśli dźwięk staje się ostry, brzęczący lub przerywany na wysokich częstotliwościach, zmniejsz wzmocnienie przed dodaniem konfiguracji. Kilka regulatorów głośności może się łączyć: aplikacja, wyjście pulpitu oraz regulatory sprzętowe, takie jak Master, PCM lub Speaker. Ich nazwy różnią się w zależności od urządzenia audio, więc zmień jeden odpowiedni regulator odtwarzania na raz i posłuchaj ponownie.
W razie potrzeby zainstaluj narzędzie miksera za pomocą sudo apt install alsa-utils.
Uruchom alsamixer. Naciśnij F6, aby wybrać kartę dźwiękową, a następnie F3wyświetlić elementy sterujące odtwarzaniem. Użyj klawiszy strzałek, aby obniżyć prawdopodobny poziom Master, PCM lub Speaker. alsamixerPodręcznik Ubuntu Noble opisuje te widoki karty i odtwarzania.
Obniż również głośność aplikacji i pulpitu do umiarkowanego poziomu. Nie ustawiaj głośności powyżej 100%, aby skompensować ciche źródło; wzmocnienie może pogorszyć przesterowanie. Mic Boostto element sterujący przechwytywaniem, a nie naprawa odtwarzania.
Przetestuj ten sam fragment audio po każdej regulacji. Jeśli obniżenie poziomu konkretnego parametru sprzętowego usuwa zniekształcenia, ustaw go poniżej poziomu, przy którym szorstkość powraca. Nie ma uniwersalnego „poprawnego” poziomu procentowego: parametry karty i czułość głośników różnią się.
Ilustrujący widok odtwarzania Alsamixer z kontrolkami Master, PCM i Speaker ustawionymi poniżej maksimum.
Czy problem dotyczy tylko aplikacji, która bezpośrednio otwiera ALSA?
Wypróbuj konwersję ALSA plugprzed edycją urządzenia domyślnego. Wtyczka może konwertować format próbki, częstotliwość próbkowania lub liczbę kanałów, aby dopasować ją do sprzętu. Jest to dobre rozwiązanie dla starszych programów lub programów wiersza poleceń, które otwierają ALSA bezpośrednio i nie działają lub brzmią nieprawidłowo z surowym sprzętowym sygnałem PCM. Nie zmienia to trasy używanej przez standardowe aplikacje PipeWire.
Znajdź numery karty i urządzenia w aplay -l. Aby szybko przeprowadzić test, zamień sprzętowy moduł PCM wyświetlany na komputerze w tym poleceniu:
plughw:0,0Oznacza kartę 0, urządzenie 0; podane wartości mogą się różnić. Jeśli ten test konwersji wydaje się prawidłowy, a hw:0,0test bezpośredni kończy się niepowodzeniem, możesz zdefiniować nazwany moduł PCM w pliku konfiguracyjnym użytkownika ~/.asoundrc:
pcm.converted {
type plug
slave.pcm "hw:0,0"
}
Zastąp hw:0,0zidentyfikowanym urządzeniem. Wybierz convertedw aplikacji obsługującej ALSA lub przetestuj za pomocą speaker-test -D converted -c 2 -t sine -f 440 -l 1. Utwórz kopię zapasową istniejącego pliku ~/.asoundrcprzed jego edycją. W dokumentacji wtyczki PCM projektu ALSA opisano konwersję, a podręcznik asoundrc dokumentuje konfigurację użytkownika i systemu. Unikaj kopiowania tej definicji do programu pcm.!defaultALSA, chyba że zamierzasz zastąpić domyślną konfigurację ALSA dla wszystkich klientów ALSA; może to zakłócić routing innych urządzeń lub pulpitu.
Przykładowy fragment kodu ~/.asoundrc definiujący nazwany moduł PCM wtyczki ALSA dla wybranego urządzenia sprzętowego.
Czy kliknięcie następuje tylko po ciszy czy po wznowieniu odtwarzania?
Ten wzorzec może wskazywać na oszczędzanie energii przez kodek HDA, a nie na przycinanie. Przetestuj to ustawienie tymczasowo tylko wtedy, gdy snd_hda_intelsterownik i parametr istnieją. Najpierw sprawdź bieżącą wartość:
Jeżeli plik istnieje, tymczasowo wyłącz interwał oszczędzania energii kodeka do momentu ponownego uruchomienia:
echo 0 | sudo tee /sys/module/snd_hda_intel/parameters/power_save
Odtwórz dźwięk, pozostaw go w stanie bezczynności na tyle długo, aby nastąpiło kliknięcie, i wznów odtwarzanie. Dokumentacja jądra ALSA dotycząca oszczędzania energii opisuje parametr oszczędzania energii HDA i zaznacza, że zmiany zasilania mogą powodować słyszalne kliknięcia w przypadku niektórych urządzeń. Wyłączenie tego ustawienia może zwiększyć zużycie energii; nie jest to jednak rozwiązanie problemu zniekształceń podczas ciągłego odtwarzania.
Jeśli test zadziała i chcesz, aby został zachowany, utwórz plik /etc/modprobe.d/alsa-hda-powersave.confzawierający plik options snd_hda_intel power_save=0, a następnie uruchom ponownie. Aby to cofnąć, usuń ten plik i uruchom ponownie. Jeśli ścieżka sysfs jest niedostępna, pomiń tę poprawkę: sterownik może nie być załadowany lub urządzenie może korzystać z innego sterownika. Nie twórz ręcznie brakującej ścieżki.
Przykładowy widok terminala pokazujący zmianę wartości oszczędzania energii HDA z 10 na 0 w celu przeprowadzenia tymczasowego testu.
Jak można potwierdzić właściwe rozwiązanie?
Odtwórz ten sam fragment na umiarkowanym poziomie głośności w oryginalnej aplikacji i w drugiej. Sprawdź, czy piki nie są już chrapliwe, a w przypadku problemu z bezczynnym kliknięciem, upewnij się, że dźwięk jest wznawiany bez klikania. Jeśli dodałeś nazwany ALSA PCM, przetestuj go z poziomu programu obsługującego ALSA; przeglądarka lub inny klient PipeWire może nie używać tej definicji.
Jeśli zniekształcenia utrzymują się w aplikacjach, wyjściach i przy rozsądnych poziomach odtwarzania, przywróć ustawienia eksperymentalne i sprawdź połączenie, urządzenie lub sterownik jądra. Ubuntu zaleca sprawdzenie złączy i wybranego urządzenia dźwiękowego pod kątem trzasków. W przypadku problemów ze sterownikiem, zbierz aplay -li, w przypadku dźwięku PCI, lspci -nnkwyjdź. Unikaj dowolnych zmian rozmiaru bufora: zmiany bufora pozwalają na kompromis między opóźnieniem a tolerancją niedopełnienia i powinny uwzględniać oznaki przerw w transmisji, a nie być stosowane jako ogólne lekarstwo na zniekształcenia.