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:

  1. A noise gate, which eliminates or lessens background noise which has an amplitude of less than X (ie: -24DB).
  2. 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.
  3. 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.

  • 2
    SoX? – Stéphane Chazelas Apr 8 '13 at 21:49
  • @StephaneChazelas Please submit your comment as an answer and I'd be happy to accept it. – Naftuli Kay May 10 '13 at 19:46

The LADSPA plugins are your friend here. You will find compressors, gates, lo/hi pass filters and many more like this.

To actually use the plugins you need a program which allows assembling these plugins into aprocessing chain. Ecasound commes to my mind (haven't used it myself) but there are many more.

| improve this answer | |

As @Stephane Chazelas pointed out above, SoX is the answer.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.