Who
Étiquetez les locuteurs d'un enregistrement et voyez exactement quand chaque personne commence et arrête de parler, entièrement sur l'appareil.

Étiquetez qui a dit quoi dans l'audio et la vidéo.
Who est conçu pour les podcasts, les entretiens, les appels et les réunions, et traite des enregistrements de toute durée. Un entretien de 50 minutes prend 3 s sur un MacBook Pro, entièrement sur l'appareil. Servez-vous des horodatages pour étiqueter une transcription par locuteur, aller à la prochaine prise de parole d'un invité ou couper à chaque changement de locuteur.
Who numérote les locuteurs dans l'ordre de leur première prise de parole et, quand deux personnes parlent en même temps, Who les étiquette toutes les deux. Who traite chaque segment de cinq minutes en une seule passe et fait correspondre les voix d'un segment à l'autre.
Sur les enregistrements de réunions AMI, Who étiquette les locuteurs avec un taux d'erreur de 12,6 %, inférieur aux 13,1 % de pyannote sur un GPU de serveur et aux 19,4 % de FluidAudio sur le même Mac. Who tourne aussi deux fois plus vite que FluidAudio.
Une heure d'audio en 4 s.
Who tourne à 950x le temps réel sur un MacBook Pro avec puce M5 Pro, via le SDK. Sur les réunions AMI, le taux d'erreur de diarisation de Who est de 12,6 %, contre 13,1 % pour pyannote et 19,4 % pour FluidAudio.
Jeux de test complets sur un seul MacBook Pro (M5 Pro), un enregistrement à la fois. Les temps de Who incluent le chargement du modèle. Sur AMI, FluidAudio met 73 s selon son propre chronométrage et 79 s avec le chargement de ses modèles.
| Jeu de test | Temps de traitement (Who) | Temps réel (Who) | Temps réel (FluidAudio) |
|---|---|---|---|
| AMI test, 544 minutes | 34 s | 950x | 445x |
| VoxConverse test, 43.5 hours | 165 s | 948x | 426x |
Taux d'erreur de diarisation sur des enregistrements entiers, le plus bas étant le meilleur. Mêmes enregistrements et même outil d'évaluation pour chaque ligne
| Modèle | AMI | VoxConverse, jusqu'à 4 locuteurs | NOTSOFAR-1, jusqu'à 4 locuteurs | Earnings-21 | DiPCo |
|---|---|---|---|---|---|
| Who, on the Neural Engine | 12,6 % | 8,4 % | 16,2 % | 27,7 % | 41,1 % |
| pyannote community-1, PyTorch | 13,1 % | 7,3 % | 18,7 % | 7,3 % | 33,4 % |
| FluidAudio, Core ML | 19,4 % | 9,6 % | 32,7 % | 12,0 % | 42,7 % |
Who est en tête sur les deux jeux de réunions, AMI et NOTSOFAR-1, et reste derrière pyannote sur les trois autres : les conférences téléphoniques d'Earnings-21 comptent jusqu'à 20 locuteurs, et Who obtient 24,7 % sur VoxConverse avec neuf locuteurs ou plus. pyannote a tourné sur des GPU de serveur ; Who et FluidAudio ont tourné sur le Neural Engine du M5 Pro. Les scores de pyannote et de FluidAudio sont nos propres mesures et ne figurent pas sur la fiche du modèle.
Cas d'usage
Étiquetez qui a dit quoi dans l'audio et la vidéo.
Étiqueter une transcription par locuteur
Associez Who à Voz, et chaque ligne de la transcription indique qui l'a prononcée. Le lecteur suit la conversation plutôt que de lire un seul bloc de texte anonyme.
Aller à la prochaine prise de parole d'un invité
Filtrez un entretien ou une réunion de deux heures sur un seul locuteur et allez directement à ses tours de parole au lieu de faire défiler la timeline. L'enregistrement reste sur l'appareil.
Couper à chaque changement de locuteur
Changez de plan dans un entretien filmé à deux caméras ou un podcast vidéo dès que le locuteur change. Chaque tour de parole a un temps de début et un temps de fin, si bien que chaque changement de locuteur est un point de coupe.
Écarter les rires
Retirez les rires du public et la voix qui a lancé une seule réplique depuis l'autre bout de la pièce. Who écarte tout locuteur dont le temps de parole est inférieur à la part de l'enregistrement que vous fixez, puis renumérote les autres.
Ce que fait le modèle
- Who étiquette jusqu'à quatre locuteurs par segment de cinq minutes, et davantage sur un enregistrement entier, en faisant correspondre les voix d'un segment à l'autre.
- Chaque tour de parole est un passage continu d'un seul locuteur, avec son numéro et ses temps de début et de fin en secondes, à 10 ms près. Les tours de locuteurs différents se chevauchent quand des personnes parlent les unes par-dessus les autres.
- Dans le SDK, Who numérote les locuteurs à partir de zéro, dans l'ordre de leur première prise de parole, et n'identifie personne par son nom.
- Deux graphes Core ML sur le Neural Engine lisent chaque segment : un encodeur et un graphe de requêtes. Un troisième graphe produit une empreinte vocale de chaque locuteur à partir des moments où il parle seul, et Who fait correspondre tous les locuteurs sur l'ensemble de l'enregistrement en une seule fois.
- Un locuteur qui parle seul moins d'une seconde n'a pas d'empreinte vocale propre et est rattaché au locuteur le plus proche dans le temps. Une seconde de rire au milieu du tour de parole de quelqu'un d'autre revient à ce locuteur.
- 950x le temps réel sur un MacBook Pro avec puce M5 Pro, via le SDK : 544 minutes de réunions AMI en 34 s. La version 8 bits tourne à 953x.
- Mémoire via le SDK : 275 MB avec le modèle chargé, et un pic de 336 MB sur un enregistrement de 8 minutes, de 437 MB sur un enregistrement de 34 minutes et de 927 MB sur un enregistrement de 2,65 heures.
- Le téléchargement Core ML pèse 81 MB en float16 ou 42 MB avec des poids 8 bits, et les deux versions ont le même taux d'erreur sur les réunions AMI : 12,6 %. La version 8 bits n'économise pas de mémoire, car le Neural Engine décompresse les poids au chargement.
- Who existe aussi en version LiteRT de 49 MB, que le SDK exécute sur Android, Linux et Windows, et en version ONNX de 99 MB, que les SDK n'exécutent pas encore. Sur CPU seul, la version LiteRT traite 544 minutes d'audio en 87 s sur le M5 Pro et en 191 s sur un serveur AMD EPYC à 24 cœurs, chiffres mesurés hors du SDK.
keepingSpeakers(minimumShare:)écarte tout locuteur dont le temps de parole est inférieur à une part donnée de l'enregistrement et renumérote les autres, si bien que les rires, les applaudissements et les jingles disparaissent. À 5 %, le filtre a retiré les rires et le public sur les podcasts que nous avons testés. Pour une émission d'information où beaucoup de personnes parlent brièvement, gardez une part faible ou désactivez le filtre.- Lancez la diarisation sur un fichier audio à partir d'une URL ou d'un chemin, ou passez des échantillons mono à n'importe quelle fréquence d'échantillonnage. Le SDK la convertit pour vous.
- Le SDK télécharge les poids depuis Hugging Face à la première utilisation et les met en cache.
download(progress:)les récupère à l'avance, etWho(directory:)fonctionne hors ligne à partir d'un dossier que vous gérez.
Prise en main
Ajoutez qui a dit quoi à votre application iOS or macOS or Android en quelques lignes de code. Docs Who.
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core.git", from: "4.0.0")
// target dependency
.product(name: "Who", package: "desert-ant-core")
import Who
let who = Who() // downloads on first use
let result = try await who.diarize(contentsOf: url)
result.speakerCount // 3
for turn in result.turns {
print(turn.speaker, turn.start, turn.end) // 0 12.4 15.9
}
Add Who from Desert Ant Labs to this Swift project (iOS, macOS). What it does: Who : étiquetage des locuteurs sur l'appareil pour l'audio et la vidéo. SDK: Swift (iOS, macOS) Repo: https://github.com/Desert-Ant-Labs/desert-ant-core#readme // Swift Package Manager .package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core.git", from: "4.0.0") // target dependency .product(name: "Who", package: "desert-ant-core") Reference: - Model page: https://desertant.com/models/who/ - Full catalog and other models: https://desertant.com/llms.txt Add the SDK, then follow its README for the exact API and current version. Do not invent API names or method signatures; confirm them against the README.
// build.gradle.kts (Maven Central)
implementation("ai.desertant:who:4.0.0")
import ai.desertant.who.Who
val who = Who(context) // downloads on first use
val result = who.diarize(samples, 16_000.0)
result.speakerCount // 3
for (turn in result.turns) {
println("${turn.speaker} ${turn.start} ${turn.end}") // 0 12.4 15.9
}
who.close()
Add Who from Desert Ant Labs to this Kotlin project (Android).
What it does: Who : étiquetage des locuteurs sur l'appareil pour l'audio et la vidéo.
SDK:
Kotlin (Android)
Repo: https://github.com/Desert-Ant-Labs/desert-ant-core#readme
// build.gradle.kts (Maven Central)
implementation("ai.desertant:who:4.0.0")
Reference:
- Model page: https://desertant.com/models/who/
- Full catalog and other models: https://desertant.com/llms.txt
Add the SDK, then follow its README for the exact API and current version. Do not invent API names or method signatures; confirm them against the README.
Spécifications
- Vitesse
- 950x le temps réel sur un MacBook Pro (M5 Pro), un entretien de 50 minutes en 3 s
- Exactitude
- Taux d'erreur de diarisation de 12,6 % sur les réunions AMI ; 8,4 % sur VoxConverse avec jusqu'à 4 locuteurs
- Locuteurs
- Jusqu'à 4 par segment de cinq minutes, davantage sur un enregistrement de toute durée
- Sortie
- Tours de parole par locuteur, avec temps de début et de fin en secondes, à 10 ms près ; parole superposée conservée
- Taille sur l'appareil
- 81 MB Core ML (float16, par défaut) ; 42 MB avec des poids 8 bits
- Mémoire
- 275 MB avec le modèle chargé ; pic de 927 MB sur un enregistrement de 2,65 heures
- Plateformes
- iOS 18+, macOS 15+, tvOS 18+, visionOS 2+ (Core ML) ; Android, Linux et Windows (LiteRT, sur le CPU)
Who donne ses meilleurs résultats sur une prise de son rapprochée, comme dans les podcasts, les entretiens et les appels à distance où chaque personne dispose d'un micro. Loin du micro, Who laisse passer davantage de parole : 19-21 % dans les conversations de groupe enregistrées à l'autre bout de la pièce, contre 8 % dans les réunions où chacun porte un casque-micro.
Who laisse passer le plus de parole quand deux personnes parlent en même temps. Sur VoxConverse, le taux d'erreur est de 8 % avec un ou deux locuteurs, de 17 % avec cinq à huit et de 25 % avec neuf ou plus.
Sur les conférences téléphoniques d'Earnings-21, où jusqu'à 20 locuteurs interviennent brièvement, Who attribue 16 % de la parole au mauvais locuteur. Who désigne les locuteurs par un numéro, pas par leur nom, et ne transcrit pas : pour une transcription étiquetée par locuteur, associez Who à Voz.
Sur Android, Linux et Windows, Who tourne sur le CPU, de trois à sept fois plus lentement que sur le Neural Engine. Who ne fonctionne pas encore dans le navigateur ni dans Node.
FAQ
Qu'est-ce que Who ?
Étiquetez les locuteurs d'un enregistrement et voyez exactement quand chaque personne commence et arrête de parler, entièrement sur l'appareil.
Who fonctionne-t-il sur l'appareil ?
Oui. Who s'exécute sur l'appareil, sans appel serveur : les données restent chez l'utilisateur.
Quelles plateformes Who prend-il en charge ?
Who est livré sous forme de SDK natif sur l'appareil pour Swift, Kotlin.
Combien coûte Who ?
Chaque modèle est gratuit jusqu'à 100k appareils actifs mensuels. L'inférence est illimitée. Contactez-nous pour des licences sur mesure.
Quelle est la précision ou la vitesse de Who ?
Who tourne à 950x le temps réel sur un MacBook Pro avec puce M5 Pro, via le SDK. Sur les réunions AMI, le taux d'erreur de diarisation de Who est de 12,6 %, contre 13,1 % pour pyannote et 19,4 % pour FluidAudio.