Pipecat
This guide walks you through integrating Smallest AI TTS and STT into a Pipecat voice pipeline. Pipecat is an open-source Python framework for building real-time voice and multimodal conversational AI agents using a frame-based architecture.
Code Example
The complete runnable example lives in the Pipecat repository:
Pipecat Example - Smallest AI TTS + STT
Setup
1. Create a Virtual Environment
Activate it:
- On Linux/Mac:
- On Windows:
2. Install Pipecat with Smallest AI support
The smallest extra installs both the TTS and STT services for Smallest AI:
To run the full voice agent example, you also need:
daily- Daily transport, which the bot uses to manage audio rooms and connect participantsopenai- OpenAI LLM service for the language modelsilero- Silero VAD for voice activity detection and interruption handlingrunner- Pipecat development runner that creates Daily rooms automatically and serves the bot locally
3. Create a .env file
DAILY_API_KEY is required - the Pipecat runner creates a Daily room automatically at startup. If you want to reuse an existing room instead of creating a new one each run, set the optional DAILY_ROOM_URL variable.
Services
SmallestSTTService
Constructor parameters:
Settings (SmallestSTTService.Settings):
The STT service connects to the Waves v4 STT endpoint (wss://api.smallest.ai/waves/v1/stt/live?model=pulse) and streams audio frames from the pipeline, returning transcriptions with 64ms TTFT. Pipecat’s VAD triggers a finalize message on each end-of-utterance to flush the transcript while keeping the WebSocket session open for the next utterance.
SmallestTTSService
Constructor parameters:
Settings (SmallestTTSService.Settings):
The TTS service connects to wss://api.smallest.ai/waves/v1/tts/live and uses WebSocket streaming for low-latency, real-time audio delivery. The model field is sent per-message, so switching models takes effect on the next utterance without reconnecting.
Running the Example
Clone the Pipecat repository and navigate to the examples directory:
Create a .env file with the keys listed in the Setup section above, then run:
Daily transport - server mode (recommended):
Open http://localhost:7860 in your browser. The runner creates a Daily room automatically and redirects you to it.
Daily transport - direct mode (no web server, for quick testing):
The room URL is printed in the terminal. Open it in your browser to join.
The full source for voice-smallest.py is at examples/voice/voice-smallest.py. It sets up a complete interruptible voice bot using Smallest AI STT + TTS, OpenAI for the LLM, Silero VAD for interruptions, and Daily as the transport - all wired together with the Pipecat runner.
Notes
- The pipeline is interruptible: if a user speaks while the bot is talking, audio stops immediately and the pipeline re-engages - no custom logic needed.
- For any issues or questions, open an issue in the Pipecat repository or contact us on Discord.

