Linux - 没有硬件声卡,如何捕获音频播放并录制到文件中

13

这种事情可能吗?

是否有可能创建一个虚拟声卡,并使用例如PyAudio来监听其输出并将其保存到文件中?请注意,计算机上没有硬件声卡。

我已经尝试了很多东西,特别是 ALSA模块,但我开始怀疑我是否在寻找正确的工具。如果有人能指点我至少高级解决方案,我将不胜感激。最好是在Ubuntu服务器上可以运行的东西。

3个回答

12

感谢@mjy和@Matthias的帮助,我终于成功找出了使录音工作所需的基本步骤:

sudo apt-get install pulseaudio jackd2 alsa-utils dbus-x11

无需玩弄,也不需要创建任何其他配置文件...所有这些只会让我浪费几个小时:( 在对干净的Ubuntu服务器安装这些包之后,我能够运行Python脚本并使用PyAudio将输出音频捕获到文件中...


1
你真是个好人,帮我省了好几个小时 <3 -- 一个提示:你可以在终端中输入“python3 -m sounddevice”来检查这个答案是否有效 - Jealie
感谢您!我正在设置Baresip在Debian Netinst和Ubuntu服务器上,这可像魔法一样奏效了。我的错误信息是“alsa无法打开auplay设备'default' (没有此文件或目录)”。 - r3dapple
这是一个很棒的解决方案! - Dinuka Salwathura

4
如果产生声音的应用程序支持JACK,这应该很容易。 然后,您只需要为JACK选择dummy驱动程序,就可以将音频信号路由到任何您想要的录音程序(只要它也支持JACK)。
您需要安装jackd包,该包具有用于启动JACK守护程序的命令行界面。 软件包qjackctl提供了一个漂亮的GUI,可用于尝试不同的设置并在程序之间进行音频连接。对于录制,您可以尝试jack_rec程序,该程序是jackd的一部分,但是也有许多其他针对JACK的录音应用程序可用。
如果您想使用Python进行录音,则可以尝试sounddevicesoundfile模块。如果需要一些特定于JACK的功能,则应尝试jackclient-python

我怎样才能知道这个应用程序是否支持JACK? - Hendrik

1
安装PulseAudio。
sudo apt install pulseaudio

PulseAudio具有对ALSA的仿真功能。

你能提供一些关于该仿真的进一步信息吗? - Paweł Duda
仿真设备将会自动创建。您可能能够在不进行设置的情况下记录和回放ALSA仿真设备。 - mjy
已经安装了脉冲音频,但这应该如何工作? - Rainb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接