audio - 为 Alsa/Pulse 环回创建实时音频过滤器

标签 audio pulseaudio alsa filter

我想重现active noise-control的效果使用普通耳机和 Linux 计算机的耳机,以便实时静音任何环境噪音(不仅仅是从背景噪音中清除声音输入)。

计划是通过 Alsa/Pulseaudio 环回麦克风输入,应用前馈窄带降噪滤波器(作为 LADSPA 滤波器?),然后将结果输出到耳机。

问题是我不知道从哪里开始过滤器部分:我应该如何将它连接到 Alsa/Pulseaudio?是否有某种 C API 可用于创建自定义过滤器?

最佳答案

1) 我建议在 Pulseaudio 中执行此操作;通过过滤器重定向 ALSA 输出将更加困难。

2) 已经有 module-ladspa-sink 之类的模块对于 Pulseaudio,详细信息,例如here .该模块将 LADSPA 处理的声音转发到 master ,但由于您需要麦克风输入和计算机声音输出,您可能必须使用一些其他模块(例如,组合接收器、空接收器作为虚拟输出接收器)和/或 pulseaudio 环回命令在不同的集合上转发它们 channel 到 LADSPA 模块。

也许您也可以加载两个 LADSPA 模块,将一个用作虚拟输出,将麦克风输入环回另一个,并从单个 LADSPA 插件处理这两个模块 - 我没有尝试过,但如果它有效,它可能会更简单。

3) Pulseaudio 也已经有降噪和回声消除模块,例如用于 Pulseaudio。在基于 Linux 的智能手机中;也许其中之一足以满足您的需求。谷歌。

4) 如果一切都失败了,或者如果仅 LADSPA 过滤器还不够,请查看 source此模块(或其他 Pulseaudio 模块),并相应地对其进行修改。

关于audio - 为 Alsa/Pulse 环回创建实时音频过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50539766/

相关文章:

linux - ALSA插件类型空

c - 将 gdb 与 alsa-lib-1.1.3 一起使用

ios - Phonegap NativeAudio 无法在 iOS 上播放

ios - iPhone音频资源

php - 用PHP创建一个特定频率的.wav文件

android - 如何停止背景媒体播放器

java - 在linux(PulseAudio)上使用混音器打开一行时得到java.lang.IllegalStateException

linux - Ffmpeg 4 音频和 1 视频输入到 4 视频输出性能问题

c - ALSA PCM调用的语义

perl - 使用 Term::ReadKey 检测按键;和系统写入音频流;