I'm building a site which will have multiple audio lectures uploaded, as it's mainly a feed for a certain person's lectures.
What's annoying is that there are many things which can go wrong during recording, inevitable things.
- Someone slams their fist on the table: giant BANG at +5DB in the recording.
- Microphone placement (ie: an iPhone with a nice Blue mic) isn't great.
- The speaker's volume will change, sometimes dramatically.
- Background noise is found throughout the recording.
In audio mixing and mastering, I'd essentially just apply the following effects/modulations on the input files after finding some reasonable settings:
- A noise gate, which eliminates or lessens background noise which has an amplitude of less than X (ie: -24DB).
- A compressor, to account for bangs and for changes in volume. While still allowing for some variation in amplitude, it will dramatically smooth out everything in what we determine to be speaking range. This can also be used to account for a bad recording, boosting weak audio.
- A lo-pass/hi-pass filter, which will effectively remove frequencies not producible by a human.
I was wondering if a Linux library for this exists in the form of a command-line client. I know how to use FFMPEG to convert audio/video formats, but I'm not sure that it offers this functionality.
Alternatively, though I know that this isn't a programming site, I'd be happy writing something in Python or another language which would give me the result I'm looking for.