SmartDeNoiser V1.1 (04/2009)

You can use SmartDeNoiser without paying a license fee, use it on as many computers as you want. However, SmartDeNoiser contains a nag screen which appears after you used it. You can donate some money (at least 8 EUR) with PayPal to get a code to disable it. This will help me to find the time to further improve SmartDeNoiser with new features and bugfixes.


What is SmartDeNoiser?

SmartDeNoiser detects and removes single, continuous noise tones in WAV audio files. It was built for removing the ~16 kHz noise tone that some TV and DVD productions contain. You can remove this noise before you create a DivX or MPEG/(S)VCD version of the movie. The audio editors at TV stations doesn't seem to notice that these noises even exist - probably because many people aren't able to hear these high frequencies (do you hear this noise?) or have poor audio equipment. Example of noise in a TV show.

This special audio filter program detects the noise and removes it. Analysis and a 'smart' denoising of the parts of your audio file that contain noise are done by SmartDeNoiser. SOX (SOund Exchange), a GPLed open source program, is used for equalizing (temp) files.

And this is how it works: The complete file is (virtually) divided in chunks with 250 ms playing time each. These chunks are analyzed for noise. Only noisy chunks (the chunks where noise was detected) are processed for removing the noise. Single noise chunks and single non-noise chunks are ignored. At the beginning and at the end of each group of noisy chunks, one additional chunk is used to fade in/out the cleaned audio stream.

SmartDeNoiser is limited for processing WAV files with 48 kHz, 16 Bit (stereo or mono) by now, because it's the usual format one has to cope with when processing MPEG2 videos.

SmartDeNoiser Screenshot


Where does the noise come from?

The noise is produced from TVs in conjunction with not properly shielded audio and video cables at film sets (where the movie or TV series was produced). For example, PAL television has 625 lines at 25 fps (frames per second). So in one second, a TV shows 625 * 50 = 15625 lines. When a video cable, which is not properly shielded, lies next to an audio cable, a 15625 Hz noise is induced.

Possible and detected noise frequencies and an explanation where they might come from (if you have better ideas, write me!):

15625 Hz PAL, 625 lines * 25 frames = 15625 Hz detected in german TV
15750 Hz NTSC, 525 lines * 30 frames = 15750 Hz not found yet (I don't have NTSC TV)
16276 Hz Original movie production with 24 fps recorded, but PAL TVs were used at the production to check how it's looking and 15625 Hz noise was also recorded. Then the material was played back at TV broadcasting with 25 fps. 15625 Hz * 25/24 = 16276 Hz. found in german TV
16406 Hz Original US TV 30 Hz production with 15750 Hz noise, then making 24 fps with reverse telecine algorithm (?) (audio is left untouched) and then play with 25 fps. Another possibility is the same as above with NTSC (24 fps production and 30 Hz TVs used at production). 15750 Hz * 25/24 = 16406 Hz found in US TV series in german TV
15000 Hz PAL production (25 fps) with PAL TV noise, then slowed down to 24 fps and telecine algorithm used to create 30 fps for NTSC TV broadcasting. 15625 Hz * 24/25 = 15000 Hz. This is unlikely, but may appear in german TV productions broadcasted at "NTSC countries" (France?).
15120 Hz 15750 Hz * 24/25 = 15120 Hz. I don't think that this happens.

You can see, the frequencies are produced by the original PAL and NTSC noise and conversion from 24 to 25 fps or vice versa.

For PAL material (25 fps), it is recommended to search for 15625 Hz and 16341 Hz (between 16276 Hz and 16406 Hz) noise.
For NTSC material (30 fps), it is recommended to search for 15750 Hz (default setting) noise and maybe 15060 Hz.


How to use SmartDeNoiser

  1. Load the file in SmartDeNoiser by...
  2. You can now check for noise by pressing the "Analyze" button (optional).
  3. Remove the noise by pressing the "DeNoise" button. This will remove noise tones at the frequency you set in the noise frequency combobox.

Notes:


Audibility Test

SmartDeNoiser has a unique feature to help you decide if your audio file contains audible noise, that is, if it contains noise that is loud and frequent enough to be disturbing. Depending on the maximum amplitude of your audio file, it can guess if noise is audible at one chunk and it then counts at how many chunks noise is audible. With this information, you can decide if you want to let SmartDeNoiser remove the noise (which takes some time) or not. Another situation is as follows: Imagine your source movie has AC3 sound. Now you have to decide to include the AC3 sound (which is not editable and may include noise) in your DivX version or to create a WAV file first, smartdenoise it and then create an MP3 file, which you include in your movie at last. SmartDeNoiser helps you find the answer, because it shows you if you would hear the noise if you included the AC3 stream.

Note: I strongly recommend testing this functionality first on the example files and on some "real life" audio files to verify and/or fine-tune the settings (even if the default settings are the ones that seemed best for me).

Note: Audibility Testing only means making additional analysis. It doesn't change the way noise is detected or removed in any way! Also with Audibility Test enabled, if you denoise a WAV file, the whole file is denoised, not only the chunks with 'audible' noise.

Here's another example of SmartDeNoiser finding much noise in a german educational TV show ("Telekolleg"):


Options

Before you change these values, read the explanation carefully. I suggest also to use a sound editing program for frequency analysis before and after usage of SmartDeNoiser when trying out other values. For testing, you can use the example files that can be found in the SmartDeNoiser\Examples directory after installation.

Detection

Noise Removal

Audibility Test


Noise Removal Example

In the Examples directoy, you can find a sine sweep audio file. It consists of a sine tone at 15000 Hz at the beginning and 17000 Hz at the end. The amplitude of the tone is the same the whole time. When setting the noise frequency to 16000 Hz, SmartDeNoiser detects the noise correctly in the middle of the file:

A frequency analysis of the resulting file, where SmartDeNoiser has removed the specified 16000 Hz noise looks like this:


The INI file

SmartDeNoiser writes all the settings and the window position into the SmartDeNoiser.ini if you press the "Save Settings" button. The values are loaded every time you start SmartDeNoiser.


Command Line Support

There are four ways to start SmartDeNoiser:
SmartDeNoiser.exe [Filename] The usual way to start the program, with or without giving a file to load.
SmartDeNoiser.exe {Filename} /check [Noise Frequency] Starts the program, checks for noise and asks the user if denoising should start if noise was found. The program doesn't exit even if no noise was found. The noise frequency is an optional parameter.
SmartDeNoiser.exe {Filename} /checklog [Noise Frequency] Starts the program, checks for noise and exits the program. A log file is created that tells the user how much noise was found in it's filename. This option makes it possible to check several files automatically when called through batch / script files. You can decide later if you want to denoise the file. The log file name is for example "sampleaudiofile - 25% Noise, 3% Audible Noise @ 16341 Hz.log". Note that existing log files with the same name are overwritten whereas log files or bak files generally aren't overwritten.
SmartDeNoiser.exe {Filename} /checkdenoise [Noise Frequency] Starts the program, checks for noise and automatically denoises it if noise was found. The program is closed in both cases. (Note: This option is quicker than /denoise if it's unlikely that your sound file contains noise.)
SmartDeNoiser.exe {Filename} /denoise [Noise Frequency] Starts the program and immediately starts denoising. The program is closed at the end. (Note that denoising touches only the parts of your file where noise is found. So the result is the same as with the /checkdenoise parameter. If you know that your file contains noise, this option is quicker that /checkdenoise.)

The command line support is mainly useful to check every movie you create. Example batch files for detecting noise in PAL and NTSC material can be found in the Examples directory.


Changelog

V1.1 - 04.04.2009

V1.0 - 06.07.2004


Contact

EMail: mail@uwe-freese.de

WWW: http://www.uwe-freese.de


SOX Homepage: www.sourceforge.net/projects/sox