Чтение вывода звуковой карты с помощью Python

Я успешно использовал pyaudio для чтения и записи данных с микрофона. Я хотел бы сделать то же самое для вывода звуковой карты. (т.е. воспроизведение wavfile и открытие потока с помощью pyaudio и считывание покадрового вывода звуковой карты).

Для чтения микрофона я открыл поток pyaudio, как показано ниже

stream = pyaud.open(
    format = pyaudio.paInt16,
    channels = 1,
    rate = 22050,
    input_device_index = 0,
    input = True)

когда я изменяю input_device_index на 1, я получаю следующую ошибку

IOError: [Errno Неверное количество каналов] -9998

Ниже system_info для звуковой карты MacBook

Default Devices:
================
Default Input Device : 0
    defaultSampleRate: 44100.0
    defaultLowOutputLatency: 0.01
    defaultLowInputLatency: 0.00199546485261
    maxInputChannels: 2
    structVersion: 2
    hostApi: 0 (Core Audio)
    index: 0
    defaultHighOutputLatency: 0.1
    maxOutputChannels: 0
    name: Built-in Microph
    defaultHighInputLatency: 0.0121541950113
    --------------------------------
Default Output Device: 1
    defaultSampleRate: 44100.0
    defaultLowOutputLatency: 0.00655328798186
    defaultLowInputLatency: 0.01
    maxInputChannels: 0
    structVersion: 2
    hostApi: 0 (Core Audio)
    index: 1
    defaultHighOutputLatency: 0.0167120181406
    maxOutputChannels: 2
    name: Built-in Output
    defaultHighInputLatency: 0.1
    --------------------------------

Любая помощь приветствуется!!

П.

1 ответ

Решение

Некоторые звуковые карты имеют каналы Capture, которые являются выходными данными звуковой карты. Они могут работать, а могут и не работать правильно (похоже, музыкальная индустрия пыталась ликвидировать эти порты).

Следующее для Linux... Например. в моей системе только стандартный встроенный аудиопорт ALC887. В /proc/asound/card0 я нахожу порт pcm2c со следующей информацией:

card: 0
device: 2
subdevice: 0
stream: CAPTURE
id: ALC887-VD Alt Analog
name: ALC887-VD Alt Analog
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 1
subdevices_avail: 1

Эти устройства захвата должны появиться в вашем аудио микшере.

Другие вопросы по тегам