急求音频处理算法高手帮忙

赖勇浩赖勇浩

我们在制作一个工具软件:

手机拾音 ->使用UDP协议通过 wifi 传给同一局域网的PC(windows) -> 音频处理 -> 播放

特殊之处在于:

1. 手机、PC、音箱等所有设备都在同一个较为空旷的长方体空间里;
2. 上述的拾音、传输、处理、播放的过程是周期性的,每一个周期极为短暂,不超过100ms;

出现的问题:

部分手机(主要是Android)出现严重的声反馈。

不起作用的解决方向:

1. 调整手机的拾音形式、模式。目前已经使用 OpenGL ES 方式使用最短周期拾音,模式也是通话模式、识别模式都尝试过了。
2. LMS、NLMS。这类解决回声的算法不起作用。
3. 不是性能问题,拾音相关的代码、网络接收发送的代码、音频处理的代码,都使用C/C++编写,极注重性能问题。

可能起作用的解决方向:

采用反馈抑制算法实现软件反馈抑制器,大概有以下算法可以用:
cn.mathworks.com/help/d
cn.mathworks.com/help/s
cn.mathworks.com/help/m
cn.mathworks.com/help/m
IIR Notch 是陷波的,czt 是识别反馈点的,fft/ifft你懂的。
额外可以考虑使用移频:
cn.mathworks.com/help/s

最后,我们的诉求:

使用上述算法,实现软件反馈抑制器,然后编译成一个DLL,导出一个处理函数,声明如下:
__declspec(dllexport) void
process_samples(short* samples, int size, int freq)
我们可以提供DLL模板文件、使用以上函数实现软件反馈抑制器相关的论文、音频处理算法方面的电子书籍等。

以上都是通过付费的方式对您的创造性劳动表示衷心的感谢,具体酬额请和我们沟通。

文章被以下专栏收录
28 条评论
推荐阅读