ripe-arm-36009
08/29/2025, 6:57 AMtall-airline-16756
08/29/2025, 6:57 AMtall-airline-16756
08/29/2025, 6:58 AMripe-arm-36009
08/29/2025, 7:11 AMtall-airline-16756
08/29/2025, 7:11 AMAudioCaptureOptions
when you connect to a room or capture audio. Most SDKs have these settings turned on by default, but just in case you want to customize, here are some handy examples:
• JavaScript SDK: The defaults are already set to true
, but you can explicitly configure them like this:
await room.connect(url, token, {
audioCaptureDefaults: {
echoCancellation: true,
noiseSuppression: true,
autoGainControl: true
}
});
• Android SDK: These are enabled by default, but if you want to tweak:
val options = LocalAudioTrackOptions(
echoCancellation = true,
noiseSuppression = true
)
• Flutter SDK: The defaults include noiseSuppression: true
and echoCancellation: true
.
• Swift SDK: On real devices, you might need to turn on WebRTC-based processing explicitly since it defaults to Apple’s Voice-Processing I/O.
• Python SDK: You can enable it explicitly when creating an `AudioProcessingModule`:
apm = AudioProcessingModule(
echo_cancellation=True,
noise_suppression=True
)
If you have any questions or want help with a particular SDK or setup, just give me a shout—I’m here to help!
Sources: src/room/defaults.ts | livekit-android-sdk/src/main/java/io/livekit/android/room/track/LocalAudioT... | Sources/LiveKit/Types/Options/AudioCaptureOptions.swift | livekit-rtc/livekit/rtc/apm.py | AI noise cancellation | LiveKit Docsripe-arm-36009
08/29/2025, 7:43 AMtall-airline-16756
08/29/2025, 7:44 AMroom.on(RoomEvent.LocalTrackPublished, async (trackPublication) => {
if (trackPublication.source === Track.Source.Microphone && trackPublication.track instanceof LocalAudioTrack) {
const { KrispNoiseFilter, isKrispNoiseFilterSupported } = await import('@livekit/krisp-noise-filter');
if (!isKrispNoiseFilterSupported()) {
console.error("Krisp noise filter not supported in this browser");
return;
}
try {
await trackPublication.track.setProcessor(KrispNoiseFilter());
} catch (e) {
console.warn("Could not enable noise filter");
}
}
});
• React Components: If you’re using React, the useKrispNoiseFilter
hook makes things super easy:
import { useKrispNoiseFilter } from '@livekit/components-react/krisp';
const krisp = useKrispNoiseFilter();
return (
<button onclick={() => krisp.setNoiseFilterEnabled(true)}>
Enable Enhanced Noise Cancellation
</button>
);
2. Server-Side (Inbound) Implementation
This one applies noise cancellation on the server for incoming audio, which is great if you’re working on voice AI apps. It’s supported on Python and Node.js.
• For Python: Just install the package:
`pip install "livekit-plugins-noise-cancellation~=0.2"`Then enable noise cancellation when you start your agent session:
from livekit.plugins import noise_cancellation
await session.start(
room_input_options=room_io.RoomInputOptions(
noise_cancellation=noise_cancellation.BVC(), # or NC(), BVCTelephony()
),
)
If you want a hand with a specific platform or have any questions, just let me know—I’m here to help!
Sources: packages/react/src/hooks/cloud/krisp/useKrispNoiseFilter.ts | AI noise cancellation | LiveKit Docs | Noise & echo cancellation | LiveKit Docs | Enhanced noise cancellation | LiveKit Docs | components/room.tsx