当前位置: 首页 > 面试题库 >

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

令狐宣
2023-03-14
问题内容

目前,我正在使用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时,它看起来就像地狱。



 类似资料:
  • 问题内容: 是否有使用Java直播视频的良好库?理想情况下,管道的两端都应使用Java编写,但我最关心的是视频播放器。您会推荐什么软件? 更新 :似乎VLC引入了1-2秒的延迟。我需要真正的实时视频流。记录到播放的延迟必须小于300ms。 问题答案: 我见过的最好的视频播放/编码库是ffmpeg。它播放您扔给它的所有内容。(它是MPlayer使用的。)它是用C编写的,但是我发现了一些Java包装器

  • 问题内容: 我正在另一台PC上实现从MIC到Java服务器的实时流传输。但是我只听到白噪声。 我已经附上了客户端程序和服务器程序 并且服务器端没有问题。它与android客户端AudioRecord完美运行。 问题答案: 因此,我用正弦波(或某种在某种意义上类似正弦波的东西)填充了麦克风,并且您的程序运行正常。 因此,我的具体更改是: 显然,我将其误解为一个512字节长的片段,并破坏了正弦波,但事

  • 问题内容: 这相当不错,但是我正在尝试学习/理解python中的函数式编程。如下代码: 产生: 问:有没有一种方法可以在python中使用map或任何其他功能工具来产生以下内容而没有循环等。 顺便提一下,如果foo和bar之间存在依赖关系,则实现将如何更改。 例如 并打印: PS:我知道如何使用if,循环和/或生成器天真地做到这一点,但是我想学习如何使用功能性工具来实现这一点。 这仅仅是在mapt

  • 问题内容: 我目前正在尝试将直播麦克风音频从Android设备流式传输到Java程序。我首先在两个Android设备之间发送实时音频,以确认我的方法正确。在接收设备上几乎没有任何延迟地可以完美地听到音频。接下来,我将相同的音频流发送到一个小型Java程序,并验证了数据也已正确发送到此处。现在,我想要做的是对这些数据进行编码,并以某种方式在运行Java程序的服务器上对其进行回放。我宁愿在使用HTML

  • ThingJS PaaS 平台还提供一下相关工具来给项目开发助力,浏览下面的网页,帮助您快速掌握图表制作工具 ChartBuilder 和 LiveServer 部署包的使用方法。 ChartBuilder 用户手册 LiveServer 用户手册 ThingJS 平台三维模型制作指南

  • hash工具,主要用来计算字符串的hash值。提供三种hash算法, BKDR, JS, DJP. 根据需要自行选择 方法名 方法说明 BKDRHash 采用bkdr算法计算hash值 JSHash 采用js算法计算hash值 DJPHash DJP hash 算法,冲突率低,但是算法比较复杂,效率不是很高。 AjaxResult 用来返回json视图。提供了以下API: ajaxSuccessR