- On a **short pause** (silence window), the current transcript is sent.
- Replies are **written to WebChat** (same as typing).
- **Interrupt on speech** (default on): if the user starts talking while the assistant is speaking, we stop playback and note the interruption timestamp for the next prompt.
## Voice directives in replies
The assistant may prefix its reply with a **single JSON line** to control voice:
```json
{"voice":"<voice-id>","once":true}
```
Rules:
- First non-empty line only.
- Unknown keys are ignored.
-`once: true` applies to the current reply only.
- Without `once`, the voice becomes the new default for Talk mode.