python - 如何在 Python 中录制系统音频?(Linux)
问题描述
我已经修改了 PyAudio,但我只能通过麦克风录音。我希望能够录制通过扬声器播放的内容。有没有办法用 PyAudio 做到这一点,还是我应该使用其他东西?
解决方案
Linux 上的音频子系统围绕源和接收器的概念工作。源是声音可以进入音频子系统(麦克风、应用程序播放声音等)的地方,而接收器是声音可以离开的地方(扬声器)。您需要找到充当扬声器接收器环回监视器的音频源。请参阅 b-ak 对以下帖子的回答:
https://askubuntu.com/questions/229352/how-to-record-output-to-speakers
它解释了您可以从命令行使用的命令,以帮助识别此音频源的适当标识符。然后,您需要按照 Roland Smith 对以下帖子的回答将其加载到 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
推荐阅读
- c# - 如何在 ActionLink 中检查 CSRF
- java - 线程安全是这里的问题吗?
- android - Okhttp MultipartBody 编码
- c# - 无法在 .Net 核心中构建 docker 映像
- python - 如何在 m.author 和 member.id 之间进行比较?Python
- mysql - 在 MySQL 中结合 notEqual 和 In 运算符
- azure - Azure App Service - 如何设置文件夹权限?(窗口操作系统)
- mechanicalturk - (Amazon Mechanical Turk)是否可以在 1 HIT 中放置多个众包?
- r - 在闪亮的地图上一起使用leafsync和leafletProxy
- python - 如何有效地计算另一列中每个元素的较小元素的数量?