Noise Suppression technology mutes the unwanted background noise, providing clear audio for communication. Both recording audio and applying noise suppression to the recorded audio is not trivial.
Picovoice's Koala Noise Suppression provides a fast and easy method for processing and suppressing audio on device (i.e, audio is processed on the browser).
Koala Noise Suppression engine is available for all major browsers: Chrome, Safari, Firefox and Edge.
Sign up for Picovoice Console
Sign up for Picovoice Console for free and copy your
AccessKey. It handles authentication and authorization.
Add the Koala model to the project by:
- Either copying the model file to the project's public directory:
- Create a base64 string of the model using the
pvbase64script included in the package:
Create an object containing the Koala model options:
Create callback functions:
processCallback: gets the results of Koala noise suppression engine.
processErrorCallback: Optional callback to handle errors if an error occurs while running Koala noise suppression engine.
Initialize Koala with
koalaModel variable containing the model options and the callback functions defined above:
KoalaWorker uses web workers to process audio data. Web workers might not be supported (i.e. Firefox private mode). In this case,
Koala instead, which use main thread to process audio data.
Processing Audio Frames
Koala processes audio in chunks (frames). The
.frameLength property gives the number of audio samples per frame that are required by Koala, while the
.sampleRate property gives the audio sample rate that is required. Audio samples must be 16-bit integers.
The enhanced audio is received from
processCallback as mentioned above. In the case that the next audio frame does not follow the previous one, call
reset before calling
Clean up allocated resources:
Koala was used instead of
KoalaWorker, clean resources with
All that is left is to wire up the audio recording. This example uses WebVoiceProcessor to record audio.
The following code snippet records audio from and applies noise suppression to the recorded data:
For a complete working project, take a look at the Koala Web Demo.