The dsPIC DSC Noise Suppression Library provides a function to suppress the effect of noise in a speech signal. This function is useful for microphone-based applications that have a potential for incoming speech corruption from ambient noise. It is especially suitable for systems where an acoustically isolated noise reference is not available, such as:
- Hands-free cell phone kits
- Speaker phones
- Intercoms
- Teleconferencing systems
- Headsets
- Front-end to a speech recognition system
- Any microphone-based application that needs to eliminate undesired noise
Description
The Noise Suppression Library is written almost entirely in assembly language. It is highly optimized to make extensive use of the dsPIC DSC device DSP instruction set and advanced addressing modes. The algorithm has been implemented keeping in mind the need to avoid data overflow. The library functions can be easily called by the user application through a well-documented Application Programmer’s Interface.
The noise suppression function removes noise from a 10 ms block of 16-bit speech data sampled at 8 kHz. This function is primarily a Frequency Domain algorithm in which a Fast Fourier Transform (FFT) is performed on each 10 ms block of data to analyze the frequency components of the signal. Thereafter, a Voice Activity Detection (VAD) algorithm is used to determine if the signal segment is speech or noise. The noise suppression algorithm maintains a profile of the noise and updates it every time a noise segment is detected by the VAD. Every frequency band of the input signal is then scaled according to the proportion of noise contained in that frequency band, thereby causing a significant degree of noise suppression in the resultant signal. The Algorithm thus adapts to changes in the nature and level of noise and does not require a separate noise reference input.
Features
Key feature of the Noise Suppression Library include:
• Simple user interface – only one library file and one header file
• All functions called from a C application program
• Full compliance with the Microchip C30 Compiler, Assembler and Linker
• Highly optimized assembly code that uses DSP instructions and advanced addressing modes
• Comprehensive API provides parametric control of the Noise Suppression Engine
• Noise reduction level can be controlled from 0 dB to 44 dB
• Audio Bandwidth: 0-4 kHz at 8 kHz sampling rate
• Library delivered on CD, which also includes:
o Several sample .wav files that incorporate different types of noise components
o User’s Guide
o Sample demo application with complete source code
Resource Requirements
Computational Requirements: 3.5 MIPS
Program Flash Memory: 8 KB
RAM: 1 KB
This library is available for free download and there are no associated royalties for this library