如何放大远距离录制的声音

How to amplify the voice recorded from far distance

当一个人在远离手机的地方说话时,录制的声音很小。 当一个人在手机附近说话时,录制的声音很高。我想要的是在录制语音时,无论他离 phone 有多远(不是无限),都以相同的音量播放人声。

我已经尝试过的:

  1. 根据dB调整音量如AVAudioPlayer 但是 问题是 dB 包含所有环境声音。所以 它仅在人声变化很大时才有效。

  2. 然后我想我应该想办法对强度进行采样 媒体中的人声,这让我想到了语音识别。但 这是一个很大的话题。我无法缩小范围 解决我的问题。

从远处录制的声音存在严重损坏。一个问题是噪音,另一个是回声。要放大它,您需要从回声和噪音中清除声音。理想情况下,您需要使用更好的麦克风来做到这一点,但如果只有一个麦克风可用,您就必须应用信号处理。您感兴趣的信号处理算法有:

  1. 降噪。您可以在 Google 上找到许多样本 到非常高级的
  2. 回声消除。同样,您可以找到许多实现。

上面没有现成的库,你必须自己实现大部分,你可以看看同时具有噪声和回声消除的WebRTC代码,如这个问题中所述:

Is it possible to reduce background noise while streaming audio on the iPhone?