将 pyaudio 数据块组合成一个更长的块

Combining chunks of pyaudio data into a single longer chunk

我有一个 pyaudio 流 运行 像这样:

self.stream = self.microphone.open(format=pyaudio.paInt16, channels=1, rate=self.SAMPLING_RATE, input=True, output=True, frames_per_buffer=self.SAMPLES_PER_CHUNK)

我在通过 numpy 解码后将每个块保存到一个数组中,如下所示:

data = self.stream.read(self.SAMPLES_PER_CHUNK)
data = np.frombuffer(data, dtype='b')
recorded.append(list(data))

稍后我希望能够将这些块组合成一个数组并将它们保存到这样的 wav 文件中:

from scipy.io.wavfile import write

total = []
for i in recorded[start:stop]:
     total += i # the issue is here

write('output2.wav', 48000, np.array(total).astype('int16'))

但显然它不像合并数组那么简单,因为输出文件始终只是静态片段。有人能告诉我应该怎么做吗?

我实际上意识到这是一个解码数据的问题,这意味着如果你改变这个:

数据=np.frombuffer(数据,dtype='b')

为此:

数据=np.frombuffer(数据,dtype='int16')

其余代码工作正常