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

Cer*_*rin 8 python linux audio pyaudio

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

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

sle*_*oux 19

你可以使用: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')
Run Code Online (Sandbox Code Playgroud)

  • 那你怎么指定列出的其中一个设备是pyaudio设备? (3认同)
  • 以及如何选择输入设备?get_device_info_by_host_api_device_index 只获取我的信息 (2认同)
  • `input_device_index = x`是解决方案. (2认同)

Mat*_*ias -3

我不知道 PyAudio,但使用sounddevice模块它是这样的:

python3 -m sounddevice
Run Code Online (Sandbox Code Playgroud)