Enhanced Noise Cancellation Plugin for LiveKit
Add realtime enhanced noise cancellation to inbound AudioStream. Fully compatible with LiveKit Agents.
Requires LiveKit Cloud.
Read more in the documentation
Audio chain
This package runs server-side on inbound audio (e.g. in an agent or on an AudioStream). Remote participants’ tracks are cleaned before your code or the agent consumes the audio.
flowchart LR
Room["LiveKit room"] --> Track["Remote track (inbound)"]
Track --> NC["livekit.plugins.noise_cancellation"]
NC --> Stream["AudioStream / Agent input"]
Stream --> Consumer["Your code or agent"]
Usage
In LiveKit Agents
Include the filter in RoomInputOptions when starting your AgentSession:
from livekit.plugins import noise_cancellation
# ...
await session.start(
# ...,
room_input_options=room_io.RoomInputOptions(
noise_cancellation=noise_cancellation.BVC(),
),
)
# ...
On AudioStream
Noise cancellation can also be applied to any individual inbound AudioStream:
from livekit.rtc import AudioStream
from livekit.plugins import noise_cancellation
stream = AudioStream.from_track(
track=track,
noise_cancellation=noise_cancellation.BVC(),
)
Available Models
There are three noise cancellation models available:
# Standard enhanced noise cancellation (NC)
noise_cancellation.NC()
# Background voice cancellation (NC + removes non-primary voices
# that would confuse transcription or turn detection)
noise_cancellation.BVC()
# Background voice cancellation optimized for telephony applications
noise_cancellation.BVCTelephony()
Notes
Noise cancellation only needs to be applied once, so if you choose to apply it here you should disable noise cancellation / Krisp filter in your frontend clients.
If you experience crashes when using noise_cancellation (especially on AMD CPUs), it may be due to a failure in OpenBLAS's CPU detection. Manually setting the OPENBLAS_CORETYPE environment variable to a more conservative value (e.g., Haswell) may resolve the issue.
License
Release files for livekit-plugins-noise-cancellation 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| livekit_plugins_noise_cancellation-0.3.2-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| livekit_plugins_noise_cancellation-0.3.2-py3-none-manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.28+ x86-64 | Details |
| livekit_plugins_noise_cancellation-0.3.2-py3-none-manylinux_2_28_aarch64.whl | Python 3 | none | Linux glibc 2.28+ ARM64 | Details |
| livekit_plugins_noise_cancellation-0.3.2-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| livekit_plugins_noise_cancellation-0.3.2-py3-none-macosx_10_9_x86_64.whl | Python 3 | none | macOS 10.9+ x86-64 | Details |
Total release size: 342.4 MB
Release files / livekit_plugins_noise_cancellation-0.3.2-py3-none-win_amd64.whl
| Download URL | livekit_plugins_noise_cancellation-0.3.2-py3-none-win_amd64.whl |
|---|---|
| Size | 66.3 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
28ab0d02a34a0459f3202246a818197ed3d2c7173d8239b649a8688ea47cd2f8
|
|
BLAKE2b-256 checksum How to use checksums |
043bd4a853d237edbe0425e52474e9ad6d4a9d4fd48ec3693d3d69eadf9f2692
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / livekit_plugins_noise_cancellation-0.3.2-py3-none-manylinux_2_28_x86_64.whl
| Download URL | livekit_plugins_noise_cancellation-0.3.2-py3-none-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 73.6 MB |
| Tags | Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
632416212279531f30a012486627f4371ef474eca87e9610fbca6787d8599a3d
|
|
BLAKE2b-256 checksum How to use checksums |
07653ca9af4cc5517ebe9c58668f82362a737a981d930514e4af77d8fba360a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / livekit_plugins_noise_cancellation-0.3.2-py3-none-manylinux_2_28_aarch64.whl
| Download URL | livekit_plugins_noise_cancellation-0.3.2-py3-none-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 70.8 MB |
| Tags | Linux glibc 2.28+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
28d82b0a3af773cf3653d8bcedb2166596847c03ab4009e64c931eb77af62a22
|
|
BLAKE2b-256 checksum How to use checksums |
8ca529626b96e89c9d8620e89a33573b4971a8814ac5f74f419199526ff0e24a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / livekit_plugins_noise_cancellation-0.3.2-py3-none-macosx_11_0_arm64.whl
| Download URL | livekit_plugins_noise_cancellation-0.3.2-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 65.1 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
104c1ae210186f278d04de6f6f19ae2be2d79bc9440e7899ab918bd771f908cb
|
|
BLAKE2b-256 checksum How to use checksums |
bd274fcf53e681ef863484dec15a1d822d290248c394f4eceb635de44cb611e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / livekit_plugins_noise_cancellation-0.3.2-py3-none-macosx_10_9_x86_64.whl
| Download URL | livekit_plugins_noise_cancellation-0.3.2-py3-none-macosx_10_9_x86_64.whl |
|---|---|
| Size | 66.6 MB |
| Tags | Python 3 macOS 10.9+ x86-64 |
|
SHA-256 checksum How to use checksums |
be077ba5c927189e31a6b33fd58f9d799df88c7a130df997af91f9d7aa63d5c8
|
|
BLAKE2b-256 checksum How to use checksums |
95902a8043f5565654e6dc393671487adf045e6b1ced5a30849971bd06ca81a3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|