我正在为我的android应用程序添加一种降噪机制,以保存野生动物的声音。
然后,我考虑直接在我的java代码中添加C++奥迪噪声降噪算法,并且只考虑到奥迪的这一部分。该文件可在这里公开使用:NoiseRemoval.cpp。在我看来,这个算法似乎很好,但也有一些可以接受的缺点。
当然,我可以将它移植到java,但是它有许多递归的includes
,而且它将是(相当大的?)慢点。不值得这么做。
这有道理吗?修改代码会太难吗?
发布于 2022-06-21 07:17:14
如果您还没有这样做,那么第一件事就是让c代码在Visual或cLion中工作。您可以输入一些示例输入文件,并以迭代的方式将噪声消除函数应用于该文件,逐块地模拟实时输出。现在,如果输出令人满意,您可以转到下一部分。
您可以使用JNI(),它充当从java调用本机库函数的接口。你可以直接读到JNI,这不会花太多时间。然后,只公开需要从java调用的必要处理函数之后,就可以绑定c代码。然后,使用JNI将您的c噪音取消库连接到您的java项目,并从java和平地调用c函数,而无需重写从c到java的所有代码,并进行必要的调整。此外,您还可以使用webRTC噪声抵消/自动增益控制模块,如果它不能实时工作,就可以实时工作。
https://stackoverflow.com/questions/72651225
复制相似问题