【问题标题】:PyAudio - multiple channel management \ DemixingPyAudio - 多通道管理 \ Demixing
【发布时间】:2017-06-29 02:51:03
【问题描述】:

我想计算这段代码的单声道数据(为了计算声道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')

如何为每个通道创建一个数据数组以使用相关函数?代码的最后几行正确吗?

谢谢

【问题讨论】:

  • 您似乎又在问同样的问题overover。我建议你应该从小处着手,先学习一些关于 NumPy 的基础知识(网上有很多很好的教程)。您可能想看看thisthat
  • 完成此操作后,您可以再看看我之前向您展示过的example

标签: python audio raspberry-pi pyaudio cross-correlation


【解决方案1】:

我使用print loudness(samps[:,0]), loudness(samps[:,3]) 找到了答案。它在外壳上打印“麦克风 1 响度,麦克风 4 响度”

【讨论】:

    猜你喜欢
    • 2021-09-14
    • 2014-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多