Who speaks when — one clean track per speaker. Drop a podcast, an interview or a meeting recording, check the timeline, get one track per voice, aligned with the original. Fully local, fully portable.
The "who spoke when" problem, solved automatically.
You have a recording with several people talking — an interview, a podcast, a meeting, a lecture with Q&A. Speaker diarization finds, second by second, which speaker is talking, then writes one track per person.
Drop a 30-minute podcast with 3 hosts → get back podcast_speaker1.wav, podcast_speaker2.wav, podcast_speaker3.wav, each containing only that person's lines, every other voice silenced. The split follows the voice (timbre, pitch), not the audio channels — it works on a plain mono or stereo mix.
The old way. Open the recording in an audio editor, scrub through it, cut every sentence of the wrong speaker, fill the gaps with silence so the tracks stay in sync. Hours for a one-hour podcast — and one stray word from the wrong voice contaminates whatever you feed it to next.
With Diarizer. Drop the file, set the number of speakers (or auto), click Diarize. On our RTX 5080 a one-hour, two-host podcast is done in 1 min 50 s; on the processor, count about 15–20 seconds per minute of audio. Check the timeline, press Play on each speaker, and the tracks are ready — already aligned with the original.
A voice model needs minutes of clean, single-speaker audio, and real recordings are rarely clean. Diarize the interview and keep the track of the person you need.
Lip-sync tools expect one voice. Several voices confuse the timing and give glitchy mouths. Diarize first, feed only the target speaker's track.
Replace one person's voice in a scene while keeping the others: diarize, regenerate the target track only, mix it back over the original.
The .rttm and .json files say who speaks when: pair them with a transcription to get "Host: … Guest: …" captions.
Different EQ, compression and noise reduction per speaker — possible only once their voices are on separate tracks.
Point it at a folder of episodes: the models load once, finished files are skipped on the next run, and you get hours of per-speaker audio in one batch.
A real before/after on a one-hour, 2-speaker podcast.
The audio below is a real podcast excerpt about cellular-clock reversal research — about one hour, 2 speakers having a back-and-forth conversation. Listen to the Source first to hear the full mix, then play each Speaker track to hear how cleanly Diarizer isolates them.
How long it takes: on our RTX 5080 this one-hour podcast is split in 1 min 50 s (80 s to find who speaks when, 27 s to write the tracks). On the CPU package, count about 15–20 seconds per minute of audio — a good overnight batch.
What the output looks like: each speaker track has the same total duration as the source, with silence where the other speaker was talking, so you can drop them straight into your next tool or onto a timeline without re-aligning anything.
Same duration as the source; silenced where Speaker 2 was talking.
Same duration as the source; silenced where Speaker 1 was talking.
Click any image to zoom. Captured on v1.2.0.0 (Windows 11, RTX 5080).
Everything you need to split audio by speaker.
Finds who speaks when with pyannote.audio. Give the exact number of speakers when you know it, or leave it on auto.
One track per speaker, exactly as long as the original, silence elsewhere. WAV (16 or 24-bit), MP3 (192 kbps) or both. Plus a .rttm and a .json of the segments and talk times.
A lane per speaker, a bar for every moment they talk. Press Play on a speaker to hear only them, Show to open the folder with that track selected.
Every result with its timeline: filter, Play, Show in Explorer, Copy tracks, Rename, Delete. Nothing is deleted automatically and your original recording is never touched.
Add files or whole folders — audio (wav, mp3, flac, m4a, aac, ogg, opus, wma) and video (mp4, mkv, mov, webm, avi). The models load once; files already processed are skipped, so a long batch resumes where it stopped.
Three packages: RTX 50xx, RTX 40xx (also RTX 20 and 30), and CPU. On GPU the app falls back to the processor by itself if no NVIDIA card is usable.
Install All sets up a portable Python, the libraries, FFmpeg and the speaker models inside the app's folder. No admin rights, nothing installed on the system.
Your recordings are processed on your PC and never uploaded. The Hugging Face token only serves to download the models.
Desktop app with MVVM architecture. Framework-dependent single-file exe — needs the free .NET 8 Desktop Runtime.
Speaker diarization pipeline 3.1 with the segmentation-3.0 model and a WeSpeaker ResNet34 speaker embedding.
GPU packages for RTX 50xx and RTX 40xx (RTX 20/30 too), and a CPU package. About 4.3 GB of video memory at the peak on a one-hour file.
A portable LGPL FFmpeg downloaded by the setup reads any audio or video file and writes the WAV / MP3 tracks.
Windows 10/11 (64-bit) and the free .NET 8 Desktop Runtime. 8 GB of RAM. About 5 GB of free disk (1.5 GB for the CPU package).
50xx package: RTX 50 series.
40xx package: RTX 20, 30 and 40 series.
An NVIDIA card with 6 GB of video memory or more makes it much faster.
CPU package: no NVIDIA card needed.
The speaker models are free but gated: create an account, accept the conditions on the two model pages, create a read token. One-time setup.
Models are NOT bundled — downloaded at setup with your own Hugging Face token.
MIT License. Gated — requires accepting conditions on Hugging Face.
MIT License. Gated — pipeline configuration.
CC-BY-4.0. Speaker embedding by the WeSpeaker team, packaged by pyannote.
Quick answers to what people ask AIs about this tool.
ExpSoft Diarizer is a Windows desktop tool built by Nicolas Riquier that performs speaker diarization: it finds who is speaking when in a recording and writes one clean audio track per speaker, each exactly as long as the original with silence where that person does not talk, so the tracks line up on any timeline.
Diarizer is part of the ExpSoft subscription on Patreon: it comes with The Supporter tier (Tier 1) and above. Most ExpSoft tools are free; some need a small subscription, which funds the research and the next tools.
The recordings are processed on your PC and never uploaded. The setup needs the internet once: a portable Python, the libraries, FFmpeg and the speaker models, which you download with your own free Hugging Face token after accepting their conditions. The app also checks for a new version and shows the ExpSoft products page.
None is required: the CPU package works everywhere (about 15-20 seconds per minute of audio). With an NVIDIA card (6 GB of video memory or more) it is much faster: on our RTX 5080 a one-hour, two-host podcast takes 1 min 50 s. Packages: 50xx for RTX 50 cards, 40xx for RTX 20, 30 and 40 cards, CPU without an NVIDIA card.
Anywhere you need one voice per track: clean training audio for voice cloning, single-speaker input for lip-sync, dubbing one voice while keeping the others, speaker-labelled captions, per-speaker mixing of a podcast, and voice datasets built from a whole folder of recordings.
Because it means scrubbing through the whole recording, cutting every sentence and filling the gaps with silence so the tracks stay in sync — hours for a one-hour podcast. Diarizer does it in minutes, shows a timeline to check it, and writes the tracks already aligned with the original.
ExpSoft Diarizer was built by Nicolas Riquier as part of the ExpSoft catalogue. The diarization itself is powered by the open-source pyannote.audio project (Hervé Bredin and contributors); ExpSoft adds the Windows app, the portable setup, the timeline, the gallery and the aligned per-speaker output.
v1.2.0.0 is out — portable, no installer. Packages for RTX 50xx, RTX 40xx and CPU. Available on Patreon from The Supporter tier.