Как выбрать устройство для записи (Python PyAudio) - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь выбрать устройство для использования, когда я go для записи с использованием библиотеки PyAudio в Python, но я не знаю, как это сделать. Я нашел этот код в Интернете, который показывает все доступные устройства ввода:

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))

Однако это работает, как выбрать устройство для использования из этого списка? Кажется, я нигде не могу найти в Интернете информацию о выборе устройства для использования, поэтому, если кто-нибудь может мне помочь, это было бы здорово, спасибо.

1 Ответ

0 голосов
/ 29 февраля 2020

После того, как вы перечислили устройства (распечатав их, как показано в коде из вопроса), вы можете выбрать, какой индекс устройств вы хотите использовать.

, то есть он может распечатать

('Input Device id ', 2, ' - ', u'USB Sound Device: Audio (hw:1,0)')
('Input Device id ', 3, ' - ', u'sysdefault')
('Input Device id ', 11, ' - ', u'spdif')
('Input Device id ', 12, ' - ', u'default')

А затем, чтобы начать запись с этого указанного c устройства, вам нужно открыть поток PyAudio:

# Open stream with the index of the chosen device you selected from your initial code
stream = p.open(format=p.get_format_from_width(width=2),
                channels=1,
                output=True,
                rate=OUTPUT_SAMPLE_RATE,
                input_device_index=INDEX_OF_CHOSEN_INPUT_DEVICE, # This is where you specify which input device to use
                stream_callback=callback)

# Start processing and do whatever else...
stream.start_stream()

Для получения дополнительной информации о параметрах потока, посмотрите на конфигурацию, указанную в официальной документации PyAudio .

Если вам нужна помощь с большей частью скрипта, я рекомендую взглянуть на простой пример неблокирующей аудио с PyAudio, доступен на их документация.

...