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.

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.1-cp313-cp313-win_amd64.whl (38.6 MB view details)

Uploaded CPython 3.13Windows x86-64

arctan_vi-0.3.1-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.1-cp313-cp313-macosx_11_0_arm64.whl (38.6 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

arctan_vi-0.3.1-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.1-cp312-cp312-macosx_11_0_arm64.whl (38.6 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

arctan_vi-0.3.1-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.1-cp311-cp311-macosx_11_0_arm64.whl (38.6 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

arctan_vi-0.3.1-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.1-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.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: arctan_vi-0.3.1-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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 338fa70e8e68116590b4430630b3168ce28781daa3e694c686d0b10146ee307e
MD5 6149e72427fc9f35b40162a88fb0c60f
BLAKE2b-256 7140caf3e44f2e191ecb1ca657cb66276aa1a882d670170765cf5ca9ccdf80f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arctan_vi-0.3.1-cp313-cp313-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 f0970a4445fa237d9bc46740fbd4879a8575b1eb7d1a52a9f129e2506db156a1
MD5 a2a30f6bd62425a532ef3c0522ceaa82
BLAKE2b-256 4e89b629cf9b257165dfc4cbaa8844ddec4fce3dd32e6f7d1ef253bafcf56ecd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arctan_vi-0.3.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6a773bd6a2d6d626850b20c990ec59fd8698530b166d1a9dc6ececf97619b796
MD5 f6c4b9318d305b2b321314d4d244cc84
BLAKE2b-256 85d4999d2db9210de83e4becec8dfcb4f0432813445bcf6b5feb8fa5a3296ab7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: arctan_vi-0.3.1-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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e38eb6ca79e642f9e2ce3c08989039d81d2944f02a1c2870fb7c2c206cc829e6
MD5 bf6461ce63c4713fe60fe38bf203ab1a
BLAKE2b-256 8a0c2cb1866bdf53f1aca9be31cc6354e32b2bcd10cc311697dcb133db33db58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arctan_vi-0.3.1-cp312-cp312-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 af4f97cfb5bffb509f8a637bacbaf387ebeba1c603edaac4b66166b36f36d56e
MD5 83e60727e360a679074ba2adb9e1cb53
BLAKE2b-256 fd364161681d506d68e673b94868b26c3408db183823574a6bf9952e096e5bf5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arctan_vi-0.3.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 182b76322de318f311c28eecdbb1223797aa1ca24d7d9b6268c0fe219b1aee02
MD5 570b42c3267a4afce27703e4aa13950d
BLAKE2b-256 e3cc967da0d120d339b159a483adc6fbead640944b61d083929f445f2a6a3a9a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: arctan_vi-0.3.1-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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0b3183a444b26d61c12748836fbb7392ef77c096b3a8952f33f60ab6a36a2d1d
MD5 12b2a50716ff984c023a5d1026b109a5
BLAKE2b-256 73320e068f85482d32c9fb2d0a516cf0106eaf3563fbe56fc63153f02c3c294d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arctan_vi-0.3.1-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 732d25d0789498738c350c1810faeab732b7f0978d50349e0e1b3a6949b940f7
MD5 856ef221642dc75d1a294c125ade76e3
BLAKE2b-256 5a284ec9a15c21d981016285252dfddcf59a4ac8b9b8de1c473e99c8e89b1087

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arctan_vi-0.3.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cb798f5767b063e9d2aa96ffe4b1a01a651e3be4a6a31c34b934221f49c87100
MD5 80381e43e9637dc67a4b9713c48c6013
BLAKE2b-256 129a4e104128f605c1f134d47af2376c267d526abf0c51eea733834fdc26e77e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: arctan_vi-0.3.1-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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6febaead426da97c81c6ddecbb0a34d6f22a5fefe87ca907a6efc2b4e7462304
MD5 7e3316afa15345f28b816cdda22bb6ff
BLAKE2b-256 bbd76918364cdd854ca44fdf2cce6ffd217870194826d8e9f5981fcf7ab0cac5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arctan_vi-0.3.1-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 ef9df5ed50d918db6c45d60a3b6c9597e64fdb190f07944d1f83aab0db1096c5
MD5 ad94b61dd54bb100603e13e592bb9056
BLAKE2b-256 65e5ced1fe71e42d3e761082e70436cd5e99cd43b1d32860beecf215b6f96cc7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for arctan_vi-0.3.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fc82f7ddcba2f50bda0620d19b36a796e7efb002d62cba4682946e1971f9c046
MD5 4e847a1300b18fd239d472fda74aac3d
BLAKE2b-256 fa61c4fb0a8e38ce71866d6864310e90c6b9968c96773cfd577bf2f4cd30cdf2

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