如何在Python中录制系统音频? (Linux)

时间:2018-12-23 07:52:30

标签: python linux audio pyaudio

我已经对PyAudio进行了修改,但只能通过麦克风进行录音。我希望能够记录通过扬声器播放的内容。有没有办法用PyAudio做到这一点,或者我应该使用其他东西吗?

2 个答案:

答案 0 :(得分:0)

Linux上的音频子系统围绕源和宿的概念工作。源是声音可以进入音频子系统(麦克风,应用程序播放声音等)的地方,而水槽是可以离开声音的地方(扬声器)。您需要找到充当扬声器接收器回送监视器的音频源。请参阅b-ak对以下帖子的回答:

https://askubuntu.com/questions/229352/how-to-record-output-to-speakers

它说明了可以从命令行使用的命令,以帮助识别此音频源的适当标识符。然后,您需要按照Roland Smith对以下帖子的回答将其加载到pyaudio中:

voice recording using pyaudio

在此说明,您可以实例化pyaudio对象并在交互式python提示符下获取设备ID列表,如下所示:

import pyaudio
p = pyaudio.PyAudio()
[p.get_device_info_by_index(i) for i in range(p.get_device_count())]

找到合适的设备,然后在打开流时使用合适的设备ID将input_device_index参数传递给p.open

答案 1 :(得分:0)

我认为这是this post 4 years ago的重复发布

我进行了一些研究,发现WASAPI仍然有效,并且似乎是您唯一的选择。这是extended PyAudio lib的Gitlab链接。我找不到任何“开箱即用”的Linux操作系统的解决方案。如果确实很重要,请尝试在Windows上使用任何VirtualMachine。

如前所述,问题是为什么要实现这一目标,以及是否有一种更“优雅”的方式。