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

时间:2016-10-15 16:07:37

标签: linux ubuntu-server pyaudio

这样的事情是否可能?

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

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

3 个答案:

答案 0 :(得分:1)

Install the PulseAudio.

sudo apt install pulseaudio

PulseAudio has emulation for ALSA.

答案 1 :(得分:1)

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

您需要包jackd,它具有用于启动JACK守护程序的命令行界面。 包qjackctl提供了一个很好的GUI,用于试验不同的设置和在程序之间建立音频连接。对于录制,您可以尝试jack_rec作为jackd的一部分的程序$scope.newData = data.data; $scope.newData.push($scope.number); ,但也可以使用许多其他JACK录制应用程序。

如果您想使用Python进行录制,可以试用sounddevicesoundfile模块。如果您需要一些特定于JACK的功能,则应尝试jackclient-python

答案 2 :(得分:0)

感谢@mjy和@Matthias,我终于设法找出了使记录工作的最小步骤:

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

无需使用snd-dummy,无需创建任何其他配置文件......所有这些只会让我失去几个小时:(在干净的Ubuntu服务器安装上安装这些软件包后,我是能够使用PyAudio运行Python脚本并将输出音频捕获到文件...