Livekit Noise Filter for Flutter LiveKit SDK
Currently supports iOS/macOS/Android/Web
For Flutter web, ensure the bundled Krisp JS SDK modules (krispsdk.mjs,
usermedia.mjs) are served correctly from
/assets/packages/livekit_noise_filter/assets/krisp/dist/. The noise
cancellation models themselves are not bundled, the SDK downloads them on
demand at runtime.
Audio chain
This package runs as the default audio capture processor in the Flutter app. The mic stream is processed by the noise filter (native on iOS/macOS/Android) before the LiveKit client publishes.
flowchart LR
subgraph client["Flutter app"]
Mic["Microphone"] --> Capture["Audio capture"]
Capture --> Filter["livekit_noise_filter (processor)"]
Filter --> LK["LiveKit Room"]
LK --> Publish["Publish track"]
end
Publish --> Room["LiveKit room"]
How to use
You can add the livekit noise filter to your existing LiveKit app using the following steps.
- add
livekit_noise_filterto yourpubspec.yaml
dependencies:
livekit_noise_filter: ^0.1.0
- Set livekit noise filter before connecting to room
final liveKitNoiseFilter = LiveKitNoiseFilter();
final room = Room(
roomOptions: RoomOptions(
defaultAudioCaptureOptions: AudioCaptureOptions(
processor: liveKitNoiseFilter,
),
),
);
await _room!.connect(url, token);
await _room!.localParticipant!.setMicrophoneEnabled(true);
- You can turn the filter on or off to check that it is working properly.
liveKitNoiseFilter.setBypass(true | false);