我怎样才能让 pulseaudio 将程序输出为单独的流?

我怎样才能让 pulseaudio 将程序输出为单独的流?

因此,我想做的(或者至少我认为我做的)是将运行“play "|rec -d pitch -310"" 的输出作为单独的 pulseaudio 内容(?),以便其他程序可以将其用作输入。有人知道怎么做吗?

答案1

启动“语音转换器”并打开 Pulse Audio Volume Control。在“录制”选项卡上,您应该会看到正在使用的应用程序列表,在本例中,对于“rec -d pitch -310”命令,它显示“ALSA 插件 [sox]”。有一个按钮可以选择捕获设备,通常是“内置音频模拟立体声”,即内置麦克风。在播放选项卡上,您可以执行相同操作并选择输出的位置,例如“内置音频模拟立体声”(扬声器)。这仅显示当前连接到音频的应用程序,因此请确保您的应用程序正在运行。

现在启动将使用它作为输入的第二个程序。在 Pulse Audio 的“录制”选项卡中找到此应用程序。为此,选择“{选择为其他程序播放的设备} 的监视器”。

在此处输入图片描述

这样就行了。但是有一个缺点,那就是如果第二个程序也使用相同的播放设备,则可能会产生反馈。我已将此设置与 FireRTC 一起使用,它似乎可以消除一些反馈,有时它消除得太多。其他应用程序则不会,它只会回响传入的音频。如果第二个应用程序没有生成音频,它将正常工作。如果将两个应用程序设置为不同的播放设备(如 USB 耳机和内置音频),您可能能够消除此问题。您还可以启动虚拟声音设备来通过以下方式传输音频:

sudo modprobe snd-dummy

相关内容