web-dev-qa-db-fra.com

Comment sélectionner un périphérique d'entrée spécifique avec PyAudio

Lors de l'enregistrement audio via PyAudio, comment spécifiez-vous le périphérique d'entrée à utiliser?

Mon ordinateur est équipé de deux microphones, l'un intégré et l'autre via USB, et je souhaite enregistrer à l'aide du micro USB. La classe Stream a un input_device_index pour la sélection du périphérique, mais on ignore comment cet index est corrélé aux périphériques. Par exemple, comment savoir à quel index de périphérique 0 fait référence? Si je devais deviner, je dirais que 0 fait référence au périphérique intégré, tandis que 1 correspond au périphérique USB, mais j'aimerais trouver un moyen par programme de le confirmer. Sous Linux, existe-t-il un moyen d'obtenir une liste de ces index et des périphériques auxquels ils font référence?

7
Cerin

vous pouvez utiliser: 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')
16
slegroux

Il suffit d'utiliser arecord -l pour répertorier tous les périphériques d'entrée disponibles.

0
TheHlavi

Je ne sais pas à propos de PyAudio, mais avec le module sounddevice ça va comme ça:

python3 -m sounddevice
0
Matthias