Skip to main content
Community-maintained integration. This service is built and maintained by Arctan AI. Pipecat does not test or officially support it. Please report issues and request changes on the source repository. Learn more about community integrations.

Overview

ArctanAudioFilter is a BaseAudioFilter implementation backed by Arctan Eigen, a low-latency speech enhancer and noise canceller tuned for ASR/STT accuracy. You attach it to a transport’s audio_in_filter, and it cleans up incoming user audio — reducing background noise, side-talk, and other degradation — before the audio reaches VAD and your STT service.

Arctan Eigen Docs

SDK documentation, API reference, and troubleshooting

PyPI Package

The arctan-vi package on PyPI

Pipecat Integration Guide

Arctan’s own guide to the Pipecat integration

Request Access

Request an SDK license key from Arctan

Installation

This is a community-maintained package distributed separately from pipecat-ai:
The pipecat extra installs the Arctan SDK along with the Pipecat integration. Requires Python >= 3.11.

Prerequisites

  • SDK license key: Arctan requires a license key. Request access at arctan.ai/eigen.
  • Network access: the agent process must be able to reach Arctan’s servers to validate the license key.

Required Environment Variables

  • ARCTAN_SDK_KEY: your Arctan SDK license key
Don’t commit SDK license keys or .env files to source control.

Configuration

str | None
default:"None"
Arctan SDK license key. Falls back to the ARCTAN_SDK_KEY environment variable if not provided. When set, this value takes precedence over the environment variable.

Usage

Create one filter instance and pass it to your transport as audio_in_filter:
The transport drives the filter lifecycle — start(sample_rate), filter(audio), process_frame(frame), and stop() — so no additional wiring is needed.

Passing the license key explicitly

With a specific transport

The filter works with any Pipecat transport that supports input audio filters:

Input Frames

Frame
Control frame to toggle enhancement on and off at runtime. Queue the frame into the pipeline to toggle the filter used as audio_in_filter:

Audio Requirements

The Arctan filter does not resample audio. Configure your input transport to deliver PCM16 at a single, stable sample rate.
  • Input must be signed 16-bit PCM (int16) bytes.
  • The sample rate must be positive and must not change after the filter starts.
  • Each chunk passed to filter() must contain complete int16 samples; incomplete samples raise an error.
  • Any chunk size is accepted — the filter buffers partial data internally.

Compatibility

Requires Pipecat 1.3 or later. Check the Arctan documentation for the latest tested version and release notes.