如何将numpy数组流式传输到pyaudio流中?

Yot*_*tam 3 python audio numpy pyaudio

我正在编写一个代码,该代码应该根据用户的操作向用户提供一些音频输出,并且我想生成声音而不是wav要播放固定数量的文件。现在,我要做的是生成numpy格式的信号,将数据存储在wav文件中,然后将同一文件读入pyaudio。我认为这是多余的,但是,我找不到办法。我的问题是,我可以直接将numpy数组(或常规列表)流式传输到pyaudio中进行播放吗?

小智 5

如果只是播放而无需同步到任何内容,则可以执行以下操作:

# Open stream with correct settings
stream = self.p.open(format=pyaudio.paFloat32,
                         channels=CHANNELS,
                         rate=48000,
                         output=True,
                         output_device_index=1
                         )
# Assuming you have a numpy array called samples
data = samples.astype(np.float32).tostring()
stream.write(data)
Run Code Online (Sandbox Code Playgroud)

我使用这种方法,对我来说效果很好。如果您需要同时录制,则此操作将无效。