Repository navigation
berd-call: tune listening and interruption per audio setup - #421
Closed
johnmatthewtennant wants to merge 11 commits into
Closed
johnmatthewtennant wants to merge 11 commits into
johnmatthewtennant wants to merge 11 commits into
Conversation
added 6 commits
October 21, 2026 21:35
Signed-off-by: Zack <04f47b290b155b3b8b782b11501cdb15f1e21e82dfceefd01ff0ed405459d927@buzz.block.builderlab.xyz>
Signed-off-by: Zack <04f47b290b155b3b8b782b11501cdb15f1e21e82dfceefd01ff0ed405459d927@buzz.block.builderlab.xyz>
Signed-off-by: Zack <04f47b290b155b3b8b782b11501cdb15f1e21e82dfceefd01ff0ed405459d927@buzz.block.builderlab.xyz>
Signed-off-by: Zack <04f47b290b155b3b8b782b11501cdb15f1e21e82dfceefd01ff0ed405459d927@buzz.block.builderlab.xyz>
Signed-off-by: Zack <04f47b290b155b3b8b782b11501cdb15f1e21e82dfceefd01ff0ed405459d927@buzz.block.builderlab.xyz>
Signed-off-by: Zack <04f47b290b155b3b8b782b11501cdb15f1e21e82dfceefd01ff0ed405459d927@buzz.block.builderlab.xyz>
Signed-off-by: Zack <04f47b290b155b3b8b782b11501cdb15f1e21e82dfceefd01ff0ed405459d927@buzz.block.builderlab.xyz>
Signed-off-by: Zack <04f47b290b155b3b8b782b11501cdb15f1e21e82dfceefd01ff0ed405459d927@buzz.block.builderlab.xyz>
Signed-off-by: Zack <04f47b290b155b3b8b782b11501cdb15f1e21e82dfceefd01ff0ed405459d927@buzz.block.builderlab.xyz>
Signed-off-by: Zack <04f47b290b155b3b8b782b11501cdb15f1e21e82dfceefd01ff0ed405459d927@buzz.block.builderlab.xyz>
Signed-off-by: Nora <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
This was referenced Oct 22, 2026
Contributor
Author
|
🤖 Consolidated into #426 with capture and replay. Device profiles and VAD timing are preserved, with the accepted unused saved-argument cleanup. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
False local speech detections can hold an agent reply before playback or pause it while it plays. Conventional calls now have independent listening and interruption thresholds, with optional experimental tuning for macOS speech recognition. Each enabled threshold moves one 0.01 tick after each qualifying unmatched detection/transcript outcome, without a cooldown, within bounds of 0.10 to 0.95. Manual values retain the full 0 to 1 range.
The standalone macOS host saves applied values and dynamic choices by stable microphone/output device UID pair, restoring them on startup and device changes. Explicit CLI flags override only their matching profile choices. Input epochs and ambiguous mode changes discard stale evidence; conditional writes protect manual edits from late learning. Session protocol 6 reports applied values and evidence counters and requires a matching host. Realtime Spokesperson VAD is unchanged. No architectural laws change.
Related issue
Related speech activity work: #419.
Testing
The runtime feedback regression drives an unmatched detection through the production controls and observes listening change from 0.50 to 0.51. A transcript-only outcome during playback change interruption from 0.65 to 0.64 while listening stays at 0.51. These updates apply without replacing the runtime. Manual mode, dynamic bounds and stale input epochs have separate coverage.
A framed-host regression switches between two saved device UID pairs, checks the corresponding settings requests, and rejects old learning until the new profile is acknowledged. Explicit-override coverage verifies that threshold and dynamic flags override only matching saved profile choices while unspecified choices retain their saved values.
The built native CLI queried the current device pair and saved/restored both settings in an isolated temporary directory without starting capture. Live microphone tuning and physical device switching remain unverified.
Apple recognition also has configurable onset (16–1000 ms) and release (16–3000 ms), defaulting to 16 ms and 300 ms. They persist with each audio setup; old profiles receive defaults. Continuous recognition still receives every frame, and finalized transcripts are forwarded immediately. Session protocol 7 carries the timing fields. Frame-sequence tests cover onset filtering and release; the native profile CLI round trip preserves 48 ms onset and 160 ms release. Live microphone timing acceptance remains unverified.