Community-maintained integration. This service is built and maintained by adhiraj4802. Pipecat does not test or officially support it. Please report issues and request changes on the source repository. Learn more about community integrations.
Overview
TurnBlendAnalyzer is a turn analyzer backed by turn-blend.onnx, a single 56 MB model file that contains
Silero VAD v6.2, Smart Turn v3.2, p99lab’s
turn-1-mini and a logistic blend of the two end-of-turn scores
with the elapsed silence. It runs locally on the CPU, needs no API key or GPU, and decides from audio alone.
On LiveKit’s eot-bench (English, 400 turns, cross-validated) the blend
makes fewer false cut-offs than either model inside it: 20.1% at a 300 ms latency budget, against 22.6% for
turn-1-mini and 35.2% for Smart Turn v3.2. It is behind the best hosted models. The blend’s weights were fitted
on that same dataset, so expect a smaller gain on other audio; the
benchmark page has the full
tables, the latency measurements and the limits.
English only, because turn-1-mini is English only. For other languages use
Pipecat’s built-in Smart Turn.
Source Repository
Source code, example bot, and issues for the Turn Blend integration
Benchmarks
eot-bench results and CPU latency measurements
Installation
This is a community-maintained package distributed separately frompipecat-ai:
Prerequisites
- Pipecat 1.0 or later (tested with
pipecat-ai1.16.0) - 16 kHz input audio: set
PipelineParams(audio_in_sample_rate=16000) - 2 or more CPU threads for the model to keep up in real time
~/.cache/turn-blend.
The plugin code and blend are Apache-2.0. The model file also contains the unmodified weights of Silero VAD
(MIT), Smart Turn v3.2 (BSD 2-Clause) and turn-1-mini (Apache-2.0); all of those licences apply to it.
Usage
Configuration
Callback with the result of each ended turn: the reason (
commit or
timeout), the silence waited, the detection delay and the three scores. The
same dict is kept in last_result.turn.detector.configure(...), or read from a JSON file and
TURN_BLEND_<SETTING> environment variables with load_settings(). The
README lists them.