首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iphone应用程序中的音频反馈问题

iphone应用程序中的音频反馈问题
EN

Stack Overflow用户
提问于 2013-02-23 22:10:15
回答 3查看 442关注 0票数 2

iphone有一个实时音频应用程序,它增加了一些效果(混响、延迟等)。输入声音并回放。所以我有一个经典的放大的音频回路问题。你可能对此很熟悉。当你把麦克风靠近扬声器时,这种情况经常发生(输入的声音被放大,输出,回到扬声器,等等)。

如果能听到如何解决这个问题的想法,那就太好了。

(我已经试过:

  1. 限制最大声音音量,以防止反馈增长。
  2. 使用过滤器,限制某些频率。
  3. 从新输入信号中减去以前的输出信号(我认为这是最好的方法,但这并不完美。即使时机很好(我认为是这样),这种方法也会破坏声音。

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-24 13:33:57

你的数字3和2号加起来可能是最好的。查找自适应声回波抵消。

使用nLMS的AEC很容易实现,但需要一些CPU。如果使用较低的采样率,则可能会起作用,这取决于回波在ms中的时间长短。

有一个快速版本,使用FFT进行适应。它没有那么快地适应,但在没有长回音尾的移动应用程序上可能会很好。

AEC的工作方式是将扬声器和麦克风之间的回声路径收敛到声学模型上,然后使用该模型从麦克风输入中减去输出回波。它知道出了什么,它把它通过模型,并得到一个回声将是什么猜测,然后从输入移除回声。随着时间的推移,模型变得越来越好,回声也越来越小。

票数 5
EN

Stack Overflow用户

发布于 2013-03-07 10:13:16

你可能已经知道了这一点,但为了安全起见--确保你正在将输出路由到正确的扬声器。正如它所指出的,当您设置“播放和录制”音频会话类别时,默认的输出是最高的扬声器(您在通话期间听的那个)。底部还有另一个扬声器,因为它离麦克风更近,它会产生更多的反馈。如果您设置了“播放和录制”类别,通常需要手动操作才能路由到错误的(底部)扬声器,但我想我可以肯定地提到它。

票数 1
EN

Stack Overflow用户

发布于 2013-03-09 14:24:33

为了帮助其他人解决这个问题: AEC加上高通、低通滤波器的组合.

http://speex.org,这是AEC的工作。高通低通过滤器很容易实现。(有关LP、HP过滤器的实现,请参阅Apple示例)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15046327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档