Я пытаюсь сделать простое приложение для студийной записи. У меня есть несколько устройств ввода звука, и я хочу записывать их все одновременно.
Как мне обнаружить все физические аудиовходы?
Когда я использую sounddevice.query_devices()
, я получаю много виртуальных устройств и много виртуальных входных каналов, которые не содержат данных:
>>> sd.query_devices()
0 HDA Intel PCH: HDMI 0 (hw:0,3), ALSA (0 in, 8 out)
1 HDA Intel PCH: HDMI 1 (hw:0,7), ALSA (0 in, 8 out)
2 HDA Intel PCH: HDMI 2 (hw:0,8), ALSA (0 in, 8 out)
3 hdmi, ALSA (0 in, 8 out)
4 pulse, ALSA (32 in, 32 out)
* 5 default, ALSA (32 in, 32 out)
6 /dev/dsp, OSS (16 in, 16 out)
Меня интересуют только реальные устройства и реальные каналы ввода.
Когда я запрашиваю микрофонные устройства с помощью pacmd
, а затем list-sources
, я получаю два канала, дающие поддельное стерео, даже если устройство моно:
$ pacmd
>>> list-sources
...
channel map: front-left,front-right
Stereo
Есть ли способ запросить PulseAudio или PortAudio для получения физических входных каналов? И их параметры (чтобы я мог выбрать частоту дискретизации и т. Д.)
(hw:X,Y)
в имени устройства, но я не уверен, что это точно соответствует устройствам, которые вы хотели бы видеть. - person Matthias   schedule 21.10.2016