Skip to content

Sync plain-text transcripts to audio - #24

Draft
wassgha wants to merge 3 commits into
mainfrom
cursor/sync-text-transcript-e2e4
Draft

Sync plain-text transcripts to audio#24
wassgha wants to merge 3 commits into
mainfrom
cursor/sync-text-transcript-e2e4

Conversation

@wassgha

@wassgha wassgha commented Jul 28, 2026

Copy link
Copy Markdown
Owner

Summary

Adds Descript-style sync for plain-text transcripts (no timestamps), including paste. Timed SRT/VTT/JSON import is unchanged.

How it works

Same idea as Descript’s “Use your own transcript”:

  1. Import transcript → paste text (or choose a file)
  2. Optional speaker labels: Speaker Name: dialogue
  3. Drop media (or Replace mid-session)
  4. Whisper runs for timing only (plain text); timed captions skip Whisper
  5. Your words are aligned onto those timestamps (Needleman–Wunsch; gaps interpolate)
  6. Reference spelling + speaker labels are kept

UI

  • Upload source menu → Import opens a paste dialog (“Use transcript” + “Choose file…”)
  • Editor transcript panel → Import opens the same dialog (“Sync transcript” when replacing)

Test plan

  • Import → paste Alice: … / Bob: … → trigger shows pasted transcript / syncs to audio
  • Drop media → progress says syncing → transcript uses pasted text with sensible timings
  • Paste or choose an SRT/VTT/JSON → still skips Whisper and loads immediately
  • Mid-session Import → paste → Sync replaces/aligns against the current transcript
  • Choose file… from the dialog still works
  • npx tsx scripts/parse-transcript-test.ts passes
Open in Web Open in Cursor 

Accept .txt (and unlabeled plain text) with optional "Speaker: " labels.
Timed SRT/VTT/JSON still skip Whisper; untimed text runs Whisper for
timing then Needleman–Wunsch-aligns the user's words onto those stamps.
Works from the upload import option and mid-session Replace.
Import transcript now opens a Descript-style dialog to paste plain text
(or timed captions), with Choose file as a secondary path. Same dialog
powers mid-session Replace in the transcript panel.
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