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

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

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

最佳答案

1)我建议在Pulseaudio中这样做;通过过滤器重定向ALSA输出将更加困难。

2)已经有像Pulset的module-ladspa-sink这样的模块,详细信息例如here。该模块将LADSPA处理的声音转发到master,但是当您同时需要麦克风输入和计算机声音输出时,您可能必须使用其他一些模块(例如组合接收器,空接收器作为虚拟输出接收器)和/或pulseaudio回送命令将它们通过不同的通道集转发到LADSPA模块。

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

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

4)如果其他所有操作失败,或者仅凭LADSPA过滤器还不够,请查看此模块(或其他Pulseaudio模块)的source,并进行相应的修改。

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

10-10 08:48