[P2] ZARA-025 — Play a pre-generated immediate acknowledgement without blocking the turn #26

Closed
opened 2026-07-18 19:24:40 +00:00 by lost-rob0t · 1 comment
lost-rob0t commented 2026-07-18 19:24:40 +00:00 (Migrated from github.com)

Objective

After Zara detects a valid wake/turn start, respond immediately with a short acknowledgement such as “Okay” while speech capture and routing continue.

Required implementation

  • Add a small configurable acknowledgement set with a deterministic default.
  • Pre-generate/cache acknowledgement audio at startup for the active voice/provider, or ship an explicitly licensed local fixture for the default acknowledgement.
  • Trigger acknowledgement from the TurnCoordinator after wake acceptance, not after final transcription or command execution.
  • Do not send the acknowledgement through the LLM.
  • Ensure acknowledgement playback does not consume microphone frames as user speech, clip the user’s command, or claim successful execution.
  • If the user starts speaking immediately, prioritize capture and either suppress, duck, or stop the acknowledgement according to measured behavior.
  • Acknowledgement failure must not block command processing.

Required tests

  • Fake audio-output tests for cache hit/miss, startup generation failure, immediate user speech, duplicate wake events, cancelled turns, and disabled acknowledgement.
  • Verify acknowledgement contains no action-success wording.
  • Enforce the deterministic fixture budget from ZARA-022: wake-to-first-ack-audio p95 <= 350 ms, with a stricter target where hardware permits.
  • Add scripts/test-acknowledgement.sh and benchmark coverage.

Acceptance

  • Warm acknowledgement starts before final STT, Prolog, or LLM work.
  • Exactly one acknowledgement is associated with a turn.
  • The user can speak naturally without waiting for it to finish.

Branch

perf/zara-025-immediate-ack

Dependencies

ZARA-018, ZARA-022, ZARA-023, ZARA-024.

## Objective After Zara detects a valid wake/turn start, respond immediately with a short acknowledgement such as “Okay” while speech capture and routing continue. ## Required implementation - Add a small configurable acknowledgement set with a deterministic default. - Pre-generate/cache acknowledgement audio at startup for the active voice/provider, or ship an explicitly licensed local fixture for the default acknowledgement. - Trigger acknowledgement from the TurnCoordinator after wake acceptance, not after final transcription or command execution. - Do not send the acknowledgement through the LLM. - Ensure acknowledgement playback does not consume microphone frames as user speech, clip the user’s command, or claim successful execution. - If the user starts speaking immediately, prioritize capture and either suppress, duck, or stop the acknowledgement according to measured behavior. - Acknowledgement failure must not block command processing. ## Required tests - Fake audio-output tests for cache hit/miss, startup generation failure, immediate user speech, duplicate wake events, cancelled turns, and disabled acknowledgement. - Verify acknowledgement contains no action-success wording. - Enforce the deterministic fixture budget from ZARA-022: wake-to-first-ack-audio p95 <= 350 ms, with a stricter target where hardware permits. - Add `scripts/test-acknowledgement.sh` and benchmark coverage. ## Acceptance - Warm acknowledgement starts before final STT, Prolog, or LLM work. - Exactly one acknowledgement is associated with a turn. - The user can speak naturally without waiting for it to finish. ## Branch `perf/zara-025-immediate-ack` ## Dependencies ZARA-018, ZARA-022, ZARA-023, ZARA-024.
lost-rob0t commented 2026-07-20 04:12:09 +00:00 (Migrated from github.com)

Cache the TTS providers for the responses

Use random phrases like
"ok"
"yep"
"Alright"
"one second..."
so on and so forth do like 15+ ones

Cache the TTS providers for the responses Use random phrases like "ok" "yep" "Alright" "one second..." so on and so forth do like 15+ ones
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nsaspy/zara#26
No description provided.