![我怎样才能让 pulseaudio 将程序输出为单独的流?](https://linux22.com/image/1062734/%E6%88%91%E6%80%8E%E6%A0%B7%E6%89%8D%E8%83%BD%E8%AE%A9%20pulseaudio%20%E5%B0%86%E7%A8%8B%E5%BA%8F%E8%BE%93%E5%87%BA%E4%B8%BA%E5%8D%95%E7%8B%AC%E7%9A%84%E6%B5%81%EF%BC%9F.png)
因此,我想做的(或者至少我认为我做的)是将运行“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