Grumpy_Mike:
Well the Max9814 board should be biased correctly so there is no worry about that one, providing the supply matches the processor’s supply voltage. However the AGC while in general is a great feature when it is used to handle speech with gaps in will tend to distort when the sound suddenly starts and the gain is rapidly turned down.The trick to sound at low bit resolutions is to keep the samples close to the maximum. So for example if you use that board with the internal A/D you are digitising at 10 bits. Where as if the playback is through PWM that is only 8 bits. So the normal response is to throw away two bits of the recording. This leaves you with, in effect, only digitising at 8 bits.
One way round this loss of resolution is to record onto you SD card at 10 bits, so that is two bytes per sample. Then have a code that scans through that file and finds the peak sample. Then works out a scaling factor than will scale that peak to a full 8 bits, that is 255. Then go through the recording again applying that scaling factor to each sample and storing it into another file for playback by PWM.
This is in effect what I did here to get these samples:-
https://m.youtube.com/watch?v=WShVFcrFpwU
Although I did do this process on a laptop using the Processing language, there is nothing to stop you doing it on board an Arduino.
Hi Mike, Thank you soooo much for such a detailed reply. However, this sounds very advanced for me. I will need time to really study it. Appreciate your taking the time replying my question!