我使用 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)时有所不同。静态声音实际上是基于给定时刻屏幕上的视频。不仅如此,每当我按下键盘上的某个键时,每个键还会产生增强的静态声音,这对于某些键来说是不同的(不同的两个键声音是键盘中物理距离较远的键声音。这使得对我来说没有意义..在我的双启动 Windows 安装中,使用相同的物理设备(相同的键盘、内置显示器、插孔端口等),静态声音的变化确实不是发生。显然,这是 Linux 实现所独有的(这只是我的假设。我没有证据支持这一说法)。
为什么我的键盘驱动程序和视频驱动程序会影响我的声音驱动程序?这些驱动程序在内核级别上是否有些同步?
这并不是什么大问题,因为当我使用 DAC 时,静态声音不会发生变化。这是有道理的,因为这是一个外部音频设备,由自己的 CPU 等管理。我很想知道 Linux 系统中为什么会出现这种情况,以及这是一个错误还是一个“功能”。
答案1
听起来您好像听到了计算机各个数字部分运行时产生的电噪声泄漏到音频输出信号中。
如果 Windows 中没有出现这种情况,则排除了主板内音频信号屏蔽不良的可能性。这很好,因为修复不良内部屏蔽的唯一方法可能是使用外部 DAC。
相反,ALSA 驱动程序的默认设置可能会启用对您未主动使用的一个或多个音频输入的监控,并且噪音会通过该输入进入。在台式计算机上,机箱前面的麦克风连接器是导致此问题的常见原因,因为它在机箱内通常具有相对较长且可能屏蔽不良的电线,并且需要对非常弱的信号敏感。
使用 Pulseaudio 时,alsamixer
不带选项运行通常可能只显示 Pulseaudio 的简化混音器。相反,您需要 ALSA 的硬件混音控制,并且可以通过添加选项来获得它们-cN
,其中 N 是您想要调整其混音器的声卡的编号。因此,如果您的计算机只有一张声卡或集成声音芯片,请使用alsamixer -c0
.然后F4按捕获通道,并确保您未主动使用的任何捕获通道的音量滑块完全按下,并且静音功能已启用(如果适用)(如果适用,请使用滑块的箭头键和M静音功能的键)展示)。这应该可以最大限度地减少泄漏的噪音。
另外,如果混音器通道列表在任何地方包含“环回混音”或“你听到的内容”(即允许您同时录制麦克风输入和计算机生成的音频的信号路径),请尝试禁用它:已知在某些声音芯片中是容易产生噪声的信号路径。
请注意,任何音频输入连接器都可能在混音器的“捕获”和“播放”区域上都有音量滑块:前者用于实际录音,而后者用于“监听”,即将麦克风输入直接馈送到音频输出例如,让您在使用游戏耳机时听到自己的声音。同样,如果您没有主动使用输入通道,则需要将“播放”通道的音量滑块完全调低并启用静音功能(如果可用)。