Skip to content

Add push-to-talk mode and allow longer time to read problems #220

Description

@Nomask-CHY

Summary

During the interview, two conversational pacing issues degrade the practice experience:

  1. Aggressive Turn-Taking on Slower Speech: For candidates who speak at a deliberate pace or pause briefly to construct sentences, the VAD (Voice Activity Detection) prematurely marks the end of an utterance, causing Jim to cut in before the sentence is finished.
  2. Hardcoded / Overly Brief Reading Buffer: When asking for time to read the problem description or think through the approach, Jim often grants only a very short, rigid window (around 1 minute) and automatically interrupts/prompts the candidate even if more time was requested.

Motivation & Observed Behavior

  • VAD Truncation: During complex explanations (e.g., REACTO Approach/Code phases), a 1~2 second pause does not mean the candidate has yielded the floor. Premature interruption fragments the candidate's line of thought and produces incomplete transcriptions.
  • Reading Time Constraints: Comprehending algorithmic problem descriptions, constraints, and edge cases often requires 2–3 minutes. Fixed-interval prompting causes unnecessary pressure and disrupts the candidate's reading flow.

(Related to #140, #172, and #188)


Proposed Solutions

1. Push-to-Talk (PTT) Mode (Alternative to Auto-VAD)

  • Add a configurable Push-to-Talk (PTT) toggle (e.g., hold Spacebar or a dedicated on-screen button to record, release to send).
  • While Jim is speaking, disable recording input to prevent acoustic bleed and unintentional interruption.
  • This provides an explicit boundary for utterances and completely eliminates false pauses caused by deliberate speech.

2. Configurable / Adaptive Silence Duration & Explicit Wait State

  • Silence Threshold Tuning: Expose a setting or increase the default trailing silence detection window (e.g., debounce threshold from ~700ms to 1.5s–2.0s) before Jim claims the floor.
  • Dedicated Reading State: When entering the problem inspection phase or when the candidate explicitly requests time (e.g., "Give me 2 minutes to read"), pause Jim's automated nudge timer until the candidate explicitly triggers an interaction (via voice or a "Ready" button).

Environment

  • OS: Windows 11 (x86_64)
  • Browser: Google Chrome / Microsoft Edge

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions