Speakers
Know who said what, without uploading the interview
So walk me through how you found it in the first place.
Honestly? A support ticket. Someone pasted a stack trace.
And that was already in production by then.
Rescript labels every speaker in a recording automatically, running pyannote segmentation on your own machine alongside the Whisper transcript. Each block of text is grouped and colour-coded by who is talking, and every label is editable — rename, reassign a stretch of words, move a turn boundary, or merge two labels that turned out to be one person.
- Speaker detection
- Local diarization, speakers renameable
- Where your media goes
- Nowhere. It never leaves your device
- Works offline
- Yes, once the model has downloaded a first time
- Price
- Free and open source for noncommercial use
- Rewrite a line and have it spoken
- Yes — cloned from that speaker's own audio, on-device
- Export formats
- MP4, WebM, M4A, MP3, WAV, SRT, VTT, JSON
Step by step
How it works, start to finish.
- 01
Open the recording
Drop in a video or audio file. Whisper transcribes it and the speaker model runs alongside, so the transcript arrives already grouped by speaker rather than as one undifferentiated block.
- 02
Read it by turn
Each speaker gets a colour and a label — Speaker 1, Speaker 2, and so on. A two-person interview becomes readable at a glance, and a panel discussion stops being a wall of text.
- 03
Correct what it got wrong
Rename a speaker to their actual name, reassign words the model attributed to the wrong person, drag a turn boundary to where the handover really happened, merge two labels that are the same person, or add one it missed.
- 04
Use the labels
Export the transcript as text or Markdown grouped by speaker turns, or select one person's line and regenerate it in their own cloned voice — a speaker label is what tells Rescript whose voice to use.
Diarization that runs on your laptop
Speaker detection is normally a cloud feature, because the models are awkward to run in a browser. Rescript runs pyannote-segmentation-3.0 locally through ONNX, so a confidential interview gets speaker labels without being uploaded to anyone.
Long files are the hard part. The model was trained on ten-second windows, and feeding it an hour in one pass is the largest allocation in the app — enough to crash the tab. Rescript windows the audio instead and matches each window's speakers onto the ones already found, so a two-hour panel works like a two-minute clip.
The model is a first draft
Diarization gets things wrong: it splits one person in two when their voice changes, merges similar voices, and puts the handover late when people talk over each other. Labels you can't fix just move the problem.
So every part of the result is editable. Rename, reassign, move a boundary, merge, add, remove. The labels are yours to correct, and the corrections stick with the project.
What speaker labels unlock
Beyond readability, the labels do real work. The transcript export groups by speaker turn with cuts already removed, which is most of the way to an interview write-up or show notes.
They also gate voice regeneration. Rescript clones a voice per speaker, so it has to know who is talking before it can respeak a line — a selection spanning two speakers is refused rather than guessed at.
FAQ
Questions people actually ask
What is speaker diarization?
It's the process of working out who is speaking when, and splitting a recording's transcript by person. It answers "who said what", as distinct from transcription, which only answers "what was said".
Is there a free speaker diarization tool?
Rescript does it locally and free for noncommercial use, using pyannote-segmentation-3.0 through ONNX. There's no account, no upload, and no per-minute charge, because the model runs on your own hardware.
How many speakers can it detect?
There's no fixed limit, and it's most reliable on the two- to four-person recordings that make up most interviews and podcasts. Accuracy drops with heavy crosstalk or very similar voices — which is why every label can be corrected by hand.
Can I rename speakers to their real names?
Yes. Speakers start as Speaker 1, Speaker 2, and so on, and you can rename any of them. The name flows through to the transcript export.
What if the model splits one person into two speakers?
Merge the two labels, and every word from both is reassigned to one speaker. The reverse also works — reassign a stretch of words to a different speaker, or add a speaker the model missed entirely.
Do imported transcripts keep their speakers?
If your SRT, VTT, or JSON file carries speaker information, Rescript uses it and skips diarization along with transcription. Otherwise the transcript arrives unlabelled and you can assign speakers by hand.
Keep exploring features
Transcript editing
Delete a word, the footage goes with it.
Filler removal
Every "um" and "uh" in the file, in one click.
Silence removal
Cut every pause over 0.3s, then adjust any of them.
Timeline
Waveform, cut handles, and word-level timing by hand.
Regenerate
Rewrite a fumbled line, hear it in the original voice.
Weighing it against something else? See how Rescript compares.
Open it and see.
Free, open source, and running entirely on your own machine. No account, no upload, no watermark.
Or open the web app