Community-maintained integration. This service is built and maintained by jhwanseok. Pipecat does not test or officially support it. Please report issues and request changes on the source repository. Learn more about community integrations.
Overview
RTZRSTTService provides streaming speech-to-text through
RTZR (Return Zero) VITO, a Korean speech recognition API.
Its sommers_ko model is tuned for Korean telephone audio, which suits
call-center voice agents. The service extends Pipecat’s WebsocketSTTService
and pushes InterimTranscriptionFrame and TranscriptionFrame results into
the pipeline. When the VAD reports the end of speech it sends Finalize, so
the utterance closes right away instead of waiting for RTZR’s own end-point
detection.
Source Repository
Source code, README, and issues for the RTZR integration
Example
A Korean voice bot with RTZR STT
RTZR Streaming STT Reference
Endpoint, parameters, and messages
RTZR Developers
Create a client ID and secret
PyPI Package
The
pipecat-rtzr package on PyPIInstallation
This is a community-maintained package distributed separately frompipecat-ai:
Prerequisites
RTZR Account Setup
Before using the RTZR STT service, you need:- RTZR Account: Sign up at the RTZR Developers Console
- Client ID and Secret: Create a client in the console
Required Environment Variables
RTZR_CLIENT_ID: Your RTZR client IDRTZR_CLIENT_SECRET: Your RTZR client secret
Configuration
str
default:"None"
RTZR client ID. Defaults to the
RTZR_CLIENT_ID environment variable.str
default:"None"
RTZR client secret. Defaults to the
RTZR_CLIENT_SECRET environment
variable.str
default:"https://openapi.vito.ai"
Base URL of the RTZR OpenAPI. The WebSocket URL is derived from it.
int
default:"None"
Sample rate of the incoming audio in Hz (8000 to 48000). If
None, uses the
pipeline’s input sample rate. 8 kHz is the native telephony rate.bool
default:"True"
Send
Finalize when the VAD reports the end of speech. Without it, an
utterance cut off mid-speech is not finalized until the stream ends.float
default:"2.0"
Seconds to wait for the last transcript after
EOS on shutdown, when an
utterance is still open. 0 closes right after sending EOS.float
default:"None"
P99 latency from speech end to final transcript, in seconds, used by turn
strategies. This value has not been measured for Pipecat, so Pipecat’s default
applies if
None. Measure your deployment with
stt-benchmark and pass the
result.Settings
Runtime-configurable settings passed via thesettings constructor argument
using RTZRSTTService.Settings(...). These can be updated mid-conversation with
STTUpdateSettingsFrame; a change reconnects the stream, because RTZR reads
them from the connection URL.
Usage
Basic Setup
With Punctuation and Keyword Boosting
Notes
- Audio format: The service sends 16-bit mono PCM (
LINEAR16). - Reconnects: If the socket drops, the service reconnects automatically. The utterance in progress when it dropped is lost, because audio is not replayed.
- Idle connections: RTZR can close a connection that receives no audio for 60 seconds, so the service sends silent audio as a keepalive.
- Concurrency: Streaming channels are limited by your RTZR plan.