Downloads · 30 days
5
100% of all-time downloads
desert-ant-labs/who
who is a voice activity detection model from desert-ant-labs. Use it for the voice activity detection task on the model card, and read the license before you ship it in a product. It is set up for litert. The card lists the license as other.
Downloads · 30 days
5
100% of all-time downloads
All-time downloads
5
Public
Repo size
254 MB
Likes
4
Trending 1
Click a slice to open those files.
.bin122 MB · 43%
From the Hugging Face model README
Label who said what in audio and video.
On-device speaker labeling: per-person turns with timestamps.
Label the speakers in a recording and see exactly when each person starts and stops talking. A 50-minute interview takes 3s on a MacBook Pro, entirely on the device.
Use the timestamps to label a transcript by speaker, jump to the next time a guest talks, or cut every time the speaker changes. Who is a speaker diarization model made for podcasts, interviews, calls and meetings, and handles recordings of any length.
Who numbers the speakers in the order they first speak, and when two people talk at once, Who marks both of them. Who processes each five-minute section in one pass and matches voices across sections. Who runs on the Neural Engine on Apple platforms and through LiteRT on Linux, Windows and Android, and there's also an ONNX build. The Core ML download is 81MB as float16 or 42MB with 8-bit weights, and both builds have the same error rate on AMI meetings, 12.6%.
Each folder holds the same five model files for its runtime, plus its own copy of the four supporting files.
| Directory | Runtime | Weights | Size |
|---|---|---|---|
fp16/ | Core ML, compiled | float16 | 81MB |
int8/ | Core ML, compiled | 8-bit | 42MB |
litert-int8/ | LiteRT | 8-bit | 49MB |
onnx-int8/ | ONNX Runtime | 8-bit matrix products, the rest float32 | 99MB |
| File | Contents |
|---|---|
encoder_6000 | From 60s of audio to voice frames |
queries_6000 | The speakers in those 60s and when each one speaks |
encoder_30000 | From 300s of audio to voice frames |
queries_30000 | The speakers in those 300s and when each one speaks |
voice_3256 | A voice print of a 30s stretch, used to match speakers across sections |
who_meta.json | The front end's geometry, each graph's input and output names, the decision thresholds |
who_mel_banks.f32 | The mel filterbank the encoders read, 80 by 257, little-endian |
who_voice_banks.f32 | The mel filterbank the voice graph reads |
who_embed.f16 | The voice graph's last layer, as a table |
Who works from the sound of each voice and has no language setting. Every score on this card was measured on English recordings.
Measured through the SDK on the files in this repo, on whole recordings.
| Corpus | Samples | Diarization error rate | Missed speech | False alarm | Speaker confusion |
|---|---|---|---|---|---|
| AMI meetings, headset mix | 16 | 0.126 | 0.079 | 0.026 | 0.021 |
| VoxConverse, up to 4 speakers | 86 | 0.084 | 0.027 | 0.040 | 0.017 |
| VoxConverse, 2-21 speakers | 232 | 0.175 | 0.026 | 0.073 | 0.076 |
| NOTSOFAR-1 meetings, far-field, up to 4 speakers | 65 | 0.162 | 0.060 | 0.052 | 0.050 |
| NOTSOFAR-1 meetings, far-field, 3-8 speakers | 129 | 0.243 | 0.087 | 0.057 | 0.098 |
| Earnings-21 calls, 2-20 speakers | 44 | 0.277 | 0.059 | 0.055 | 0.163 |
| DiPCo dinner parties, far-field | 10 | 0.411 | 0.207 | 0.064 | 0.140 |
| CHiME-6 dinner parties, far-field | 2 | 0.399 | 0.190 | 0.081 | 0.128 |
On VoxConverse, the error rate rises with the number of speakers in a recording.
| Speakers | Samples | Diarization error rate |
|---|---|---|
| 1 to 2 | 46 | 0.077 |
| 3 | 18 | 0.116 |
| 4 | 22 | 0.078 |
| 5 to 8 | 85 | 0.170 |
| 9 or more | 61 | 0.247 |
Through the SDK.
| Device | SDK | Workload | Result |
|---|---|---|---|
| MacBook Pro, M5 Pro, macOS 26.6 | desert-ant-core 3.6.0, coreml | float16 build, 16 meetings, 544 minutes | 950x faster than real time |
| MacBook Pro, M5 Pro, macOS 26.6 | desert-ant-core 3.6.0, coreml | 8-bit build, 16 meetings, 544 minutes | 953x faster than real time |
| MacBook Pro, M5 Pro, macOS 26.6 | desert-ant-core 3.6.0, coreml | float16 build, model loaded | 275MB memory |
| MacBook Pro, M5 Pro, macOS 26.6 | desert-ant-core 3.6.0, coreml | float16 build, an 8-minute recording | 336MB peak memory |
| MacBook Pro, M5 Pro, macOS 26.6 | desert-ant-core 3.6.0, coreml | float16 build, a 34-minute recording | 437MB peak memory |
| MacBook Pro, M5 Pro, macOS 26.6 | desert-ant-core 3.6.0, coreml | float16 build, a 2.65-hour recording | 927MB peak memory |
On CPU alone, the 8-bit LiteRT build runs the same 544 minutes in 87s on the M5 Pro and 191s on a 24-core AMD EPYC server. These two times were measured outside the SDK.
Open models and tools this work builds on, with their licenses:
Dataset attributions are in THIRD_PARTY_NOTICES.md.
Desert Ant Labs Source-Available License. Free for most apps, and a commercial license is required at scale. Full terms are at the link. Licensing: [email protected].
@software{who_2026,
title = {Who: On-device speaker labeling: per-person turns with timestamps},
author = {Desert Ant Labs},
year = {2026},
url = {https://huggingface.co/desert-ant-labs/who},
}
© 2026 Desert Ant Labs · https://desertant.com