假设我的麦克风音频正在实时传输到 Zoom 应用程序(一般可以是任何应用程序)
我想让此音频
filter
在发送到应用程序之前通过可执行文件 (a) 运行。简单来说,此管道机制:raw input | filter | application
。我需要在我的 中维护一个缓冲区
filter
,假设大约 50ms(因为音频预处理是动态的),并且仅有的然后冲洗对于应用程序来说,就像 I/O 通常如何工作一样。假设我用 C++ 编写这段代码(尽管我更倾向于使用 Python,因为音频预处理涉及一些 ML)。
(实际上,应用程序将从我的终端接收延迟 50 毫秒的音频,但实际上这对我来说并不重要。)
如何实现这一点?由于这是一个相当广泛的领域,我想具体了解以下方法:
- 捕获原始音频数据(假设来自耳机)
- 使用 C++ 可执行文件(最好是 Python)处理原始音频缓冲区,将其保存在 50ms 的缓冲区中,然后
- 将后处理缓冲区刷新到直播流应用程序(例如 Zoom 等)
我已经看到了使用 pulseaudio post 消除噪音帖子,但我想要的音频处理比仅仅使用内置 pulseaudio 模块或使用 sox 分析噪声更为通用。