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

最佳答案

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())]

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

关于python - 如何在 Python 中录制系统音频? (Linux),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53902065/

10-13 03:02