Fix missed quiet "yes" after phone confirmation: more sensitive VAD

After the phone confirmation a caller's "yes" wasn't picked up (silence) until
they repeated it louder. Logs: line was live and the half-duplex gate had
reopened, but VAD never fired for ~14s — the quick/quiet "yes" was below
threshold (min_volume 0.3, start_secs 0.2).

Now that HalfDuplexGate gates out the agent's echo while it speaks, VAD can be
sensitive without echo false-triggers (it only listens hard on the caller's
turn). Lowered min_volume 0.3->0.15, start_secs 0.2->0.1, and trimmed the echo
tail 0.5->0.25 so an answer right after the agent stops isn't dropped.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
tocmo0nlord
2026-06-27 17:36:20 +00:00
parent 32a3bb7136
commit b0df7fd5b0
3 changed files with 17 additions and 7 deletions

View File

@@ -52,9 +52,11 @@ info-only calls (no booking keyword) are never asked for a number.
`PIPELINE_SAMPLE_RATE = 16000`, `WIRE_SAMPLE_RATE = 8000` are already set correctly.
No custom audio module needed.
**VAD tuned for telephony**`confidence=0.5`, `min_volume=0.3` already loosened from
desktop defaults. These settings directly address the repeat-yourself problem on the
VAD side.
**VAD tuned for telephony**`confidence=0.5`, `min_volume=0.15`, `start_secs=0.1` — kept
sensitive so a quick/quiet "yes" isn't missed (a caller had to repeat it after the phone
confirmation). This is safe **because `HalfDuplexGate` gates out the agent's echo while it
speaks**, so sensitive VAD only listens hard during the caller's own turn and doesn't cause
echo false-triggers. Addresses the repeat-yourself / missed-short-answer problem.
**Capacity gating**`MAX_CONCURRENT_CALLS=2` with atomic slot reservation in
`server.py` prevents GPU thrashing. Keep it.