交错两个numpy 1D阵列,用于立体声音频输出

时间:2017-05-19 11:20:02

标签: python arrays numpy

我有两个numpy float32 arrays

a = numpy.array(c)
b = numpy.array(d)

这两个代表两个单声道音频流。

我想使用scipy wavwrite将它们写入立体声WAV文件:

scipy.io.wavfile.write(wav_name, sampling_rate, samples)

如何将两个阵列连接成一个samples二维数组,并将它们交错以便在输出端获得正确的立体声WAV?

2 个答案:

答案 0 :(得分:2)

只需确保ab是列向量,并将它们水平堆叠:

 result = np.hstack((a.reshape(-1, 1), b.reshape(-1,1)))

另一种选择,如果你知道你的数组是1D,那就是垂直堆叠和转置:

result = np.vstack((a, b)).T

答案 1 :(得分:-1)

我会使用numpy.dstack:

left = numpy.array(left_data)
right= numpy.array(right_data)
stereo_data=numpy.dstack((left,right))[0]
scipy.io.wavfile.write(stereo_data)