如何在 Linux 上使用 Pulse 管理声音

484 位读者喜欢这篇文章。
music infinity

Opensource.com

每个人都会遇到这种情况,而且通常只在最重要的时候发生。你可能正在准备家庭圣诞视频聊天,准备在大屏幕电视上观看电影之夜,或者准备录制突然出现在你脑海中需要释放的旋律。在某个时候,如果你使用电脑,声音需要被路由。

Linux 音频的工作原理

在不涉及技术细节的情况下,这里是 Linux 音频工作原理的地图。

sound map

首先,有一个源和一个目标:某个东西正在产生声音,而另一个东西应该接收和处理该声音。

对于大多数日常任务,完成所有这些工作意味着使用一个应用程序(例如 VLC 媒体播放器)生成声音,以及一个设备(例如你的扬声器或耳机)接收该声音并将其传递到你的耳朵。

反过来基本上是一样的;一个设备(例如麦克风)生成声音并将其发送到一个应用程序(例如 Jitsi 视频聊天Qtractor DAW)进行处理。

无论如何,模型始终是相同的。声音由一个东西生成并发送到另一个东西。

在这两个端点之间存在一个 Linux 声音系统,因为毕竟,需要一些东西来路由声音。

如果不追溯太久的历史,高级 Linux 声音架构 (ALSA) 传统上管理 Linux 音频。事实上,ALSA *仍然*管理 Linux 音频。不同之处在于,在现代 Linux 上,用户通常不需要直接处理 ALSA 来路由声音。相反,他们可以使用位于 ALSA 之上的工具,例如 Pulse Audio

如果你的 Linux 机器每天都能正常工作,但当需要具体指定声音输入和输出时,你就会感到不知所措,请继续阅读。本文不是关于如何安装驱动程序或设置声音默认值的文章。如果你想了解更多关于这种级别的声音配置,请访问 Linux Questions 等支持论坛Slackermedia 等文档网站以获得帮助。本文是关于熟悉现代 Linux 系统的声音控制。

为什么要用 Pulse?

为什么 Pulse 是必要的?

严格来说,它不是必要的。ALSA 工作得非常好,以至于一些发行版才刚刚开始默认集成 Pulse。但是,直接处理 ALSA 可能需要大量的手动修改。我不是在谈论初始设置。使用 ALSA 可能会导致一些非常复杂的配置和包装脚本,而且你仍然无法获得一个配置来满足你的所有用例。问题并不总是出在 ALSA 上。有时是 应用程序本身的错误,但这并不能改变最终结果。在你可以交换配置文件并重新启动服务之前,你的盒子仍然是“坏的”。

问题是,我们现在对电脑的要求比以往任何时候都更高。音频输出过去要么是扬声器,要么是耳机,但现在我们希望我们的电脑能够将音频传送到房间另一头的屏幕上,我们将其用作电视,并从手机中的蓝牙麦克风中拾取音频。

Pulse 耐心地位于生成声音的东西和用于接收该声音的东西之间,确保一切正常工作。它还添加了几个奖励功能,例如将音频发送到另一台电脑以及无形地更改采样格式或通道计数的能力。

学习 Pulse

要熟悉 Pulse,你需要记住三件事

  1. 检查你的电缆(虚拟和物理的)
  2. 从声音源设置声音输入或输出
  3. 从 Pulse Audio Control (pavucontrol) 管理你的目标

步骤 1:检查电缆和硬件

检查你的电缆。检查音量旋钮。检查静音按钮和电源按钮。你生活在“关闭然后再打开”的音频工程学派中。

Pulse mute setting

承认吧。你自己也做过一两次了。

如果你让耳机插在里面,或者你忘记打开扬声器电源,或者调低了扬声器或播放声音的应用程序的音量,那么花费时间和精力配置你的系统是毫无意义的。首先进行“虚拟检查”。

步骤 2:检查应用程序首选项

类似于检查电缆和旋钮,检查你电脑上正在使用的声音应用程序的设置。并非所有应用程序都为你提供了很多选择,但通常在某个地方都有一个菜单来管理应用程序如何处理其声音。例如,VLC 为你提供了很多选择

VLC audio preferences

而像 Google Hangouts 这样的应用程序为你提供了简化的视图

Google video chat preferences

重点是,你需要决定声音离开其父应用程序后将流向何处。确保它被设置为合理的状态。

如果你对所有这些选择感到困惑,通常可以将声音发送到 Pulse。

  • 将声音发送到 Pulse 以从 Pulse 的简化世界观中受益。你可以将其发送到 Pulse 并从 Pulse 的控制面板中进行管理——Pulse 的工作是动态管理声音。

  • 如果你想要直接控制,请将声音发送到 ALSA。如果你正在使用专业应用程序,例如软件合成器、效果器机架和 DAW,并且你需要对通道路由(例如使用 JACK 或 Patchage)和处理顺序进行绝对控制,那么这可能很重要。

Pulse 有一个 ALSA 插件,因此即使你的首选目标是 ALSA,你仍然可以通过 Pulse 管理该声音。Pulse 不会“窃取”你的音频,因此你不必担心 Pulse 拦截你的信号并将其重新路由到其他地方。Pulse 始终尊重在较低级别(而 ALSA 与声音系统中的最低级别相同,驱动程序除外)所做的选择。

步骤 3:Pulse 音频音量控制 (pavucontrol)

Pulse Audio 的神经中枢是 pavucontrol,更常见的名称是“声音控制面板”,因为它的默认位置位于 Gnome 的系统设置中。(它也可以作为 pavucontrol-qt 用于 KDE 系统设置。)它也可以作为独立应用程序安装和调用,因此请记住它的正式名称。

你可以每天使用 pavucontrol 来设置电脑上的声音级别和路由。它在我的待办事项列表中列为第 3 步,但实际上它是你进行正常、日常声音管理的第一站(事实上,当你调整 Gnome 桌面上的音量时,你正在使用相同的控件,因此你每天都在使用它,无论你是否意识到)。

pavucontrol 是一个动态面板,由五个选项卡组成

  • 配置:激活声卡并定义使用配置文件。例如,在我的台式机上,我通常禁用 HDMI,并将内置模拟卡设置为立体声双工。你不会经常使用此面板;它主要是一些你设置一次就忘记的东西。

  • 输入设备:当前可用的输入设备(任何能够发出声音的设备)。这些通常包括麦克风(在笔记本电脑上非常常见,笔记本电脑通常有一个用于网络摄像头的内置麦克风)、线路输入和系统上当前正在播放的任何内容的“监听”设备(稍后会详细介绍)。

  • 输出设备:当前可用的输出目标,例如桌面扬声器和耳机(插入线路输出端口)以及 USB 耳机。

  • 录制:当前活动的录制会话。这可能是网络浏览器正在寻找声音输入以进行视频聊天会话,也可能是 Audacity 等录制应用程序。如果它有一个用于声音的套接字打开,它就在这里。

  • 播放:当前正在播放的活动声音流。如果它是要被听到的,那么它就在这里。

关于 pavucontrol,重要的是要记住它是动态的。如果 Audacity 没有录制,那么它就不会出现在录制选项卡中。如果 XMMS 没有播放,那么它就不会出现在播放选项卡中。如果你的 USB 耳机没有插入,那么它就不会出现在输入或输出选项卡中。

使用 pavucontrol 路由声音

pavucontrol 中路由声音完全通过下拉菜单完成。首先,通过启动你最喜欢的音乐播放器并播放一些音乐来尝试一些简单的事情。然后打开 pavucontrol(请记住,它可能位于你的发行版上的 GNOME 或 KDE 系统设置 > 声音面板中)并单击配置选项卡。

在配置选项卡中,记下哪个设备是活动的设备,以及它正在使用哪个配置文件。我的内置音频设置为模拟立体声双工,但你的可能不同。

一旦你把它写下来,把它改成关闭,果然,音乐停止了。好吧,它实际上并没有停止,你只是听不到它,因为你“取消设置”了你的默认活动输出。将设置从关闭更改为之前的设置,你的音乐就会返回。

Sound configuration

正如你所看到的,配置选项卡设置了你的系统的主要输出。因此,它是安装新显卡后你应该检查的第一个面板;HDMI 以试图从板载声卡窃取优先级而臭名昭著。否则,一旦设置好,它基本上保持不变,直到你安装新东西,或者有添加或更改输出设备的愿望。

现在来点更复杂的:让我们劫持你自己电脑上播放的声音并将其录制到文件中。

启动 Audacity 并将其输入源设置为 Pulse。

Audacity preferences

Audacity > 编辑 > 首选项

按下录制按钮或转到传输菜单 > 录制。

起初,你应该注意到你在录制静音。切换到 pavucontrol 并导航到录制选项卡。

在录制选项卡中,单击右侧的下拉菜单并将声音源从 **内置立体声**(或你的系统默认设置,取决于你的系统默认设置)更改为 **监听**。这将声音源从物理设备(在我的例子中,我用来听音乐的桌面扬声器)设置为该设备的软件*监听器*。再次检查 Audacity,你会发现你在拦截和录制你自己的系统。

网络输入和其他声音问题

相同的过程也适用于与朋友进行视频聊天。如果 Pulse 不知道将来自你的 USB 耳机或网络摄像头麦克风的输入发送到你的网络浏览器或视频聊天应用程序,那么除非它恰好是默认设置,否则声音将不会到达你的视频聊天应用程序。

播放音频也是如此。如果你正在播放电影但听不到声音,请检查 Pulse!可能是你正在将声音发送到非活动的声音设备或已静音的东西。

Linux 播放声音!

计算机总是会出现声音问题。声卡设备需要驱动程序,操作系统需要检测并管理它们,用户需要了解如何使用控制选项。在计算机上实现无缝声音体验的关键是在首次安装操作系统时设置声卡设备,确认其工作正常,然后学习操作系统提供的工具来控制声音设置。

是的,现在是2017年,Linux不仅可以播放声音,还可以管理声音。只要你学会使用工具,并且像往常一样不要惊慌,你也可以做到。

Seth Kenlon
Seth Kenlon 是一个 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,而且常常是同时进行。

2 条评论

除非你的输出是蓝牙设备,否则就惊慌吧。

我承认我在蓝牙方面经验有限,但在手机和蓝牙扬声器之间,我发现 Pulse 可以流畅地处理蓝牙。 它只是另一个输出设备。

Pulse 现在是 Linux 上蓝牙堆栈的必需依赖项,所以两者肯定相互了解。

回复 作者 Richard Goater (未验证)

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.