aiXander/Realtime_PyAudio_FFT

Realtime audio analysis in Python to extract audio features from streaming audio and send them over OSC to any client app.

解决的问题

该项目为实时音频输入(如麦克风或声卡)与创意应用程序之间提供了一个低延迟桥梁。它解决了将处理过的、“即用型”音频数据(如节拍触发器、频带和节奏)导入 VJ 软件、游戏引擎或自定义脚本的问题,而无需在这些应用程序中编写复杂的信号处理代码。

工作原理

服务器捕获原始音频,并使用 NumPy 和 SciPy 在优化的工作线程中执行所有繁重的信号处理任务,包括滤波、FFT 分析和起始检测。然后,它通过两种方式广播此数据:

  • OSC (Open Sound Control): 用于实时性能工具的高速、低延迟流。
  • WebSockets: 一个双向通道,允许您从基于浏览器的 UI 控制设置(如频带范围或灵敏度),同时接收数据更新。

适用人群

它专为需要将视觉效果或游戏逻辑与实时音频同步的创意编码人员、VJ 和开发人员设计。对于想要“即插即用”音频特征源,且即使在 Raspberry Pi 等低功耗硬件上也能保持快速运行的 TouchDesigner、Max/MSP、Unity 或 p5.js 用户来说,它是理想的选择。

亮点

  • 低延迟: 目标端到端延迟为 8–15 ms。
  • 即用型特征: 输出自动缩放的频带能量(低/中/高)、用于底鼓/军鼓/镲片的起始触发器以及计算出的 BPM。
  • 基于浏览器的控制: 包含一个 UI,用于实时调整滤波器、保存预设和切换设置。
  • 高效: 使用无分配回调和向量化 C 优化路径,确保音频线程在高负载下保持稳定。

相关

  • 项目
  • 项目
  • 项目
  • 项目