Linux - 没有硬件声卡,捕获音频播放,并记录到文件

Linux - Without hardware soundcard, capture audio playback, and record it to file

这种事情有可能吗?

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

我尝试了很多东西,尤其是 snd-dummy ALSA 模块,但我开始怀疑我是否在寻找合适的工具。如果有人能指出我至少是高级解决方案,我将不胜感激。最好是可以在 Ubuntu 服务器上运行的东西。

安装 PulseAudio。

sudo apt install pulseaudio

PulseAudio 具有针对 ALSA 的仿真。

如果产生声音的应用程序支持 JACK,这应该很容易。 然后你只需要 select JACK 的 dummy 驱动程序,你就可以将音频信号路由到你想要的任何录音程序(只要它也支持 JACK)。

您将需要软件包 jackd,它具有用于启动 JACK 守护程序的命令行界面。 qjackctl 包提供了一个很好的 GUI,用于试验不同的设置和在程序之间建立音频连接。对于录音,您可以尝试程序 jack_rec,它是 jackd 的一部分,但也有许多其他 JACK 录音应用程序可用。

如果你想用Python录音,你可以试试sounddevice and soundfile modules. If you need some JACK-specific functionality, you should try jackclient-python

多亏了@mjy 和@Matthias,我终于设法弄清楚了为使录音正常进行而需要采取的最少步骤:

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

不需要玩 snd-dummy,不需要创建任何额外的配置文件...所有这些事情只会让我浪费几个小时 :( 在干净的 [=19= 上安装这些包之后] 服务器安装,我能够 运行 Python 使用 PyAudio 编写脚本并将输出音频捕获到文件中...