> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pipecat.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# KrispVivaFilter

> Audio voice isolation filter using Krisp VIVA model

## Overview

`KrispVivaFilter` is an audio processor that isolates the user's voice in real-time audio streams using Krisp VIVA SDK. It inherits from `BaseAudioFilter` and processes audio frames to improve audio quality by filtering out background noise and other voices using Krisp's voice isolation algorithms.

To use Krisp, you need a Krisp SDK license. Get started at [Krisp.ai](https://krisp.ai/developers/).

## Installation

See the [Krisp guide](/pipecat/features/krisp-viva) to learn how to install the Krisp VIVA SDK.

## Environment Variables

You need to provide the path to the Krisp model file (.kef extension). This can either be done by setting the `KRISP_VIVA_MODEL_PATH` environment variable or by setting the `model_path` in the constructor.

For SDK v1.6.1+, you also need to provide a Krisp API key via the `api_key` constructor parameter or the `KRISP_VIVA_API_KEY` environment variable.

## Constructor Parameters

<ParamField path="model_path" type="str" default="None">
  Path to the Krisp model file (.kef extension).

  You can set the `model_path` directly. Alternatively, you can set the `KRISP_VIVA_MODEL_PATH` environment variable to the model file path.
</ParamField>

<ParamField path="noise_suppression_level" type="int" default="100">
  Voice isolation level for the filter
</ParamField>

<ParamField path="api_key" type="str" default="&#x22;&#x22;">
  Krisp SDK API key for licensing (required for SDK v1.6.1+). If empty, falls back to the `KRISP_VIVA_API_KEY` environment variable.
</ParamField>

## Supported Sample Rates

The filter supports the following sample rates:

* 8000 Hz
* 16000 Hz
* 24000 Hz
* 32000 Hz
* 44100 Hz
* 48000 Hz

## Input Frames

<ParamField path="FilterEnableFrame" type="Frame">
  Specific control frame to toggle filtering on/off

  ```python theme={null}
  from pipecat.frames.frames import FilterEnableFrame

  # Disable voice isolation
  await task.queue_frame(FilterEnableFrame(False))

  # Re-enable voice isolation
  await task.queue_frame(FilterEnableFrame(True))
  ```
</ParamField>

## Usage Example

```python theme={null}
from pipecat.audio.filters.krisp_viva_filter import KrispVivaFilter
from pipecat.transports.daily.transport import DailyParams, DailyTransport

transport = DailyTransport(
    room_url,
    token,
    "Respond bot",
    DailyParams(
        audio_in_enabled=True,
        audio_in_filter=KrispVivaFilter(), # Enable Krisp voice isolation
        audio_out_enabled=True,
    ),
)
```
