Metadata-Version: 2.4
Name: livekit-plugins-rtzr
Version: 1.5.0
Summary: Agent Framework plugin for RTZR Streaming STT
Project-URL: Documentation, https://docs.livekit.io
Project-URL: Website, https://livekit.io/
Project-URL: Source, https://github.com/livekit/agents
Author-email: RTZR <support@rtzr.ai>
License-Expression: Apache-2.0
Keywords: audio,livekit,realtime,rtzr,speech-to-text,video,webrtc
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Multimedia :: Video
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10.0
Requires-Dist: aiohttp>=3.9.0
Requires-Dist: httpx>=0.24.0
Requires-Dist: livekit-agents>=1.5.0
Description-Content-Type: text/markdown

# RTZR plugin for LiveKit Agents

Support for RTZR Streaming STT via WebSocket interface, following the "Streaming STT" guide in the RTZR Developers docs.

- Docs: `https://developers.rtzr.ai/docs/en/` (see Streaming STT)

## Installation

```bash
pip install livekit-plugins-rtzr
```

## Prerequisites

Obtain `client_id` and `client_secret` from the RTZR Developers Console.

Set credentials as environment variables:

```
RTZR_CLIENT_ID=<your_client_id>
RTZR_CLIENT_SECRET=<your_client_secret>
```

```
# Override base HTTP API URL (used for token issuance)
RTZR_API_BASE=https://openapi.vito.ai

# Override WebSocket URL (used for live streaming)
RTZR_WEBSOCKET_URL=wss://openapi.vito.ai
```

If `RTZR_WEBSOCKET_URL` is not set, the plugin will derive it from `RTZR_API_BASE` by replacing the scheme with `wss://`.

## Usage

Use RTZR STT in an `AgentSession` or as a standalone streaming service.

```python
from livekit.agents import AgentSession
from livekit.plugins import rtzr

# Basic usage with env-based credentials
stt = rtzr.STT()

session = AgentSession(
    stt=stt,
    # ... llm, tts, etc.
)
```

Keyword boosting (Streaming STT only, sommers_ko model only):

```python
stt = rtzr.STT(
    model="sommers_ko",
    keywords=[
        "키워드",
        ("부스팅", 3.5),
        "키위드:-1.0",
    ],
)
```

Rules:
- Use list entries as `keyword` or `keyword:score`, or use `(keyword, score)` tuples.
- Score must be between -5.0 and 5.0, up to 100 keywords, each <= 20 chars.
- Keywords must be written in Korean pronunciation (Hangul and spaces only); non-Korean input will error.

Notes:
- The WebSocket streaming endpoint accepts raw PCM frames when `encoding=LINEAR16`.
- The plugin relies on the server-side endpointing (EPD). You do not need to send finalize messages.
- When the pipeline closes the stream, the plugin sends `EOS` to end the session.
