Repository navigation
fix: report speech end timestamps across stt plugins #7796
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
chenghao-mou
wants to merge
29
commits into
chenghao/fix/AGT-3678-stt-timestamp-anchor
from
chenghao/fix/AGT-3678-stt-eos-timestamps
+2,754
−227
Open
Changes from all commits
Commits
Show all changes
29 commits
Select commit
Hold shift + click to select a range
05f3300
fix(stt): anchor transcript timestamps on the session input start
chenghao-mou fe33192
fix(stt): anchor the offset on consumed audio and keep custom nodes f…
chenghao-mou 26820a3
fix(stt): stamp resampled frames with the capture time of their audio
chenghao-mou 2cdf6bc
fix(stt): keep capture gaps when stamping resampled frames
chenghao-mou 953bdfa
fix(stt): report speech end timestamps on endpoint events
chenghao-mou b0d5b5e
fix(stt): anchor the offset on push and drop the resampler span tracking
chenghao-mou 90a815b
fix(stt): preserve endpoint boundaries and valid timing
chenghao-mou 95b9e55
fix(stt): retain verified duration-only endpoint timing
chenghao-mou 15ba66f
docs(stt): state the timestamp contract on stt_node and rename the of…
chenghao-mou b19759c
refactor(stt): keep one offset helper and write the setter inline
chenghao-mou d316acd
refactor(stt): rename the offset helper to _capture_start_offset_from
chenghao-mou 668586e
refactor(stt): seed the fallback leg with a walrus
chenghao-mou 1383597
chore(stt): assign the queued-frame TODO
chenghao-mou 0d948d1
fix: preserve EOS timing across streaming STT plugins
chenghao-mou 7137157
fix(openai): re-anchor STT endpoints after internal reconnects
chenghao-mou 44af029
refactor(elevenlabs): share speech endpoint emission
chenghao-mou 9386a25
refactor(stt): keep the stream timeline in the input channel
chenghao-mou 2a48ebf
test(voice): restore the input_started_at stamping check
chenghao-mou b0ea418
Merge updated STT timestamp anchor into EOS timing fixes
chenghao-mou 5ba998d
fix(stt): anchor queued audio on its oldest capture across input pauses
chenghao-mou 8161e25
fix(stt): seed a fallback leg that starts before the timeline
chenghao-mou 4e59347
test(stt): describe the first-audio anchor for custom nodes
chenghao-mou fda46fa
Merge updated STT timestamp anchor into EOS timing fixes
chenghao-mou 10dfa08
Merge rebased STT timestamp anchor into EOS fixes
chenghao-mou b605fe1
test(stt): bound skewed timestamp clamp by arrival time
chenghao-mou 9c585c3
fix(stt): re-anchor provider clocks on internal reconnects
chenghao-mou 42de4f1
chore: isolate elevenlabs speech endpoint timing
chenghao-mou 5f5b302
fix: report speech end times across other stt plugins
chenghao-mou 7820a64
fix(xai): preserve speech timing on wordless completion
chenghao-mou File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
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
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
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
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
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
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
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
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🟡 Baseten empty finals discard speech timing
When Baseten sends timed segments before an empty final,
segmentsis empty at the endpoint. The endpoint loses the preceding segment's end time and falls back to arrival timing.Learn more
The receiver keeps
speakingacross non-final messages, but it only readssegmentsfrom the current message. An empty commit-triggered final can therefore close a turn after an earlier timed transcription without carrying that earlier timestamp. The new endpoint alternatives stay empty.Example: A non-final transcription supplies a segment ending at 0.4 seconds; the subsequent final has
segments=[]. END_OF_SPEECH has no timestamp, although the preceding message supplied one.Recommended fix: Keep the last valid segment end while the turn is open and use it for an empty final. Clear it when the turn closes so a later turn cannot inherit it.
Was this helpful? React with 👍 or 👎 to provide feedback.