Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions fern/customization/voice-pipeline-configuration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -118,10 +118,10 @@ User Audio → VAD → Transcription → Start Speaking Decision → LLM → TTS
Voice Activity Detection (VAD) detects utterance-stop
</Step>
<Step title="Endpointing decision">
System evaluates completion using this priority order:
1. **Transcriber EOT detection** (if transcriber has built-in EOT and no smart endpointing plan)
2. **Custom Rules** (highest priority when configured)
3. **Smart Endpointing Plan** (LiveKit for English, Vapi for non-English)
System evaluates completion in this order and stops at the first step that applies:
1. **Transcriber EOT detection** (if the transcriber has built-in EOT and no `smartEndpointingPlan` is set, or the plan's provider is the transcriber itself). The turn ends on the transcriber's final transcript, and custom rules are not evaluated.
2. **Custom Rules** (if a rule matches, its timeout is used)
3. **Smart Endpointing Plan** (LiveKit for English, Vapi for non-English), or the heuristic `transcriptionEndpointingPlan` when no smart endpointing applies
</Step>
<Step title="Response generation">
LLM request sent immediately → TTS processes → waitSeconds applied →
Expand Down Expand Up @@ -508,7 +508,7 @@ Understanding exact timing helps optimize your voice pipeline configuration. Thi

### Custom endpointing rules

Highest priority rules that override all other endpointing decisions when patterns match.
Rules that override the smart endpointing plan and `transcriptionEndpointingPlan` when a pattern matches. They are not evaluated when the transcriber's own end-of-turn detection is in use (see [Start speaking process](#start-speaking-process)).

```json
{
Expand Down
Loading