Skip to main content

Krisp VIVA Plugin for LiveKit Agents

Real-time noise reduction for LiveKit voice agents using Krisp's VIVA SDK.

Features

  • voice_isolation(): Real-time voice isolation and noise reduction FrameProcessor
  • voice_isolation_telephony(): Voice isolation tuned for telephony audio (for example, SIP participants)

Installation

pip install livekit-plugins-krisp

That's it. The default backend is bundled with the plugin and authenticates through LiveKit Cloud using the room's credentials — no separate SDK download, license key, or model file is required.

Using your own Krisp license instead? That path has additional prerequisites — see below.

Quick Start

By default, krisp.voice_isolation() uses LiveKit Cloud authentication: the bundled backend ships the voice isolation model and authenticates against LiveKit Cloud using the room JWT the agent framework hands to the FrameProcessor automatically.

from livekit.agents import AgentSession, Agent, JobContext, inference, room_io
from livekit.plugins import krisp, openai

@server.rtc_session()
async def entrypoint(ctx: JobContext):
    # Default: LiveKit Cloud auth + bundled model. No keys or model files.
    noise_cancellation = krisp.voice_isolation(
        noise_suppression_level=75,  # 0-100
    )

    session = AgentSession(
        vad=inference.VAD(),
        stt=openai.STT(),
        llm=openai.LLM(model="gpt-4o-mini"),
        tts=openai.TTS(),
    )

    # Start session with RoomIO and pass the FrameProcessor directly
    await session.start(
        agent=MyAgent(),
        room=ctx.room,
        room_options=room_io.RoomOptions(
            audio_input=room_io.AudioInputOptions(
                noise_cancellation=noise_cancellation,  # Pass the FrameProcessor directly
            ),
        ),
    )

For telephony audio, use krisp.voice_isolation_telephony() instead — it takes the same options and behaves identically, but selects a voice isolation model tuned for telephony.

Audio Pipeline: Room → RoomIO (with voice_isolation) → VAD → STT → LLM

Configuration

voice_isolation() / voice_isolation_telephony() options

Parameter Type Default Description
auth_provider LiveKitCloudAuthProvider | KrispLicenseAuthProvider LiveKitCloudAuthProvider Authentication backend. Defaults to LiveKit Cloud. See the alternative.
noise_suppression_level int 75 Noise reduction intensity (0-100)

Input frames of any size and sample rate are buffered and adapted automatically.

Runtime control

Both factory functions return a KrispVivaFilterFrameProcessor. Adjust it while the session is running:

noise_cancellation.enabled = False              # pass audio through unmodified
noise_cancellation.noise_suppression_level = 50  # adjust 0-100 on the fly
noise_cancellation.close()                       # free resources when done

Alternative: Krisp License Auth

Most users should use the default LiveKit Cloud path above. This alternative is for running the public Krisp SDK directly with your own Krisp license — for example, when using Livekit OSS server.

This path uses the public krisp_audio wheel together with a Krisp license key and a .kef model file that you obtain from Krisp.

Prerequisites

  1. Krisp Audio SDK — proprietary, not on public PyPI. Obtain and install it separately from Krisp:
    pip install krisp-audio
    
  2. License key:
    export KRISP_VIVA_SDK_LICENSE_KEY=your-license-key-here
    
  3. Noise-reduction model — a .kef model file from Krisp:
    export KRISP_VIVA_FILTER_MODEL_PATH=/path/to/noise_model.kef
    

Usage

Select the license backend by passing auth_provider:

from livekit.plugins import krisp

noise_cancellation = krisp.voice_isolation(
    auth_provider=krisp.auth.krisp_license(
        license_key="...",                    # or KRISP_VIVA_SDK_LICENSE_KEY
        model_path="/path/to/noise_model.kef",  # or KRISP_VIVA_FILTER_MODEL_PATH
    ),
    noise_suppression_level=75,
)

license_key and model_path fall back to the environment variables above when omitted.

Troubleshooting

RuntimeError: bundled backend missing

If the default (LiveKit Cloud) backend reports a missing wheel, the install is likely broken. Reinstall the plugin:

pip install --force-reinstall livekit-plugins-krisp

Alternatively, fall back to the Krisp license auth path.

"Krisp SDK initialization failed" or licensing errors (license auth only)

Make sure the license key is set:

export KRISP_VIVA_SDK_LICENSE_KEY=your-license-key-here

"Model path must be provided" (license auth only)

export KRISP_VIVA_FILTER_MODEL_PATH=/path/to/model.kef

"Unsupported sample rate"

Supported: 8000, 16000, 24000, 32000, 44100, 48000 Hz

Silent output

  • Verify the model file is valid (license auth only)
  • Test with known noisy audio

License

The source code in this package (livekit-plugins-krisp) is licensed under the Apache-2.0 license.

The default backend is a separate, closed-source wheel (livekit-plugins-krisp-internal) that is installed automatically as a dependency. It is proprietary and distributed under the LiveKit Terms of Service. That wheel bundles the Krisp VIVA SDK along with its third-party open-source components, whose attribution notices are shipped inside the wheel.

The Krisp license alternative (KrispLicenseAuthProvider) instead needs a manual install of the proprietary Krisp Audio SDK together with your own Krisp license key and model file, governed by your agreement with Krisp.

Metadata

Release files for livekit-plugins-krisp 0.4.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for livekit-plugins-krisp 0.4.4
File Size Uploaded
livekit_plugins_krisp-0.4.4.tar.gz 13.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for livekit-plugins-krisp 0.4.4
File Interpreter ABI Platform
livekit_plugins_krisp-0.4.4-py3-none-any.whl Python 3 none any Details

Total release size: 29.7 kB

Release files / livekit_plugins_krisp-0.4.4.tar.gz

Download URL livekit_plugins_krisp-0.4.4.tar.gz
Size 13.2 kB
Tags Source
SHA-256 checksum
How to use checksums
23196c821ec41c77bf8f5200ff3ec56692e9e8ddb8b1f204d9aa9af4f2034355
BLAKE2b-256 checksum
How to use checksums
1bf5a45978315b063c38567c42cc7aedfa59d976f17f21cc7ccb2745cc1029e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release files / livekit_plugins_krisp-0.4.4-py3-none-any.whl

Download URL livekit_plugins_krisp-0.4.4-py3-none-any.whl
Size 16.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
24cfc908d7eb545438e3d23fe8ada078fc43ab909b9d4cf23df59e67d36ea781
BLAKE2b-256 checksum
How to use checksums
b7dc3fd6de61128ae857bc08a208d66381cc4fc1f1288489162c38a1345bc4ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release history Release notifications | RSS feed

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page