Я хотел бы записать только 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()
Можно ли записывать только определенный канал с моего устройства ввода