如何同时录制输入和输出音频?

axi*_*sty 7 audio recording linux-mint audacity

我正在尝试使用 Audacity 录制通过 Google 语音聊天拨打的电话。我正在运行 Linux Mint 17。

在此示例中,我正在从我的计算机向使用普通电话的人拨打出站电话。我将从我的计算机传输到手机的音频称为出站音频,将从手机传输到我的计算机的音频称为入站音频。

我按照本教程中的 PulseAudio 部分进行操作。这几乎按照我想要的方式工作,但并不完美,因为我只能录制出站音频或入站音频,但不能同时录制。

截屏

在 PulseAudio 音量控制中,有 3 个可用选项(请参见屏幕截图)。他们是:

  1. GF108 高清音频控制器数字立体声 (HDMI) 监视器
  2. 内置音频模拟立体声监视器
  3. 内置音频模拟立体声。

如果我选择选项 1,则 Audacity 中不会录制任何声音。如果我选择选项 2,则只录制入站音频。如果我选择选项 3,则只录制出站音频。

这意味着使用 Audacity,我只能在任何给定时间记录对话的一侧。我想弄清楚如何同时记录对话的双方。

我最接近实现目标的方法是在对话期间手动切换选项 2 和选项 3 之间的“ALSA Capture from”选项。但这很乏味,并且不允许记录对话中的中断。

有没有办法同时录制“内置音频模拟立体声”和“内置音频模拟立体声监视器”?如果是这样,如何?

upu*_*oth 9

通过创建一个虚拟声卡并将真实声卡的输入和输出环回其中,可以同时录制两者,而不会听到自己说话。

以下内容改编自此解决方案以解决更复杂的问题

首先创建一个用作虚拟声卡的接收器,并在其中添加两个环回,用于路由真实声卡的输入和输出。

pacmd load-module module-null-sink sink_name=Virtual1 sink_properties=device.description=Virtual-Sound-Card
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual1
Run Code Online (Sandbox Code Playgroud)

接下来,打开 pavucontrol,导航到“Recording”选项卡并将真实声卡的输入和输出设置为每个回环的源,在 OP 的情况下将是“Built-in Audio Analog Stereo”和“Monitor of Built-in音频模拟立体声”。

录制选项卡配置示例

最后,导航 pavucontrol 的“输入设备”选项卡并将虚拟声卡的监视器设置为备用设备(通过单击“虚拟声卡监视器”右侧带有绿色圆圈中的复选标记的按钮)。

设置为后备的虚拟声卡示例

如果您使用的是 ALSA 插件,如 OP 的屏幕截图所示,请在“录制”选项卡中将“ALSA 捕获自”设置为“虚拟声卡监视器”。

现在,audacity 应该拾取虚拟声卡的输入,其中包含真实声卡的输入和输出,而您的扬声器/耳机仍将仅再现真实声卡的输出,因此您将听不到麦克风的声音。

  • 有没有办法在系统重启时保存配置?现在,我每次启动 Linux 时都必须创建虚拟声卡。 (2认同)

Has*_*tur 6

您可以尝试使用pactl加载模块环回来启用“立体声混音器”

这个想法是将来自麦克风的源流混合到扬声器。通过正确设置麦克风和扬声器的音量和相互位置,您应该能够避免拉森效应。:-)

加载模块环回

 pactl load-module module-loopback
Run Code Online (Sandbox Code Playgroud)

并在将录音设备(Alsa capture from)从内置更改为监视器后
[你在音量控制->录音->Alsa插件/ Alsa捕获中找到]。

youtube上有一个关于 Ubuntu 系统的短视频

笔记:

module-loopback
允许将音频从源直接路由回接收器。

  • 有没有办法将输出流和输入流都通过管道传输到第三个流中,然后记录下来?我想记录对话的双方,但不想通过扬声器听到我自己的声音。 (11认同)