Skip to main content

Krisp VIVA Plugin for LiveKit Agents

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

Features

  • KrispVivaFilterFrameProcessor: Real-time noise reduction FrameProcessor for audio processing

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, KrispVivaFilterFrameProcessor uses LiveKit Cloud authentication: the bundled backend ships the noise-reduction 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.
    processor = krisp.KrispVivaFilterFrameProcessor(
        noise_suppression_level=100,  # 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=processor,  # Pass FrameProcessor directly
            ),
        ),
    )

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

Configuration

KrispVivaFilterFrameProcessor Parameters

Parameter Type Default Description
auth_provider LiveKitCloudAuthProvider | KrispLicenseAuthProvider LiveKitCloudAuthProvider Authentication backend. Defaults to LiveKit Cloud. See the alternative.
noise_suppression_level int 100 Noise reduction intensity (0-100)
frame_duration_ms int None Deprecated. Input frames of any size are now buffered automatically.
sample_rate int None Deprecated. The processor now adapts to the input sample rate automatically.
model_path str None Deprecated. Use auth_provider=krisp.auth.krisp_license(model_path=...). License-mode only.

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

processor = krisp.KrispVivaFilterFrameProcessor(
    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=100,
)

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

livekit_plugins_krisp-0.2.6.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

livekit_plugins_krisp-0.2.6-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file livekit_plugins_krisp-0.2.6.tar.gz.

File metadata

  • Download URL: livekit_plugins_krisp-0.2.6.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for livekit_plugins_krisp-0.2.6.tar.gz
Algorithm Hash digest
SHA256 80823c3722efcf1b0715147ba0e0f2ad6d3f93b4377bf1bb226ec32d837a39c9
MD5 cef2d25a420d2c36d92f6a0e459cd652
BLAKE2b-256 0dc3065f02bfb322697590d109e0d6b69f7ddb96958d18fd49b4e4f721eb880b

See more details on using hashes here.

Provenance

The following attestation bundles were made for livekit_plugins_krisp-0.2.6.tar.gz:

Publisher: publish.yml on livekit/agents

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file livekit_plugins_krisp-0.2.6-py3-none-any.whl.

File metadata

File hashes

Hashes for livekit_plugins_krisp-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 83bfaad6bda9a89e0617e2e33a240068519ebe9ad946a8f773675ff531160a05
MD5 867e4c297bd6855686e98c48b0c2c67f
BLAKE2b-256 1bdd191bdeded4128c74df6350d85ffacc29f6312b84817b2b52373900692055

See more details on using hashes here.

Provenance

The following attestation bundles were made for livekit_plugins_krisp-0.2.6-py3-none-any.whl:

Publisher: publish.yml on livekit/agents

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.3.0

2 files

0.2.10

2 files

0.2.9

2 files

0.2.8

2 files

0.2.7

2 files

This release

0.2.6 This release

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.16

2 files

0.1.15

2 files

0.1.14

2 files

0.1.13

2 files

0.1.12

2 files

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page