Skip to main content

Arctan Voice Isolation for voice agents

Project description

Arctan Voice Isolation

Arctan Voice Isolation is a Python SDK for real-time voice isolation in voice agents and audio pipelines.

The SDK supports:

  • standard Numpy audio processing
  • LiveKit audio input processing
  • Pipecat audio input filtering

An Arctan SDK key is required before audio can be processed.

Documentation

The public developer documentation site lives in docs-site/.

Installation

Install the base SDK:

pip install arctan-vi

Install with framework adapters:

pip install "arctan-vi[livekit]"
pip install "arctan-vi[pipecat]"

The base SDK and LiveKit adapter support Python 3.10+. The Pipecat adapter requires Python 3.11+.

Set your SDK key in the runtime environment:

export ARCTAN_SDK_KEY="arc_sk_live_..."

You can also pass license_key="arc_sk_live_..." directly to the processor or adapter constructors. An explicit license_key takes precedence over ARCTAN_SDK_KEY.

Standard Python

Use arctan.Processor when you already have audio as NumPy arrays.

import numpy as np
import arctan

config = arctan.ProcessorConfig(sample_rate=24000, num_channels=1)
processor = arctan.Processor(config=config)

try:
    audio = np.zeros((config.num_channels, config.num_frames), dtype=np.float32)
    enhanced = processor.process(audio)
finally:
    processor.close()

Processor.process() accepts float32 audio shaped as channels x frames. Samples must be finite and in [-1.0, 1.0]. The output is a new float32 array with the same shape.

Mono and stereo input are supported. Stereo input is downmixed for voice isolation and returned as dual-mono stereo. The sample rate must remain stable for the lifetime of a processor.

If num_frames is omitted, initialization fills it with the native frame size for the selected sample rate. If you set num_frames, it must contain a whole number of native processing blocks.

LiveKit

Install the LiveKit extra:

pip install "arctan-vi[livekit]"

Create an Arctan noise-cancellation processor and pass it to LiveKit audio input options:

from arctan.livekit import arctan_enhancer
from livekit.agents import room_io

await session.start(
    agent=Assistant(),
    room=ctx.room,
    room_options=room_io.RoomOptions(
        audio_input=room_io.AudioInputOptions(
            noise_cancellation=arctan_enhancer.noise_canceller(),
        ),
    ),
)

You can pass SDK options directly to Arctan:

noise_cancellation = arctan_enhancer.noise_canceller(
    license_key="arc_sk_live_...",
)

LiveKit mono and stereo frames are supported. Stereo frames are downmixed for voice isolation and returned as dual-mono stereo. The sample rate must remain stable, and each input frame must contain a whole number of native processing blocks.

Pipecat

Install the Pipecat extra:

pip install "arctan-vi[pipecat]"

Create an ArctanAudioFilter and pass it as the input audio filter for your transport:

from arctan.pipecat import arctan_enhancer
from pipecat.transports.base_transport import TransportParams

audio_filter = arctan_enhancer.ArctanAudioFilter()

transport_params = TransportParams(
    audio_in_enabled=True,
    audio_in_filter=audio_filter,
)

ArctanAudioFilter implements Pipecat's BaseAudioFilter. Pipecat calls start(sample_rate), filter(audio), and stop() through the transport lifecycle.

The Pipecat adapter accepts mono PCM16 input. Arbitrary byte chunks are buffered until a complete native processing block is available, so filter() may return b"". FilterEnableFrame can bypass or re-enable processing; toggling clears any incomplete buffered block.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

arctan_vi-0.3.0-cp313-cp313-win_amd64.whl (38.6 MB view details)

Uploaded CPython 3.13Windows x86-64

arctan_vi-0.3.0-cp313-cp313-manylinux_2_35_x86_64.whl (40.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.35+ x86-64

arctan_vi-0.3.0-cp313-cp313-macosx_11_0_arm64.whl (38.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

arctan_vi-0.3.0-cp312-cp312-win_amd64.whl (38.6 MB view details)

Uploaded CPython 3.12Windows x86-64

arctan_vi-0.3.0-cp312-cp312-manylinux_2_35_x86_64.whl (40.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.35+ x86-64

arctan_vi-0.3.0-cp312-cp312-macosx_11_0_arm64.whl (38.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

arctan_vi-0.3.0-cp311-cp311-win_amd64.whl (38.6 MB view details)

Uploaded CPython 3.11Windows x86-64

arctan_vi-0.3.0-cp311-cp311-manylinux_2_35_x86_64.whl (40.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

arctan_vi-0.3.0-cp311-cp311-macosx_11_0_arm64.whl (38.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

arctan_vi-0.3.0-cp310-cp310-win_amd64.whl (38.6 MB view details)

Uploaded CPython 3.10Windows x86-64

arctan_vi-0.3.0-cp310-cp310-manylinux_2_35_x86_64.whl (40.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

arctan_vi-0.3.0-cp310-cp310-macosx_11_0_arm64.whl (38.6 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file arctan_vi-0.3.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: arctan_vi-0.3.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 38.6 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for arctan_vi-0.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a7fec30604af84ddc96ff83c7475394c97893632577f19840d6a283069ede0f0
MD5 6b037eaa490e6bec4215b31d119b9837
BLAKE2b-256 ac1262dc84c7f7f25b04c46b8ab5346f61fdbaf678b7d421f092f6ddc775b0c8

See more details on using hashes here.

File details

Details for the file arctan_vi-0.3.0-cp313-cp313-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for arctan_vi-0.3.0-cp313-cp313-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 4d8f20fc9b41f75f4e7482f867836dceaced816c4f3c17a48414592feb8af13b
MD5 83e8d73f3e54c9d2cff9ab37cece7193
BLAKE2b-256 74930f0cb2c70191b2a62418bc253616446e8d10e13b6bc02381316c4179cb4d

See more details on using hashes here.

File details

Details for the file arctan_vi-0.3.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for arctan_vi-0.3.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7b2d404d14fc3be30c81cc17b8943228ed275c6cf9a6b78d56b4c8946860cb0c
MD5 b335330b3b79ef09b9b93b3434d767cb
BLAKE2b-256 85cc37757817f00f3e9c101dab6f7db3dba5ad88274b63a1bc6a910ab30e0bbb

See more details on using hashes here.

File details

Details for the file arctan_vi-0.3.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: arctan_vi-0.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 38.6 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for arctan_vi-0.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 83f2928e46ddb1271730263939fcecbf6c33aa70ab89d7fa0f0a5caee9fcad3b
MD5 5db7ead1d720fdaf19579970fb1463ac
BLAKE2b-256 4c152a8ea0a9e5cfba40373cefa8cf59c3ba86dad3007940ee3f51bb003fc680

See more details on using hashes here.

File details

Details for the file arctan_vi-0.3.0-cp312-cp312-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for arctan_vi-0.3.0-cp312-cp312-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 f1e56c851af7309efe76d77dedbcc68a59c80e69a495912299e135afef902f7c
MD5 59be8dad046610b5b58c94a23f86d9bb
BLAKE2b-256 7d2a73b8dcaf3c465e3dd64373ede56b04a89bb3cacc2c4dadbe21746e5419f9

See more details on using hashes here.

File details

Details for the file arctan_vi-0.3.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for arctan_vi-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 402b16dfd705f2ed1f75f5f3386f7e60deb1159dca8ee204a0796ec2babbac66
MD5 df16c6a1378b9ec3409a3e713d96f56b
BLAKE2b-256 a3fb4ef4b1510386564fb8507a876f2a0b2a304243720b9d71fb682b1f92c66a

See more details on using hashes here.

File details

Details for the file arctan_vi-0.3.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: arctan_vi-0.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 38.6 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for arctan_vi-0.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ee3588a75ce9226f7dbfd7d63e8cd3d1e8d9087b162d0f6d232af19df013055f
MD5 81bde611ed01325748ef15f19be3ba8d
BLAKE2b-256 d0315e0274918554eb91a150455605c435baaf70ae38885406906b0272b48f53

See more details on using hashes here.

File details

Details for the file arctan_vi-0.3.0-cp311-cp311-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for arctan_vi-0.3.0-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 c0d02161d701d116d4646fc86b1746901d74f6ef8272b2578f2eccbe7e3936e5
MD5 42559b14e0f5eb83dac5cbdffc934266
BLAKE2b-256 f080f7f3f46ed94e00ce91a5db0ea392b952c2ee25ce78bef7a4a4489d7762e1

See more details on using hashes here.

File details

Details for the file arctan_vi-0.3.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for arctan_vi-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a8a115fd72768b1c86a0e56a438238411a4d4a3f55f9252f258199bcb64c852c
MD5 0187239cd3661199d73358fe88e1d40b
BLAKE2b-256 025df9ad4924a3216d88588e35b362af1210049b7a7fc048be43a44cb7419519

See more details on using hashes here.

File details

Details for the file arctan_vi-0.3.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: arctan_vi-0.3.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 38.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for arctan_vi-0.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6d8bbb0ed74038f0b991c16ecc3cd733a6efd98b8506a5af624c33419fa489b9
MD5 a7afe4593c305ca5aed393f69397f5db
BLAKE2b-256 d54cc40f54e1a7be931abe082de3def0131a1d477f0aa1aa18ca950d7d2d4e17

See more details on using hashes here.

File details

Details for the file arctan_vi-0.3.0-cp310-cp310-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for arctan_vi-0.3.0-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 d724cb9e985d106ce69947a23d33a407072948e091330059d1ae4406874946e4
MD5 5ef821a1b712934a741339e43c642d3c
BLAKE2b-256 a7d779930b24221e8a57e546ca1680531cb42856b3a34945ed5b34c31daa866a

See more details on using hashes here.

File details

Details for the file arctan_vi-0.3.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for arctan_vi-0.3.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e74190fa42f687049c89f423420ee8948ae33a0adf8b9b13526705637d0c496e
MD5 d2ecc0a53929df929d1bae498b398449
BLAKE2b-256 b56489b02269148152810f81cecf27ca3cc312970e64ee95a0379efe99625a65

See more details on using hashes here.

Supported by

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