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

kra*_*ter 2 iphone audio audio-recording

有一个实时的iPhone音频应用程序,它添加一些效果(混响,延迟等)输入声音并播放它.所以我有一个经典的放大音频循环问题.你可能对此很熟悉.当麦克风靠近扬声器时,它经常发生(来自输入的声音被放大,熄灭,重新进入等等).

很高兴听到任何想法如何解决这个问题.

(我已经尝试过:

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

谢谢.

c.f*_*lou 5

你的3号和2号组合可能是最好的.查找自适应声学回声消除.

使用nLMS的AEC非常容易实现,但需要一点CPU.如果您使用较低的采样率,它可能会起作用,具体取决于您的回声的毫秒数.

有一个使用FFT进行自适应的快速版本.它不能很快适应,但在没有长回声尾的移动应用程序上可能会很好.

AEC的工作方式是它收敛于扬声器和麦克风之间回声路径的声学模型,然后使用该模型从麦克风输入中减去输出回声.它知道发生了什么,它通过模型得出它并获得关于回声将是什么的猜测,然后从输入中移除该回声.随着时间的推移,模​​型变得更好,回声更小.