从音频文件中删除回声的最佳方法是什么?

时间:2012-05-10 20:02:03

标签: audio core-audio audio-streaming voip

我想通过skype的回音消除功能运行音频文件。 iChat和其他VoIP也有此功能,但我找不到任何可以导入或打开我的文件的软件。

2 个答案:

答案 0 :(得分:1)

基本方法:

确定延迟。确定幅度偏移。

反转信号。申请延迟。调整幅度。播放两个音频文件。

任何多轨音频应用程序都能够做到这一点(例如大胆,protools或逻辑)。

对于更复杂的信号,您需要更加智能地进行过滤,理想情况下,您可以在信号干扰之前抑制信号(在Skype方案中)。


  

听起来很酷,理论上讲很有道理,但我仍然不知道应该怎么做。我对Logic很有经验,但我不知道如何确定延迟。我应该制作一份文件的副本,将其反转并移动它,直到听起来不错?

直观地排列2个信号的瞬态以确定延迟。然后,您必须放大并确定示例的延迟以实现最佳取消。如果它没有关闭,它将不会取消,但添加

  

幅度偏移是什么意思,是原始声音和回声噪声之间的音量差异?

完全。除了非常特殊的情况,回声将是与源不同(通常更低)的幅度,并且您需要知道这种差异以最佳地取消它(该偏移应用于反转信号,顺便说一下)。如果幅度错误,那么你将引入反转信号(听得见),或者在奇数事件中回声比声源更响亮,只减少部分回声。

一旦瞬态对齐(对样本)并且信号被反转,然后确定音量的差异 - 如果它太高或太低,它将不会尽可能多地取消。

同样,这是一种基本方法。您可以做很多事情来改进它,具体取决于您拥有的信号和处理器。在大多数情况下,这种方法会导致抑制,而不是消除。

答案 1 :(得分:1)

为了消除回声,您需要 TWO 文件:mic&参考。 麦克风是包含回声的信号。 参考是包含生成回声的原始音频的信号。

拥有这两个文件之后您可以开始构建回声删除逻辑。从关于该主题的维基页面开始。