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

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

Opensource.com

这种情况每个人都会遇到,而且通常只在最重要的时候发生。您可能正准备与家人进行圣诞视频聊天,安顿下来在大屏幕电视上观看电影之夜,或者准备录制一首突然出现在脑海中需要释放的曲子。在某些时候,如果您使用计算机,声音将需要被路由。

Linux 音频的工作原理

在不深入技术细节的情况下,以下是 Linux 音频工作原理的简要说明。

sound map

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

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

另一种方式基本上相同;设备(例如麦克风)生成声音并将其发送到应用程序(例如 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 的系统设置中。(KDE 系统设置也有 pavucontrol-qt。)它也可以作为独立应用程序安装和调用,因此请记住它的正式名称。

您每天都使用 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 (未验证)

© . All rights reserved.