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 PyPIPipecat 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 frompipecat-ai:
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
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 asaudio_in_filter:
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.