我能找到的所有示例都是单声道的,带有CHANNELS = 1
. 如何使用 PyAudio 中的回调方法读取立体声或多声道输入并将其转换为 2D NumPy 数组或多个 1D 数组?
对于单声道输入,这样的工作:
def callback(in_data, frame_count, time_info, status):
global result
global result_waiting
if in_data:
result = np.fromstring(in_data, dtype=np.float32)
result_waiting = True
else:
print('no input')
return None, pyaudio.paContinue
stream = p.open(format=pyaudio.paFloat32,
channels=1,
rate=fs,
output=False,
input=True,
frames_per_buffer=fs,
stream_callback=callback)
但不适用于立体声输入,result
数组的长度是原来的两倍,所以我假设通道是交错的,但我找不到这方面的文档。