如何使用 PyAudio 选择特定的输入设备

新手上路,请多包涵

通过 PyAudio 录制音频时,如何指定要使用的确切输入设备?

我的电脑有两个麦克风,一个是内置的,一个是 USB 的,我想用 USB 麦克风录音。 Stream 类 有一个 input_device_index 用于选择设备,但不清楚该索引与设备的关系。例如,我如何知道 0 指的是哪个设备索引?如果我不得不猜测,我会说 0 指的是内置设备,而 1 指的是 USB 设备,但我想找到一些程序化的方式来确认这一点。在 Linux 上,有没有办法获取这些索引及其引用的设备的列表?

原文由 Cerin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.2k
1 个回答

您可以使用 get_device_info_by_host_api_device_index。

例如:

 import pyaudio

p = pyaudio.PyAudio()
info = p.get_host_api_info_by_index(0)
numdevices = info.get('deviceCount')

for i in range(0, numdevices):
    if (p.get_device_info_by_host_api_device_index(0, i).get('maxInputChannels')) > 0:
        print("Input Device id ", i, " - ", p.get_device_info_by_host_api_device_index(0, i).get('name'))

原文由 slegroux 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题