我正在进行的项目允许用户使用他们的 iphone 作为麦克风通过 PA 系统讲话。不幸的是,iOS 中现有的音频单元并没有消除 PA 扬声器和 iphone 麦克风之间的反馈,并且存在即时且令人衰弱的反馈。有没有办法使用现有算法来克服这个问题?如果软件反馈消除不是一个选项,是否可以将 iphone 麦克风的灵敏度调整为更具方向性?
是否有可以在 iOS 中实现的现有反馈消除算法?
信息处理
声音的
数字通信
软件实现
回馈
2022-02-02 20:20:02
1个回答
我自己从来没有实现过这个,但这是我的(可能不正确的)想法:
反馈消除的一般方法是
- 检测反馈的频率
- 调整滤波器以消除这些频率
第 2 步相对容易,特别是如果您使用的是 iOS 并且有一个可以为您完成的音频单元。有一些事情需要注意——因为你需要一个相当陡峭的过滤器,你需要确保它即使在极端环境下也能保持稳定——但希望 Apple 的人已经为你处理好了这些东西。
第 1 步比较棘手——你怎么知道某些东西是反馈而不是音频的真实部分?有一些与回声消除和自适应过滤相关的高级技术可以做到这一点,但我不知道有任何广泛可用的代码或库。您的特定用例可能有一些捷径,例如,如果您只处理语音,您可能能够简单地跟踪音高,并且如果单个音高足够强,则假设它是反馈的结果,但即使这样做足够快可能不是微不足道的。
请注意,这整个过程通常需要连续/自适应地进行,至少在某种程度上确保麦克风和扬声器的移动不会引起新的反馈。
有几项与此相关的专利,主要是因为它是设计助听器的一个重要方面。也许其中一些已过期并且您使用它们:
(注意,维基百科提到了另一种基于音高转换的方法。我对此并不熟悉,听起来很傻,但可能值得研究。)
其它你可能感兴趣的问题