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

标签 audio core-audio audio-streaming voip

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

最佳答案

基本方法:

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

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

任何多轨音频应用程序都能够做到这一点(例如 audacity、prototools 或 logic)。

对于更复杂的信号,您需要更智能地过滤,理想情况下,您会在信号干扰之前将其抑制(在 Skype 场景中)。

Sounds cool, and makes a lot of sense theoretically, but I still don't really know how I should go about doing it. I am fairly experienced with Logic, but I don't know how to determine the delay. Should i just make a copy of the file, invert it and move it around until it sounds good?



只需在视觉上排列 2 个信号的瞬变以确定延迟。然后您必须放大并确定样本的延迟以实现最佳消除。如果它没有关闭,它不会取消而是添加。

What do you mean by amplitude offset, is that the volume difference between the original and the echo noise?



确切地。除了非常不寻常的情况外,回声的幅度将与源不同(通常较低),您需要知道这种差异才能最好地消除它(此偏移应用于反相信号,顺便说一句)。如果幅度错误,那么您将引入反相信号(可听见),或者,在奇怪的情况下,回声比声源大,只减少部分回声。

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

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

关于audio - 从音频文件中删除回声的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10541282/

相关文章:

audio - Asterisk :如何在一个调用中录制多个音频文件

ios - 发布 iOS 音频单元

buffer - iOS - RemoteIO AudioUnits,可能有 2 个?

objective-c - 在iOS上将立体声音频拆分为单声道流

streaming - 如何在 IceCast 服务器更改流时连续传输音频

android - 无法在我的 android 项目中包含 FFmpegMediaPlayer 库

c++ - PortAudio 实时串流和处理

ios - 如何从麦克风实时或从 iOS 中保存的音频文件中获取原始音频帧?

javascript - JavaScript节拍器:HTML5内部动画创建奇怪的回声

python - 将录制的音频从浏览器持久保存为WAV文件到Python API