Community-maintained integration. This service is built and maintained by SaidwireLLC. Pipecat does not test or officially support it. Please report issues and request changes on the source repository. Learn more about community integrations.
Overview
SaidwireSTTService provides real-time English speech-to-text through
Saidwire. It extends Pipecat’s WebsocketSTTService, so
connection management, reconnection, keepalive and metrics follow the same patterns as
the built-in services. Interim results are pushed as InterimTranscriptionFrame and
finals as TranscriptionFrame.
When a VADUserStoppedSpeakingFrame arrives, the service sends Finalize, and Saidwire
answers right away with the final transcript of everything heard so far. That final is
pushed with finalized=True, so turn-taking doesn’t wait on a server-side pause.
Source Repository
Source code, README, changelog and issues
Example
A voice agent that hears the user through Saidwire
Saidwire API Docs
Streaming protocol, parameters, limits and error codes
PyPI Package
The
pipecat-saidwire package on PyPIInstallation
This is a community-maintained package distributed separately frompipecat-ai:
Prerequisites
Saidwire Account Setup
Before using the Saidwire STT service, you need:- Saidwire Account: Sign up at saidwire.com/dev
- API Key: Create a key from your dashboard
Required Environment Variables
SAIDWIRE_API_KEY: Your Saidwire API key
Configuration
str
default:"None"
Saidwire API key. Defaults to the
SAIDWIRE_API_KEY environment variable.str
default:"wss://api.saidwire.com/v1/listen"
Streaming endpoint.
int
default:"None"
Sample rate of the incoming audio in Hz (8000 to 48000). If
None, uses the
pipeline’s input sample rate.bool
default:"True"
Send
Finalize when a VADUserStoppedSpeakingFrame arrives, so the final
transcript comes back right away.float
default:"300.0"
Seconds to keep retrying while the service answers “starting up” or “busy”
(HTTP 503 or 429) before reporting a permanent error.
float
default:"0.30"
P99 latency from speech end to final transcript, in seconds, used by turn
strategies. Measure your own deployment with
stt-benchmark and pass the
result.
Settings
Runtime-configurable settings passed via thesettings constructor argument
using SaidwireSTTService.Settings(...). They can be updated mid-conversation with
STTUpdateSettingsFrame; a change reconnects the stream between user turns.
Usage
Basic Setup
With Early Words
Notes
- Audio format: The service sends 16-bit mono PCM at the pipeline’s input rate.
- Idle connections: While no audio flows (for example, while the user is muted),
the service sends
KeepAlivemessages instead of silent audio. - Errors: A bad or revoked key, or used-up credit, is reported once as a permanent error, with no retry loop.
- Language: English only.