Skip to main content

livekit-plugins-reson8

Reson8 STT plugin for LiveKit Agents.

A single reson8.STT class that adapts to how LiveKit uses it:

  • Streaming (stream(), used by voice agents) connects to the turn-aware endpoint. Reson8 detects conversational turn boundaries server-side: it emits a preflight transcript (an eager guess that the turn is over) that your agent can start responding to, then confirms it as a final transcript — or cancels it if the speaker keeps talking. Great for low-latency voice agents.
  • Batch (recognize()) transcribes pre-recorded audio and returns the full transcript.

Languages

Leave language unset to auto-detect the spoken language, or pin recognition to one or more supported codes. You can pass a single code, a comma-string, or a list — a list is normalized to Reson8's comma-joined form and any unsupported code raises ValueError locally.

reson8.STT()                        # auto-detects the spoken language
reson8.STT(language="en")           # English only
reson8.STT(language="nl,de")        # Dutch or German
reson8.STT(language=["nl", "de"])   # same, as a list

Supported languages (reson8.SupportedLanguages):

Code Language
de German
en English
es Spanish
fr French
fy Frisian
it Italian
nl Dutch
pl Polish
pt Portuguese
sv Swedish

Installation

pip install livekit-plugins-reson8

Usage

from livekit.plugins import reson8

stt = reson8.STT(
    api_key="your-api-key",   # or set RESON8_API_KEY
    # language is auto-detected when omitted; pass one or more supported codes to pin it
)

With a Voice Agent

from livekit.agents import AgentSession
from livekit.plugins import openai, reson8

session = AgentSession(
    stt=reson8.STT(),          # streaming + turn detection, language auto-detected
    llm=openai.LLM(),
    tts=openai.TTS(),
    # "stt" hands turn detection to Reson8 and lets the agent start
    # generating on our preflight transcript instead of the confirmation.
    turn_handling={
        "turn_detection": "stt",
        "preemptive_generation": {"enabled": True},
    },
)

By default LiveKit runs its own turn detector. Set turn_handling as above to hand turn-taking to Reson8 instead.

Transcribing a file

event = await reson8.STT().recognize(audio_buffer)
print(event.alternatives[0].text)

Configuration

Parameter Env var Default
api_key RESON8_API_KEY required
api_url RESON8_API_URL https://api.reson8.dev
language None (auto-detect; one or more of SupportedLanguages, e.g. "nl,de" or ["nl", "de"])
sample_rate 16000
encoding "pcm_s16le"
channels 1
custom_model_id None (custom model for recognition biasing)
include_timestamps False
include_words False
include_confidence False (batch recognition)
include_language False (report detected language while streaming)
eager_turn_probability None (server default 0.5)
final_turn_probability None (server default 0.92)

STT.update_options(...) changes settings at runtime; active streaming sessions reconnect automatically to apply them.

Turn detection

Reson8 decides turn boundaries by confidence: it emits the preflight transcript at eager_turn_probability and commits the turn at final_turn_probability. Lower final_turn_probability to commit sooner, at the risk of cutting off longer utterances.

flush() commits the current turn immediately, keeping final_turn_probability intact. LiveKit never calls it for you.

See Turns for how turn events work server-side.

Running the example

cp .env.example .env
# Fill in your keys
python examples/voice_agent.py dev

Development

We use uv to manage the environment and dev dependencies, so you'll need to have it installed.

uv sync sets everything up — it reads the pinned Python version from .python-version, creates a .venv/, and installs the dev tools (Ruff and mypy).

Run the tooling through uv run, which uses the project environment without you having to activate anything:

uv run ruff check .    # lint
uv run ruff format .   # format
uv run mypy            # type-check

Release files for livekit-plugins-reson8 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for livekit-plugins-reson8 0.2.3
File Size Uploaded
livekit_plugins_reson8-0.2.3.tar.gz 203.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for livekit-plugins-reson8 0.2.3
File Interpreter ABI Platform
livekit_plugins_reson8-0.2.3-py3-none-any.whl Python 3 none any Details

Total release size: 219.8 kB

Release files / livekit_plugins_reson8-0.2.3.tar.gz

Download URL livekit_plugins_reson8-0.2.3.tar.gz
Size 203.5 kB
Tags Source
SHA-256 checksum
How to use checksums
9b758df43c39a063bd7fad4a4e6f67926e561397b263571c8d8d036284465a9c
BLAKE2b-256 checksum
How to use checksums
b150f77ed53bdb94e09fb6fd69b7c457932bd1ff79f0ab262c9054f58b418c81
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 Aug 13, 2026.

Transparency log

Release files / livekit_plugins_reson8-0.2.3-py3-none-any.whl

Download URL livekit_plugins_reson8-0.2.3-py3-none-any.whl
Size 16.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9f4dcd4cbc8441c16ffcb24a1538e374dd1bb48ee53ba9bba1617c3d65cf2a2f
BLAKE2b-256 checksum
How to use checksums
d1810652bb2159793c495afe98035e306c28b2074798bfae33dd407c041e1a3b
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 Aug 13, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.4

2 release files

This release

0.2.3 This release

2 release files

0.2.2

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page