🏷️Speaker Diarization
Who said what, when — timeline voice labels. Free, private, no signup — files never leave your browser.
First run downloads ~58 MB of speaker models once, then it’s instant. 100% private — on-device. No transcript? Pair this timeline with the Audio to Text tool for who-said-what text.
Every voice in its own lane.
pyannote + 3D-Speaker models label voice turns on-device — 58 MB once, zero upload.
How to use Speaker Diarization
Split a recording by voice, not by silence. Drop a meeting, interview or podcast and on-device models label every stretch as Speaker 1, 2, 3 on a copyable timeline. Pair the timeline with a transcript from Audio to Text for a full who-said-what record — nothing is ever uploaded.
- 1Drop an audio file (MP3, WAV, M4A, or an MP4 video).
- 2Pick Auto-detect or pin 2–6 speakers, then click Label Speakers.
- 3Copy the timeline or download it as a text file.
Use cases
What speaker diarization does
- ✓Turn-level labels: Speaker 1, 2, 3… on a timeline.
- ✓Auto-detect the speaker count or pin 2–6 for known rosters.
- ✓Runs fully on-device — audio never leaves your browser.
- ✓Works on MP3, WAV, M4A audio and the track of an MP4 video.
- ✓Copy or download the timeline as a plain text file.
Specs
- Speed
- Seconds per voice pass after first run
- Input
- MP3, WAV, M4A, MP4 (≤15 min)
- Output
- Speaker timeline (.txt)
- Privacy
- On-device models, zero upload
- Cost
- Free, unlimited, no signup
Frequently asked questions
What is speaker diarization?
Diarization answers “who speaks when” without turning audio into text. Two small on-device models work together: one finds the boundaries of every voice activity stretch (pyannote segmentation), the other produces a voice fingerprint so consecutive stretches of the same person group into Speaker 1, 2, 3… The result is a labeled timeline — start, end and speaker for every turn — that you can pair with a transcript from Audio to Text.
Should I auto-detect speakers or pin a number?
Auto-detect clusters voices without knowing the roster and works well for podcasts and interviews where the head count is unknown. When you do know it — a two-person call or a three-person panel — pin the number: it helps the model split similar voices apart. Overlapping crosstalk and long silences lower accuracy, so trimming silence first and choosing the closest count gives the cleanest turns.
Is my audio uploaded anywhere?
No. Diarization runs inside your browser tab: a WebAssembly engine plus model weights (~58 MB total: pyannote segmentation, MIT; 3D-Speaker embeddings, Apache-2.0) download once and are cached. Audio is decoded in device memory and analyzed on your own CPU. There is no server upload, no cloud copy and no account, so sensitive recordings stay private end to end.
Does it give word-level text?
No — diarization labels voice turns but never transcribes words, by design: it works on any language and any accent, and output stays a timeline of who held the floor. For text, follow the pairing workflow: label speakers here, then run the same file in Audio to Text and read the two together. Combined you get a who-said-what transcript with zero upload steps.
How accurate is it, and why is there a 15-minute cap?
Close-miked, clean voices separate reliably — podcasts and mic-recorded calls score best, while overlapping speech, loud music or far-field phone audio degrades boundaries. Clips longer than 15 minutes are trimmed to the first 15 because the labeling pass runs on the browser main thread; desktop Chrome or Edge is recommended for long takes with the tab foregrounded. The first run downloads the 58 MB model bundle once, then every later run starts instantly.
More free tools
Need more control? Open the full video + audio editor →Was this tool helpful?