Purpose
Create a clean transcript object that downstream processes can trust without depending on a specific recorder.
When to use it
- A meeting transcript comes from Granola, Zoom, Teams, Otter, Whisper, Apple Notes, or local speech-to-text.
- The transcript has uneven speaker labels, missing timestamps, or mixed notes and dialogue.
- You need a neutral input before summarization, action extraction, or speaker verification.
Inputs
- Raw transcript or audio-derived text
- Source name and capture time
- Optional timestamps, speaker labels, and meeting title
Outputs
- Normalized transcript segments
- Source metadata
- Known gaps and confidence notes
Steps
- Record the source system, capture time, meeting title, and transcript format.
- Split the content into ordered segments with timestamp and speaker fields when available.
- Preserve uncertain labels instead of silently repairing them.
- Remove recorder boilerplate while keeping human notes clearly marked.
- Emit a gap list for missing time ranges, low-confidence text, or obvious truncation.
Quality checks
- Segment order matches the source order.
- No speaker label is invented without evidence.
- Quoted or paraphrased text is not mixed with agent commentary.
- The output declares whether timestamps are exact, approximate, or absent.
Failure modes
- Transcript export cuts off before the end of the meeting.
- A diarization model assigns the same person multiple labels.
- The source mixes private prep notes with spoken transcript text.
Privacy notes
- Treat transcripts as sensitive by default.
- Keep raw and normalized transcript storage separate from public summaries.
- Redact names or customer details before using public examples.
Example prompt
Normalize this transcript into ordered segments. Preserve uncertain speaker labels, keep timestamps when present, and list any gaps or confidence issues.
Example structured output
{"segments":[{"time":"00:03:14","speaker":"Speaker 1","text":"We need the first version by Friday.","confidence":"medium"}],"gaps":["No attendee roster provided"],"source":{"system":"local STT","timestampQuality":"approximate"}}