目前,我正在使用NumPy从NumPy数组生成WAV文件。我想知道是否有可能在实际将NumPy数组写入硬盘之前实时播放它。我发现使用PyAudio的所有示例都依赖于首先将NumPy数组写入WAV文件,但是我想拥有一个预览功能,该功能只是将NumPy数组吐出到音频输出。
也应该跨平台。我正在使用Python 3(Anaconda发行版)。
这已经奏效了!感谢帮助!
def generate_sample(self, ob, preview): print("* Generating sample...") tone_out = array(ob, dtype=int16) if preview: print("* Previewing audio file...") bytestream = tone_out.tobytes() pya = pyaudio.PyAudio() stream = pya.open(format=pya.get_format_from_width(width=2), channels=1, rate=OUTPUT_SAMPLE_RATE, output=True) stream.write(bytestream) stream.stop_stream() stream.close() pya.terminate() print("* Preview completed!") else: write('sound.wav', SAMPLE_RATE, tone_out) print("* Wrote audio file!")
现在看来是如此简单,但是当您不太熟悉Python时,它看起来就像地狱。