带缓冲的实时音频预处理

带缓冲的实时音频预处理
  • 假设我的麦克风音频正在实时传输到 Zoom 应用程序(一般可以是任何应用程序)

  • 我想让此音频filter在发送到应用程序之前通过可执行文件 (a) 运行。简单来说,此管道机制:raw input | filter | application

  • 我需要在我的 中维护一个缓冲区filter,假设大约 50ms(因为音频预处理是动态的),并且仅有的然后冲洗对于应用程序来说,就像 I/O 通常如何工作一样。

  • 假设我用 C++ 编写这段代码(尽管我更倾向于使用 Python,因为音频预处理涉及一些 ML)。

(实际上,应用程序将从我的终端接收延迟 50 毫秒的音频,但实际上这对我来说并不重要。)

如何实现这一点?由于这是一个相当广泛的领域,我想具体了解以下方法:

  1. 捕获原始音频数据(假设来自耳机)
  2. 使用 C++ 可执行文件(最好是 Python)处理原始音频缓冲区,将其保存在 50ms 的缓冲区中,然后
  3. 将后处理缓冲区刷新到直播流应用程序(例如 Zoom 等)

我已经看到了使用 pulseaudio post 消除噪音帖子,但我想要的音频处理比仅仅使用内置 pulseaudio 模块或使用 sox 分析噪声更为通用。

相关内容