0
$\begingroup$

I have a noisy recording with some letters spoken out loud. I've noticed that the noise is easily recognizable when looking at a spectrogram of the audio. Is there anyway to set a power/frequency threshold for the spectrogram, and muting the parts which do not reach that threshold? (The noise doesn't have enough power in higher frequencies, as you can see in the spectrogram) Audio spectrogram, plotted using Octave specgram

$\endgroup$
  • $\begingroup$ I don't have enough rep to comment, but I just wanted to point out to everybody that this is the spectrogram for the solvemedia audio captcha. $\endgroup$ – vinzent Jul 14 '15 at 2:18
1
$\begingroup$

There exist solutions that are coarsely based on the idea that you propose: Threshold the spectrogram amplitudes to reduce/remove the noise part of the signal. Usually, this will bring about artifacts as e.g. the so-called musical noise and the application determines whether this is acceptable or not. In general, the more the noise is reduced the more negative effects the process has on the quality of the desired signal (i.e. the speech in this case).

As a first attempt I would suggest you to try the Noise Removal algorithm in Audacity (http://web.audacityteam.org/). Probably this will give satisfactory results and is sure worth a try as the software is free. If you're okay with spending money to most probably achieve better results, have a look at RX by iZotope (https://www.izotope.com/en/products/audio-repair/rx/). However, if you know the basics of digital signal processing and want to experiment yourself, a first thresholding algorithm will not be very complex in programming environments like e.g. MATLAB.

If you're interested in the background / signal processing methods that these algorithms are based on I would recommend the books by Vaseghi (http://www.amazon.com/Advanced-Digital-Signal-Processing-Reduction/dp/0470754060/ref=sr_1_1?ie=UTF8&qid=1432211838&sr=8-1&keywords=vaseghi) or Godsill and Rayner (https://www-sigproc.eng.cam.ac.uk/Main/SJGSpringer), the second of which can be downloaded for free from the internet.

$\endgroup$
  • $\begingroup$ The Audacity filter can only be used if you have a section with noise only. Without that, you can't use it as it will cheerfully remove your speech along with the noise. The spectrogram doesn't show anything like a noise only spot, but maybe the actual recording is longer and does have a section with noise only. $\endgroup$ – JRE May 21 '15 at 12:44
  • $\begingroup$ You're right, the Audacity filter requires a noise fingerprint. I guess I assumed that the actual recording is longer and that noise-only passages are available. But, on closer inspection I think I have spotted a short noise-only section at the beginning of the recording. That should be enough to take a fingerprint. And if it's not, repeating it should do... $\endgroup$ – applesoup May 21 '15 at 12:51
  • $\begingroup$ The beginning of the recording is a sentence (I don't care what happens to that specific part of the audio). But an energy threshold for the letters should work for the sentence though. $\endgroup$ – Mitsos101 May 21 '15 at 13:37
  • $\begingroup$ @applesoup Also, I have multiple similar recordings, but the letters aren't in the same position, so I just can't use Noise removal in the same period in time. $\endgroup$ – Mitsos101 May 21 '15 at 13:51

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.