PulseAudio-alsa 和 X-server 問題同步
我使用 PulseAudio-Alsa (Arch x86_64, 5.7)。今天注意到一個很奇怪的問題,在網上找到了0個相關問題。這真的不是什麼大問題,我對正在發生的事情感到震驚。我先說設備問題(外部設備可能無關緊要,但如果您對Linux內部有所了解,我相信您可以回答這個問題)。
工作室監視器:JBL LSR305
音頻:Pulseaudio-alsa
影片:X11 伺服器(i3-gaps)通過
startx
DAC:Focusrite Scarlett 2i2
演播室監聽自然嘶嘶作響;這很常見,我已經習慣了。在 Windows 上,嘶嘶聲是靜態的,無論我在做什麼(也就是網頁瀏覽、遊戲、製作音樂等)聽起來都是一樣的。我的意思是靜態的聲音不會改變。無論互動(物理或通過監視器),它都是相同的靜態聲音。
現在在 Linux 上,當我使用我的工作室監視器(沒有 DAC)時,靜態聲音會根據目前的活動而有所不同。當我訪問一個背景較暗的網站時,靜態聲音只是有點不同(足夠我要注意),而不是當我訪問一個白色背景的網站時。現在,這聲音也徹底當我使用 vim 或其他應用程序(例如 draw.io)時會有所不同。靜態聲音實際上是基於給定時刻我螢幕上的影片。不僅如此,每當我按下鍵盤上的一個鍵時,每個鍵也會產生增加的靜態聲音,這對於某些鍵是不同的(不同的兩個鍵聲音是在鍵盤上物理距離較遠的聲音。這使得對我來說沒有意義..在我的雙啟動視窗安裝中,使用相同的物理設備(相同的鍵盤,內置顯示器,插孔埠等),靜態聲音的變化沒有發生。顯然,這是什麼Linux 實現所獨有的(這只是我的假設。我沒有證據支持這種說法)。
為什麼我的鍵盤驅動程序和影片驅動程序會影響我的聲音驅動程序?這些驅動程序在核心級別是否有些同步?
這不是太大的問題,因為當我使用我的 DAC 時,不會發生靜態聲音的變化。這是有道理的,因為這是一個外部音頻設備,由它自己的 CPU 等管理。我很想知道為什麼在 Linux 系統中會出現這種情況,以及這是一個錯誤還是一個“功能”。
聽起來您正在聽到電腦各個數字部分的操作產生的電雜訊洩漏到音頻輸出信號中。
如果 Windows 沒有發生這種情況,則排除了主機板內音頻信號屏蔽不良的可能性。這很好,因為修復不良內部屏蔽的唯一方法可能是使用外部 DAC。
相反,可能是 ALSA 驅動程序的預設設置啟用了對您未主動使用的一個或多個音頻輸入的監控,並且噪音通過它進入。在台式電腦上,機箱前部的麥克風連接器是導致此問題的常見原因,因為它通常在機箱內具有相對較長且可能屏蔽不良的電線,並且需要對非常微弱的信號敏感。
使用 Pulseaudio 時,
alsamixer
不帶選項執行通常可能只顯示 Pulseaudio 的簡化混音器。相反,您需要 ALSA 的硬體混音控制,您可以通過添加-cN
選項來獲得它們,其中 N 是您希望調整其混音器的音效卡的編號。因此,如果您的電腦只有一個音效卡或集成聲音晶片,請使用alsamixer -c0
. 然後按下F4
擷取通道,並確保您未主動使用的任何擷取通道的音量滑塊已完全向下並啟用靜音功能(如果適用)(如果適用,請使用滑塊的箭頭鍵和M
靜音功能的鍵,如果當下)。這應該最大限度地減少噪音洩漏。此外,如果混音器通道列表包括“環回混音”或“你聽到什麼”(即允許您同時錄製麥克風輸入和電腦生成的音頻的信號路徑),請嘗試禁用它:它是已知在某些聲音晶片中是容易產生雜訊的信號路徑。
請注意,任何音頻輸入連接器都可能在混音器的“擷取”和“播放”區域都有音量滑塊:前者用於實際錄製,而後者用於“監控”,即將麥克風輸入直接饋送到音頻輸出例如,讓您在使用遊戲耳機時聽到自己的聲音。同樣,如果您沒有主動使用輸入通道,您將希望其“播放”通道的音量滑塊完全向下並啟用靜音功能(如果可用)。