Skip to main content

pipecat-rtzr

Streaming Korean speech-to-text for Pipecat, using the RTZR (Return Zero) VITO WebSocket API.

Status: alpha (0.1.0). Unit and mock-server tests run without credentials. Streaming, Finalize, EOS, token refresh and reconnect were checked against the live RTZR service on 2026-10-21 with short synthesized Korean clips (see scripts/live_check.py). Not yet tried with real telephone audio or long calls.

RTZR's sommers_ko model is tuned for Korean telephone audio (8 kHz), which makes it a good fit for call-center voice agents.

Installation

pip install pipecat-rtzr

Prerequisites

  • An RTZR account. Create a client in the RTZR Developers Console to get a client_id and client_secret (new accounts include free minutes).
  • Set the credentials as environment variables:
export RTZR_CLIENT_ID=...
export RTZR_CLIENT_SECRET=...

Usage

from pipecat_rtzr import RTZRSTTService

stt = RTZRSTTService(
    settings=RTZRSTTService.Settings(
        domain="CALL",
        use_punctuation=True,
        keywords=[("리턴제로", 3.0), "상담원"],
    ),
)

pipeline = Pipeline([transport.input(), stt, user_aggregator, llm, tts, transport.output()])

See example.py for a complete bot, and example_mock.py for a run that needs no credentials.

Behavior

  • Audio is streamed as 16-bit mono PCM (LINEAR16, 8 to 48 kHz).
  • Partial results become InterimTranscriptionFrames; completed utterances become TranscriptionFrames.
  • When the VAD reports the end of speech, a Finalize message closes the utterance right away (vad_force_finalize=True, the default).
  • The access token is cached and refreshed before it expires. A rejected handshake (HTTP 401) fetches a new token and retries once.
  • Idle connections are kept alive with silent audio (RTZR closes sockets after 60 s without audio).
  • On shutdown the service sends EOS so the last utterance is flushed, and waits up to eos_flush_timeout seconds (default 2) for its final transcript when one is still open.
  • If the socket drops, the service reconnects automatically. Audio of the utterance that was in progress when the socket dropped is not replayed, so that utterance is lost.
  • Changing a setting at runtime reconnects the stream.

Settings

Setting Default Notes
model sommers_ko sommers_ko, sommers_ja, whisper
language Language.KO sent only for whisper
domain CALL CALL or MEETING
use_itn True inverse text normalization
use_disfluency_filter False
use_profanity_filter False
use_punctuation False
keywords None up to 100 words of 20 characters; boost -5.0 to 5.0; sommers_ko only
epd_time, noise_threshold, active_threshold server default end-point and activity tuning

Streaming concurrency is limited by your RTZR plan (5 channels on the free tier).

Development

uv venv && uv pip install -e . pytest pytest-asyncio ruff
pytest          # unit tests and mock-server integration tests, no credentials needed
ruff check . && ruff format --check .

Compatibility

Tested with Pipecat 1.13.0 and Python 3.12 (Windows).

License

BSD 2-Clause.

Metadata

Release files for pipecat-rtzr 0.1.0

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

Source distribution (sdist)

Source distribution for pipecat-rtzr 0.1.0
File Size Uploaded Provenance Actions
pipecat_rtzr-0.1.0.tar.gz 18.6 kB Without provenance Details for pipecat_rtzr-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pipecat-rtzr 0.1.0
File Interpreter ABI Platform Actions
pipecat_rtzr-0.1.0-py3-none-any.whl Python 3 none any Details for pipecat_rtzr-0.1.0-py3-none-any.whl

Total release size: 30.2 kB

Release files / pipecat_rtzr-0.1.0.tar.gz

Download URL pipecat_rtzr-0.1.0.tar.gz
Size 18.6 kB
Tags Source
SHA-256 checksum
How to use checksums
b18311c7b7e0216d6c58656f8ea3820d82caaf6f6defa0913ae9bd9afd38f6cf
BLAKE2b-256 checksum
How to use checksums
49d6e7382141d0b59d614834f315f71f734d39cb894269500606838108754b1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / pipecat_rtzr-0.1.0-py3-none-any.whl

Download URL pipecat_rtzr-0.1.0-py3-none-any.whl
Size 11.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b9a6ef95a8379c61329dd54cf3991686f42b0e31428e479f2915e4702b22defe
BLAKE2b-256 checksum
How to use checksums
641192bf788c27278126be66b799ecfbb9456ed1af198647de0d81a4a0805b2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for pipecat-rtzr 0.1.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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