Models
VERSION 1KEZEK · CONVERSATION SEPARATION

Two people.
One microphone.
Two clean tracks.

Kezek turns a mono recording of two people into one track per person, with the original length and timing. Overlaps and quick “mm-hm”s stay on the track of whoever said them.

Paper · soonCode · soonWeights · soon
Interruption“mm-hm”“yeah”Overlap
Original recording
one microphone
Speaker A
by Kezek
Speaker B
by Kezek
both talking at onceIllustration · same length, same timing

Kezek — “turn” in Kazakh, as in taking turns to speak.

Listen

Hear it on real conversations.

Four 30-second excerpts from the public Open Yap 1K sample, from conversations Kezek never saw in training. Each has the mono input, the two Kezek tracks and the original channels, recorded with a headset per person, so you can compare. Switch tracks while it plays; shaded spans are moments when both people speak.

OPEN YAP · 5a798c657bb0_130 s · 4.1 s of overlap
Waveforms of the mono input, the two Kezek tracks and the two original channels for Open Yap excerpt 5a798c657bb0_1
0:00 / 0:00

5 short replies over the other speaker · 5 kept

OPEN YAP · 31bedfc99b53_130 s · 4.8 s of overlap
Waveforms of the mono input, the two Kezek tracks and the two original channels for Open Yap excerpt 31bedfc99b53_1
0:00 / 0:00

6 short replies over the other speaker · 6 kept

OPEN YAP · e11edcca8521_230 s · 5.3 s of overlap
Waveforms of the mono input, the two Kezek tracks and the two original channels for Open Yap excerpt e11edcca8521_2
0:00 / 0:00

6 short replies over the other speaker · 6 kept

OPEN YAP · 2e4aec4666d8_130 s · 6.8 s of overlap
Waveforms of the mono input, the two Kezek tracks and the two original channels for Open Yap excerpt 2e4aec4666d8_1
0:00 / 0:00

5 short replies over the other speaker · 5 kept

In Kazakh. A conversation we recorded ourselves on one microphone, between two brothers with similar voices. Kezek was trained and measured in English, so this one is for listening only.

KAZAKH · OUR RECORDING22.6 s · one USB microphone · two brothers
Waveforms of the mono input and the two Kezek tracks for a Kazakh conversation
0:00 / 0:00

Tracks are Kezek output with no editing; added together they equal the input. Open Yap audio is reproduced with the written consent of The Agentic Data Company.

The problem

Average separation quality misses what matters.

Most conversational audio exists only as a mono mix. To turn it into training data for models that listen and speak at once, three failures matter more than any average score.

01
Channel swaps

A stretch of one person’s speech lands on the other person’s track, and everything downstream learns the wrong turn-taking.

02
Lost short replies

A quick “yeah” or “mm-hm” over the other speaker is short, quiet and easy to drop. It is also what a conversation model most needs to learn.

03
Leakage

The other voice audible on a track. A model trained on it learns that its own channel holds both speakers.

How it works

Decide who is who once. Then separate.

Stage 1 listens to the whole recording and decides who speaks when. Stage 2 only carries out that decision. Three models, 41M parameters, all trained by us.

0110.1M params
Speaker fingerprint

Finds the two voices once for the whole recording. Trained from scratch on 8,961 people, with near-identical “sibling” voices and phase changes it must learn to ignore.

0211.8M params
PairNet

Decides who is speaking at every 20 ms of the recording. Because the two voices are fixed for the whole recording, nobody has to be re-identified chunk by chunk.

0319.6M params
KezekTSE-L

A conditioned separator that only carries out that plan. Its two outputs always add up to the input: nothing is lost, it can only be put on the wrong track.

Track A + track B = the input. No voice samples, no labelling.

Results

Against the open pipeline, on the same recordings.

Compared with pyannote → DialogueSidon, run as published, on Open Yap test and on CallHome English telephone calls that neither system saw in training.

0.83

of short replies kept on the right track, against 0.69 for pyannote → DialogueSidon

100%

of every recording returned, with the original timing; the cascade returns 74%

93%

of recordings with no channel swap, against 79%

4–5×

faster: about 230 hours of audio per GPU-hour

Open Yap test

121 conversations, as recorded

Metricpyannote → SidonKezek
Short replies kept ↑0.6870.830
Leak, dB ↓−10.1−13.9
No channel swap ↑0.7930.934
Coverage ↑0.7351.000
Hours per GPU-hour ↑51231
CallHome English

128 telephone calls, unseen by both

Metricpyannote → SidonKezek
Replies over speech ↑0.7110.796
Replies in a pause ↑0.7980.907
Leak, dB ↓−9.7−11.8
No channel swap ↑0.7970.859
Coverage ↑0.8161.000
Hours per GPU-hour ↑46232

Not there yet

  • On recorded, noisy audio Kezek keeps 0.83 of short replies and leaks −14 dB, short of the 0.90 and −20 dB we set ourselves. What is left is mostly quiet replies under a louder voice.
  • Exactly two speakers, offline, no enrollment. Kezek splits audio; it does not clean or restore it.
  • Trained and measured in English. Kazakh is for listening only until we have a proper Kazakh test set.

Made for

Full-duplex dialogue data

Two-channel conversations for training speech models that listen and talk at the same time, built from audio that only exists as a mono mix.

Transcripts & analytics

Per-speaker transcripts and talk-time analytics for calls, interviews and meetings recorded on one microphone.

Podcasts & media

Fix crosstalk and level each voice separately, without re-recording.

Open release

Coming soon
Paper

Method, metrics, comparison and negative results

Coming soon
Code

MIT licence

Coming soon
Weights

Apache-2.0 licence

The earlier version is described in the Kezek prototype report.

Have conversations to split?

Kezek is in early access. Tell us a little about your recordings and we will get back to you.

Request early access →

Also from Manifestro: Dauys, a compact spoken dialogue model →