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 громкость"

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