Python:使用PyAudio(或其他工具)进行实时音频流传输?

发布于 2021-01-29 15:06:23

目前,我正在使用NumPy从NumPy数组生成WAV文件。我想知道是否有可能在实际将NumPy数组写入硬盘之前实时播放它。我发现使用PyAudio的所有示例都依赖于首先将NumPy数组写入WAV文件,但是我想拥有一个预览功能,该功能只是将NumPy数组吐出到音频输出。

也应该跨平台。我正在使用Python 3(Anaconda发行版)。

关注者
0
被浏览
84
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    这已经奏效了!感谢帮助!

    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时,它看起来就像地狱。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看