Enhanced noise cancellation with Krisp

Enable Krisp-powered noise cancellation in your LiveKit Cloud project

LiveKit offers standard built-in noise cancellation through libwebrtc to all customers and open-source users.

For scenarios where more advanced noise cancellation is required, LiveKit has partnered with Krisp, a leader in AI-driven noise canncellation technology, to enhance your users' experience.

Enhanced noise cancellation is available to LiveKit Cloud projects on Scale or Enterprise plans. Refer to our pricing page for information about current pricing.

Integration Overview

LiveKit's Krisp Noise Filter currently supports our Web, Android, and iOS SDKs. Due to limitations in Krisp's SDK, it is only compatible with Safari browser versions >=17.4.

We plan to extend support to additional platforms in the future.

Installation

npm install @livekit/krisp-noise-filter

Usage

Once installed, import and enable it in your client codebase

import { Room, RoomEvent, Track } from 'livekit-client';
const room = new Room();
// we recommend a dynamic import in order to only load the required resources once you actually enable the plugin
const { KrispNoiseFilter } = await import('@livekit/krisp-noise-filter');
room.on(RoomEvent.LocalTrackPublished, async (trackPublication) => {
if (
trackPublication.source === Track.Source.Microphone &&
trackPublication.track instanceof LocalAudioTrack
) {
if (!isKrispNoiseFilterSupported()) {
console.warn('enhanced noise filter is currently not supported on this browser');
return;
}
// once instantiated the filter will begin initializing and will download additional resources
const krispProcessor = KrispNoiseFilter();
console.log('enabling LiveKit enhanced noise filter');
await trackPublication.track.setProcessor(krispProcessor);
// in order to enable/disable the noise filter the recommended approach is
// await krispProcessor.setEnabled(enable)
// to check the current status use
// krispProcessor.isEnabled()
// once you want to stop (dispose) the krisp processor, simply call
// await trackPublication.track.stopProcessor()
}
});