Skip to content

Detect untranscribed filled pauses as ... filler placeholders - #60

Merged
wassgha merged 2 commits into
mainfrom
cursor/disfluency-placeholders-f275
Aug 2, 2026
Merged

wassgha merged 2 commits into
mainfrom
cursor/disfluency-placeholders-f275

Conversation

@wassgha

@wassgha wassgha commented Aug 2, 2026 •

Copy link
Copy Markdown
Owner

Summary

When ASR drops fillers (um / uh) but VAD still hears speech, insert ... placeholders so those spans are editable.

This is not Descript’s “shorten word gaps” (silence tightening). It’s recovery of filled pauses that never made it into the transcript text.

Behavior

  • After Whisper align (and after Parakeet cleanup), find speech frames with no covering word
  • Ignore short Silero hangover (~150ms) so word tails aren’t mistaken for fillers
  • Insert ... words (≥0.3s) into the transcript
  • ... counts as a filler → Remove filler words cuts them
  • Distinct amber styling in the transcript and word timeline
  • Prevents those spans from being misclassified as removable silence

Files

  • lib/disfluencies.ts — detection + insertion
  • lib/fillers.ts — treat ... as filler
  • workers/transcription.worker.ts — run on Whisper + Parakeet paths
  • TranscriptPanel / Timeline — show placeholders
  • Tests in tests/disfluencies-test.ts + filler coverage

Test plan

  • npx tsx tests/disfluencies-test.ts
  • npx tsx tests/fillers-test.ts
  • npx tsx tests/silences-test.ts
  • Manual: clip with audible um/uh that Whisper omits → ... appears in transcript + wordbar
  • Manual: Remove filler words cuts both um/uh and ...
  • Manual: true silence gaps still go to Remove silences, not ...
Open in Web Open in Cursor 

cursoragent and others added 2 commits August 2, 2026 20:01
When VAD marks speech that no ASR token covers (typical um/uh that
Whisper drops), insert whisper-timestamped-style [*] words into the
transcript. They render distinctly in the transcript and word timeline,
count as fillers, and are cut by Remove filler words. Short Silero
hangover gaps are ignored so real word tails are not mistaken for fillers.

Co-authored-by: Wassim Gharbi <wassgha@gmail.com>
Use ellipsis in the transcript and word timeline for a clearer,
less technical marker while keeping the same filler-cut behavior.

Co-authored-by: Wassim Gharbi <wassgha@gmail.com>
@cursor cursor Bot changed the title Detect untranscribed filled pauses as [*] filler placeholders Detect untranscribed filled pauses as ... filler placeholders Aug 2, 2026
@wassgha
wassgha marked this pull request as ready for review August 2, 2026 21:29
@wassgha
wassgha merged commit 2f77869 into main Aug 2, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants