交错两个 numpy 1D 数组用于立体声音频输出



我有两个numpy float32数组:

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

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

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

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

如何将两个阵列连接成一个samples 2-D 数组,并将它们交错以在输出时获得适当的立体声 WAV?

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

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

如果您知道您的数组是 1D 的,另一种选择是垂直堆叠并转置:

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

我会使用 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)