PyAudio - управление несколькими каналами \ Demixing
Я хочу рассчитать данные для одного канала (чтобы рассчитать взаимную корреляцию звука между каналом 1 и каналом 4) этого кода:
import time
import numpy as np
import pyaudio
import scipy
from scipy import signal, fftpack
pyaud = pyaudio.PyAudio()
#open the stream
stream = pyaud.open(
format = pyaudio.paInt16,
channels = 4,
rate = 16000,
input_device_index = 4,
output = False,
input = True,
frames_per_buffer=2048,)
while True:
rawsamps = stream.read(2048)
samps = np.fromstring(rawsamps, dtype=np.int16)
frames_per_buffer_length = len(samps) / 4 #(channels)
assert frames_per_buffer_length == int(frames_per_buffer_length)
samps = np.reshape(samps, (frames_per_buffer_length, 4)) #4 channels
Предполагая, что исходные данные чередуются.
Это функция, которую мне нужно использовать:
signal.correlate(n1, n2, mode='full')
Как я могу создать массив данных для каждого канала, чтобы использовать функцию корреляции? последние строки кода верны?
Спасибо
1 ответ
Я нашел ответ, используя print loudness(samps[:,0]), loudness(samps[:,3])
, Он печатает в оболочке "микрофон 1 громкость, микрофон 4 громкость"