When a person speaks far away from a mobile, the voice recorded is low. When a person speaks near a mobile, the voice recorded is high. I want to is to play the human voice in equal volume no matter how far away (not infinite) he is from the phone when the voice is recorded.
What I have already tried:
adjust the volume based on the dB such as AVAudioPlayer But the problem is that the dB contains all the environmental sound. So it only works when the human voice vary heavily.
Then I thought I should find a way to sample the intensity of the human voice in the media which leads me to voice recognition. But this is a huge topic. I cannot narrow the areas which could solve my problems.