07Reference
Models
The turn-taking and backchannel models Cuelo runs, evaluates and tracks.
LLMs and speech run at providers. The turn-taking models run locally, on
your CPU, inside the engine. This catalog (schema/models.json) lists every
model Cuelo uses or has evaluated, with its license, size and cost.
cuelo models # integrated models
cuelo models --all # include ones still being evaluated
cuelo models --role turn # vad, turn, text_turn, barge, agent_backchannel, duplex, component
cuelo models info turn-1-mini
cuelo models pull --all # download every integrated and experimental model (sha256-verified)
cuelo models pull maai-turnWeights download on first use into $CUELO_MODELS (default
~/.cache/cuelo/models), pinned to a revision and checked by sha256.
Status:
- integrated: a Cuelo controller uses it.
- experimental: runs, but its controller isn't a default.
- evaluating: being tested.
- evaluated: tested and not integrated.
- unsupported: can't run locally, or its license blocks it.
Roles:
vad: speech presence.turn: end of turn from audio.text_turn: end of turn from the transcript.barge: interruption versus user backchannel.agent_backchannel: when the agent says "mhm".duplex: models that hear both sides.component: shared parts, such as encoders.
Licenses
Check a model's license before you ship it. Most are permissive (MIT, Apache, BSD). The Mimi encoder used by MaAI is CC-BY-4.0 and requires attribution.
Integrated
silero-vad
Speech presence, 20 ms frames. Feeds every controller; not end-of-turn on its own.
| Role | vad |
| Config | always on (cuelo[silero]) |
| Source | snakers4/silero-vad |
| Languages | any |
| Parameters | 2M |
| CPU | ~0.1 ms / 20 ms |
| License | MIT |
| Download | bundled with the package |
smart-turn-v3
Semantic end of turn from audio: judges at each pause whether the speaker sounds done.
| Role | turn |
| Config | turns.controller: smart-turn |
| Source | pipecat-ai/smart-turn-v3 |
| Languages | 23 languages incl. English, Hindi |
| Parameters | 8M |
| CPU | ~40 ms per check |
| License | BSD-2-Clause |
| Download | 9 MB |
turn-1-mini
Streaming end of turn from audio, a score every 20 ms. Fastest endpointing in our tests.
| Role | turn |
| Config | turns.controller: turn-1-mini |
| Source | p99lab/turn-1-mini |
| Languages | English |
| Parameters | 5.4M |
| CPU | ~1.6 ms / 160 ms step |
| License | Apache-2.0 (credit: turn-1-mini by p99lab) |
| Download | 22 MB |
backchannel-detector
While the agent talks: user backchannel ("yeah") vs real interruption.
| Role | barge |
| Config | turns.barge_in_detector: backchannel-detector |
| Source | pipecat-ai/backchannel-detector |
| Languages | English |
| Parameters | 0.7M |
| CPU | ~0.3 ms / 40 ms |
| License | BSD-2-Clause |
| Download | 4 MB |
maai-turn
Voice Activity Projection from user + agent audio: end of turn and real interruptions vs backchannels.
| Role | turn |
| Config | turns.controller: maai (pip extra cuelo[maai], PyTorch) |
| Source | maai-kyoto/vap_en_kyoto |
| Languages | English |
| CPU | ~15 ms / 80 ms step (PyTorch) |
| License | MIT (code and weights; Kyoto English model) |
| Requires | ['maai-mimi-encoder'] |
| Download | 15 MB |
Holds all 3 real mid-sentence cuts; complete turns end 380-980 ms after speech; interrupts caught 80-160 ms after the user starts, backchannels let through. The non-Kyoto English VAP weights are CC-BY-NC-ND (not used). It also ends the turn in 0.6 s pauses between complete sentences of a longer story; pair it with maai-backchannel so the agent says "mhm" there.
maai-backchannel
When the agent should say "mhm": VAP-BC timing from both audio channels.
| Role | agent_backchannel |
| Config | turns.agent_backchannel: maai (pip extra cuelo[maai], PyTorch) |
| Source | maai-kyoto/vap_bc_en |
| Languages | English |
| Parameters | ~100M incl. encoder |
| CPU | ~15 ms / 80 ms step (PyTorch) |
| License | MIT (code and weights) |
| Requires | ['maai-mimi-encoder'] |
| Download | 403 MB |
Kit monologue at p>=0.5: 4/4 pauses hit, 1 extra trigger (after the turn ended). Vendored MaAI matches upstream within 5e-4.
maai-mimi-encoder
Streaming Mimi audio encoder (ONNX) shared by the MaAI models.
| Role | component |
| Config | pulled in by maai-backchannel / maai-turn |
| Source | maai-kyoto/continuous-mimi-onnx |
| Parameters | ~80M |
| License | CC-BY-4.0 (Kyutai Mimi; attribution) |
| Download | 156 MB |
Experimental
backchannel-cue
Picks which reaction the agent says (61 forms: mhm, oh no, nice, ...) from the live transcript.
| Role | agent_backchannel |
| Source | KoljaB/backchannel-cue-32m |
| Languages | English |
| Parameters | 32M |
| CPU | 3-11 ms per call |
| License | MIT (teacher labels partly from GPT models; check before shipping) |
| Download | 129 MB |
Phrase choice is good; its own gate fires too often (10/10 mid-sentence at the card's 0.09). Use it for wording, with a timing model deciding when.
Evaluating
anyreach-semantic-turn
Text-only: start speaking / keep listening / start listening / keep speaking.
| Role | text_turn |
| Source | anyreach-ai/semantic-turn-taking |
| Parameters | 0.5B |
| License | Apache-2.0 |
License-clean text detector; weights (473 MB) not yet downloaded here.
Evaluated
dualturn-endpointing
Dual-channel audio end of turn with future speech-activity signals (Mimi features).
| Role | duplex |
| Source | anyreach-ai/dualturn-endpointing |
| CPU | ~26 ms / 80 ms step |
| License | Apache-2.0 |
Fast on complete turns (240-280 ms) but also ends turns on real mid-sentence cuts (460-680 ms); no barge/backchannel head. Not integrated: turn-1-mini / maai-turn are more selective.
dualturn-0.5b
Dual-channel floor control: end of turn, hold, backchannel, yield.
| Role | duplex |
| Source | anyreach-ai/dualturn-qwen2.5-mimi-0.5B |
| Parameters | 0.5B |
| License | Apache-2.0 |
Not evaluated end to end: 6.6 GB weights; heavier than the controllers above.
Unsupported
tyger
Two-stream controller: listen / hold / speak / backchannel, interruption and endpoint scores.
| Role | duplex |
| Source | nineninesix/tyger |
| Parameters | 652M |
| CPU | 775 ms per 320 ms step on CPU (2.4x slower than realtime); ~95 ms on Apple MPS |
| License | OpenMDW-1.1 |
Can't keep up on CPU. Plausible on GPU/MPS later; OpenMDW-1.1 allows commercial use with notices.
easy-turn
Audio + linguistic turn state: complete, incomplete, backchannel, wait.
| Role | turn |
| Source | ASLP-lab/Easy-Turn |
| CPU | 0.7-1.7 s per decision on CPU |
| License | Apache-2.0 |
Not a streaming controller, trained mostly on Mandarin, no agent channel.
livekit-turn-detector
End of turn from the STT transcript.
| Role | text_turn |
| Source | livekit/turn-detector |
| Languages | multilingual |
| License | LiveKit Model License: LiveKit Agents only |
License forbids standalone use or use with other frameworks; also deprecated by LiveKit.
Adding a model
To integrate a new turn-taking model, add a catalog entry and a controller. See Add a turn-taking model.