запись одного канала с помощью Pyaudio - PullRequest
0 голосов
/ 19 июня 2019

Я хотел бы записать только 5-й канал моего микрофонного массива.

Я хочу сделать это на моем устройстве Linux, работающем с Gentoo Linux с Python 2.7.

Что я уже пробовал,записать 5 каналов, а затем разделить 5-й канал.

Это работает, но замедляет обработку.

CHUNK = 1024
BUF_MAX_SIZE = CHUNK * 10
q = Queue(maxsize=int(round(BUF_MAX_SIZE / CHUNK)))

audio_source = AudioSource(q, True, True)

FORMAT = pyaudio.paInt16
CHANNELS = 5  # All channels to be recorded
CHANNEL = 5  # single channel to be processed
RATE = 16000

def pyaudio_callback(in_data, frame_count, time_info, status):
    try:
        in_data = in_data[CHANNEL-1::CHANNELS]
        q.put(in_data)
    except Full:
        pass # discard
    return (None, pyaudio.paContinue)  

stream = audio.open(
    format=FORMAT,
    channels=CHANNELS,
    rate=RATE,
    input=True,
    frames_per_buffer=CHUNK,
    stream_callback=pyaudio_callback,
    start=False
)

stream.start_stream()

Можно ли записывать только определенный канал с моего устройства ввода

...