Rescript.

Speakers

Know who said what, without uploading the interview

Speaker 1

So walk me through how you found it in the first place.

Speaker 2Dana

Honestly? A support ticket. Someone pasted a stack trace.

Speaker 3

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.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

How Regenerate uses speakers

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.

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