In many cases, important communication must take place in extremely noisy environments.
Such are the cases, for instance, when taking a call inside an ambulance, police car,
or firefighter vehicle while the siren is active at 120 dB sound pressure level,
or in a jet fighter cockpit. Clear communication in such extremely noisy environments
is impossible which may lead to dangerous situations.
Fortunately, in many of such extreme noise cases, a clean reference of the noise source is available
(siren) or can be obtained (measured) using a separate sensor. Using this reference as a secondary input to an adaptive
algorithm allows almost complete removal of the noise without degrading the speech.
The Adaptive Interference Canceller is a very robust algorithm that takes two inputs and produces
one output. The primary input is the noisy speech that is picked up by a single microphone (the main
microphone in the communication device). The secondary input is a reference of the
noise that is obtained from a separate sensor. The output signal is the clean speech with very
small part of the noise remaining in the background.
The algorithm works by estimating the noise in the primary input using an adaptive digital filter.
Once the optimal filter coefficients are found, which may take a second or so, subtracting the estimated noise
from the primary input wipes out the noise almost completely leaving a clean speech signal to be sent through
the communication channel. See example audio files below
The secondary (noise reference) signal may be already available in electric form such as in the cases
of siren noise since it is played from the service vehicle. In other cases a noise reference can be
measured using a mechanical sensor (tachometer, accelerometer, etc). In other cases a second microphone
that picks as much of the noise as possible and as little of the speech as possible may be used.
The sample audio files below demonstrate the expected output from the Adaptive Interference Canceller algorithm
in two different test environments. The first sample has been recorded in an airplane cabin while the second
has been recorded while a police siren is passing by.
The primary and secondary inputs (left side) are recorded as a stereo signal with primary input on the left audio
channel and the secondary input on the right audio channel. The Adaptive Interference
Canceller output is the signal at the right side. The images visually display the spectral contents of the audio signals.
The following is a partial list of the most important AIC features:
- Efficient, block frequency domain adaptive algorithm.
- Block length is user adjustable therefore giving the user control on processing delay.
- Works at any sampling frequency without any calibration or modification. It has been already deployed at sample rates ranging from 8kHz to 48kHz.
- Trivial to integrate due to its simple Application Programming Interface.
- Already lab and field tested on several fixed-point and floating-point processors and DSPs with and without an operating system.
- Supported on all major desktop, mobile, and embedded platforms.
- Floating-point and Fixed-point implementations optimized for several general purpose processors, microcontrollers, as well as digital signal processors are directly available.
You can test whether the AIC algorithm would be suitable for a certain scenario using the AIC file processing
test application. This simple command line application reads a stereo audio wav file that has the primary noisy
speech on the LEFT channel and the secondary noise reference on the RIGHT channel. It then processes the primary
and secondary signals through the AIC algorithm to reduce the noise in the primary input,
and writes the result to the output wav file. For instance if you have a recorded stereo primary/secondary input
signal named "aic_input.wav" and would like to reduce the noise in the primary signal using AIC, you
may give the following command at the command line prompt
aic.exe aic_input.wav aic_output.wav
Clik this link to download the Windows version of AIC test application.
Please note that only uncompressed PCM wav format is supported. If you have a recorded file in any other
audio formats, including ADPCM wav or any other encoded or compressed wav file you will need to convert it to
PCM first using any available audio file editor. Simply open the recording in the audio file editor of your choice
and select "File->Save As" and then select PCM wav format.
For the adaptive algorithm to work properly, the primary (noisy speech) and secondary (noise reference) must be
recorded directly to a stereo audio file with primary on the LEFT channel and secondary on the RIGHT. This ensures
that the two signals are synchronized sample-per-sample which is necessary for the adaptive algorithm to
function properly. Recording to two separate mono files then making a stereo file of those two recordings will
simply not work.
For more information on the AIC algorithm we appreciate taking the time to contact us using the web form.