For an Ethernet based public address hardware that we manufacture (eSpeak Netzwerkdurchsage), we use Windows PCs with our own program to generate MP3 frames from a microphone on the PC. The task is to write a Windows dirver software to take the audio stream from the USB mic input, process it and present it to our program as optimized audio input stream.
As the (possibly some hundred) amplifiers in the network will shut off at high input levels, we need the microphone input to be filtered. First it should be amplified such that a user who speaks softly or is too far away from the mic will still be heard. Second the signal should be compressed for optimum speech intelligibility. Third it should be limited not to overload the amplifier. As we are working from Power over Ethernet, we have to squeeze the most out of the power available, so the amplifier operates near its maximum. Hence, *** the limiter should not only cut off peaks but limit the effective power *** in the stream to a maximum. This requires integration of the signal over time.
It should also make use of the Windows's functionality to set the mic level if the input level is too high (like Skype does - you can see the mic level slider move in the hardware setting when this function is activated in Skype). The mic we are using is based on the AK5370 IC (like the now obsolete Logitech USM mic) that supports level setting via USB.
We expect the freelancer to have done audio driver work on Windows before or at least knowledge about the differences in audio handling between XP and Win7. Execution time of this project should be within some weeks.