Poprawka: zniekształcenia dźwięku i zawieszanie się PipeWire (Linux)¶
W tym dokumencie opisano, jak rozwiązać problem zniekształceń dźwięku („klirren”), artefaktów głosu robotów i zawieszeń dźwięku systemowego, które mogą wystąpić podczas korzystania z usługi SL5-aura-service wraz z innymi aplikacjami multimedialnymi, takimi jak OBS, AnyDesk lub strumienie TTS o wysokiej częstotliwości.
Objawy¶
Dźwięki wejściowe/wyjściowe głosu są zniekształcone, metaliczne lub „brzęczą”.
Dźwięk systemowy zawiesza się i pojawia się komunikat: „Nawiązywanie połączenia z PulseAudio” lub „Proszę czekać”.
Całkowita utrata dźwięku po dużym obciążeniu procesora lub jednoczesnym korzystaniu ze strumienia.
Dzienniki dziennika pokazują:
spa.alsa: hw:X: błąd snd_pcm_status: Nie ma takiego urządzenia.
Główna przyczyna¶
W Manjaro i innych nowoczesnych dystrybucjach Linuksa PipeWire zarządza dźwiękiem. Zniekształcenie zwykle wynika z:
Niedopełnienie bufora: Konflikt pomiędzy równoczesnymi strumieniami (np. AnyDesk przechwytujący dźwięk podczas działania TTS/OBS).
Niedopasowanie częstotliwości próbkowania: Częste przełączanie pomiędzy 44,1 kHz a 48 kHz.
Problemy z synchronizacją USB: Duże obciążenie magistrali powoduje tymczasowe rozłączenie zestawów słuchawkowych USB (takich jak Plantronics/Poly).
Rozwiązania¶
1. Natychmiastowe przywrócenie (Reset „nuklearny”)¶
Jeśli stos audio jest zamrożony lub zniekształcony, zakończ wszystkie procesy związane z dźwiękiem. Natychmiast uruchomią się automatycznie.
KOD_BLOKU_0
2. Ustawienia zapobiegania i stabilności¶
Wyłącz dźwięk AnyDesk¶
AnyDesk często próbuje podłączyć się do urządzenia audio, powodując konflikty sprzętowe.
Działanie: Otwórz Ustawienia AnyDesk -> Dźwięk -> Wyłącz „Przesyłaj dźwięk” i „Odtwórz dźwięk”.
Napraw częstotliwość próbkowania PipeWire (zalecane)¶
Wymuś, aby PipeWire pozostał na 48 kHz, aby uniknąć artefaktów ponownego próbkowania podczas odtwarzania TTS.
Utwórz katalog konfiguracyjny:
mkdir -p ~/.config/pipewireSkopiuj domyślną konfigurację:
cp /usr/share/pipewire/pipewire.conf ~/.config/pipewire/Edytuj
~/.config/pipewire/pipewire.confi ustaw: KOD_BLOKU_1Uruchom ponownie usługi: KOD_BLOKU_2
3. Odzyskiwanie poprodukcyjne (FFmpeg)¶
Jeśli nagrałeś sesję, a dźwięk jest zniekształcony („klirring”), użyj następującego łańcucha filtrów ffmpeg, aby naprawić plik.
Zalecane polecenie naprawy¶
To polecenie powoduje zastosowanie narzędzia do usuwania obcinania, redukcji szumów i filtra dolnoprzepustowego w celu usunięcia cyfrowych artefaktów o wysokiej częstotliwości bez ponownego kodowania wideo.
przetestowane i bardzo dobre:
KOD_BLOKU_3
może lepiej z (nie testowano):
KOD_BLOKU_4
nie testowane: KOD_BLOKU_5
Podział filtrów:
adeclip: Zaokrągla cyfrowe skoki obcinania.afftdn: Redukuje szum cyfrowy oparty na FFT.lowpass=f=3500: Odcina częstotliwości powyżej 3,5 kHz, gdzie występuje najwięcej „klirowania” (sprawia, że głos staje się wyraźniejszy/cieplejszy).volume=1,8: Kompensuje utratę objętości podczas filtrowania.-c:v copy: Zachowuje oryginalną jakość wideo (niezwykle szybko).
Narzędzia do debugowania¶
Aby monitorować stan dźwięku w czasie rzeczywistym podczas programowania:
pw-top: Pokazuje błędy w czasie rzeczywistym (kolumna ERR) i stan bufora.journalctl --user -u pipewire: Sprawdza, czy sprzęt nie jest rozłączony.