livekit-plugins-alkove
Alkove for LiveKit Agents: Focus keeps the user's voice and removes the others and the noise, Cue finds where they speak. Both run on the agent's CPU, with no server and no key, with the chain and the speech rules of Alkove's web SDK.
Install
pip install livekit-plugins-alkove
python my_agent.py download-files # Focus and Cue into the cache, checked by their sha256
Use
from livekit.agents import AgentSession, room_io
from livekit.plugins import alkove
session = AgentSession(vad=alkove.VAD.load(), ...)
await session.start(
agent,
room=ctx.room,
room_options=room_io.RoomOptions(
audio_input=room_io.AudioInputOptions(noise_cancellation=alkove.Focus()),
),
)
alkove.Focus()is artc.FrameProcessor. It keeps the closest voice, or withvoiceprint=the voice of that print;strength=andnormalize=work as in the web SDK. It works at the session's sample rate (24 kHz by default) and gives each frame back at the size it came in, 20 ms behind: whole 10 ms frames, as LiveKit's gain control needs. The models are read from the cachedownload-filesfilled when it is created.alkove.VAD.load()gives one speech probability every 30 ms, withspeech=alkove.SpeechParams(confidence=0.5, exit_confidence=0.1, start_secs=0.2, stop_secs=0.6)by default. It counts as the turn detector'smin_silence_duration(stop_secs). BehindFocus, it hears only the user.
The models are loaded once per process and shared by every session. Pass models=alkove.Models.load(["focus", "cue"], dir=...) to read them from your own folder.
Tested with livekit-agents 1.8.8.
License
Apache-2.0. See NOTICE.
Metadata
Release files for livekit-plugins-alkove 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| livekit_plugins_alkove-0.2.0.tar.gz | 9.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| livekit_plugins_alkove-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.1 kB
Release files / livekit_plugins_alkove-0.2.0.tar.gz
| Download URL | livekit_plugins_alkove-0.2.0.tar.gz |
|---|---|
| Size | 9.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6551090f5bd5b65df2eb24cb4657a028620bc4d6d555c7a536ae052b02fb9e79
|
|
BLAKE2b-256 checksum How to use checksums |
40de4698fd972a73598f4455c2dd625a9d9616a8487730f9bff9a532929b7306
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency logRelease files / livekit_plugins_alkove-0.2.0-py3-none-any.whl
| Download URL | livekit_plugins_alkove-0.2.0-py3-none-any.whl |
|---|---|
| Size | 12.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9f2be3b803baa98c2cd7813c289da6dd3348dfe032c3c7bf3bd9c19db01eeed4
|
|
BLAKE2b-256 checksum How to use checksums |
da19eba468c7844e3169c8b564a23e591684eccf58724ea635083ab75e5d27b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 19, 2026.
Transparency log