Desert Ant Labs

Who

Wer was gesagt hatBeta

Kennzeichnen Sie die Sprecher in einer Aufnahme und sehen Sie genau, wann jede Person zu reden beginnt und aufhört, komplett auf dem Gerät.

Kennzeichnen, wer was gesagt hat, in Audio und Video.

Who ist für Podcasts, Interviews, Calls und Meetings gemacht und verarbeitet Aufnahmen beliebiger Länge. Ein 50-minütiges Interview braucht auf einem MacBook Pro 3 s, komplett auf dem Gerät. Mit den Zeitstempeln kennzeichnen Sie ein Transkript nach Sprechern, springen zum nächsten Redebeitrag eines Gastes oder schneiden bei jedem Sprecherwechsel.

Who nummeriert die Sprecher in der Reihenfolge, in der sie zuerst zu Wort kommen, und wenn zwei Personen gleichzeitig sprechen, markiert Who beide. Who verarbeitet jeden fünfminütigen Abschnitt in einem Durchlauf und gleicht die Stimmen abschnittsübergreifend ab.

Bei den Meeting-Aufnahmen aus AMI kennzeichnet Who Sprecher mit einer Fehlerrate von 12,6 %, niedriger als die 13,1 % von pyannote auf einer Server-GPU und die 19,4 % von FluidAudio auf demselben Mac. Außerdem läuft Who doppelt so schnell wie FluidAudio.

Eine Stunde Audio in 4 s.

Who läuft über das SDK mit 950x Echtzeit auf einem MacBook Pro mit dem M5 Pro. Bei den AMI-Meetings liegt die Diarisierungsfehlerrate von Who bei 12,6 %, gegenüber 13,1 % bei pyannote und 19,4 % bei FluidAudio.

950x
Schneller als Echtzeit
MacBook Pro (M5 Pro), float16, über das SDK
12,6 %
Diarisierungsfehlerrate
AMI-Meetings, 16 Aufnahmen, niedriger ist besser; pyannote 13,1 %
2,1x
Schneller als FluidAudio
ein Core-ML-Port von pyannote, derselbe Mac
81 MB
Download
float16; 42 MB mit 8-Bit-Gewichten

Vollständige Testdatensätze auf einem einzigen MacBook Pro (M5 Pro), eine Aufnahme nach der anderen. Die Zeiten von Who enthalten das Laden des Modells. FluidAudio braucht für AMI nach eigener Zeitmessung 73 s und mit dem Laden seiner Modelle 79 s.

TestdatensatzZeit (Who)Echtzeitfaktor (Who)Echtzeitfaktor (FluidAudio)
AMI test, 544 minutes34 s950x445x
VoxConverse test, 43.5 hours165 s948x426x

Diarisierungsfehlerrate für vollständige Aufnahmen, niedriger ist besser. Dieselben Aufnahmen und dieselbe Auswertung in jeder Zeile

ModellAMIVoxConverse, bis zu 4 SprecherNOTSOFAR-1, bis zu 4 SprecherEarnings-21DiPCo
Who, on the Neural Engine12,6 %8,4 %16,2 %27,7 %41,1 %
pyannote community-1, PyTorch13,1 %7,3 %18,7 %7,3 %33,4 %
FluidAudio, Core ML19,4 %9,6 %32,7 %12,0 %42,7 %

Who liegt bei den beiden Meeting-Datensätzen AMI und NOTSOFAR-1 vorn und bei den anderen drei hinter pyannote: Die Earnings Calls in Earnings-21 haben bis zu 20 Sprecher, und bei VoxConverse mit neun oder mehr Sprechern kommt Who auf 24,7 %. pyannote lief auf Server-GPUs, Who und FluidAudio auf der Neural Engine des M5 Pro. Die Werte für pyannote und FluidAudio stammen aus unseren eigenen Läufen und stehen nicht auf der Modellkarte.

Anwendungsfälle

Kennzeichnen, wer was gesagt hat, in Audio und Video.

Sprecher im Transkript kennzeichnen

Kombinieren Sie Who mit Voz, und jede Zeile des Transkripts zeigt, wer sie gesagt hat. Wer liest, folgt dem Gespräch statt einem einzigen anonymen Textblock.

Zum nächsten Redebeitrag eines Gastes springen

Filtern Sie ein zweistündiges Interview oder Meeting nach einem Sprecher und springen Sie direkt zu seinen Redebeiträgen, statt die Timeline abzusuchen. Die Aufnahme bleibt auf dem Gerät.

Bei jedem Sprecherwechsel schneiden

Schalten Sie in einem Interview mit zwei Kameras oder einem Videopodcast die Kameraperspektive um, sobald jemand anderes spricht. Jeder Redebeitrag hat eine Start- und eine Endzeit, sodass jeder Sprecherwechsel ein Schnittpunkt ist.

Gelächter weglassen

Entfernen Sie das Lachen des Publikums und die Stimme, die vom anderen Ende des Raums einen einzigen Satz eingeworfen hat. Who lässt jeden Sprecher weg, dessen Anteil an der Aufnahme unter dem von Ihnen festgelegten Wert liegt, und nummeriert die übrigen neu.

Was das Modell macht

  • Who kennzeichnet bis zu vier Sprecher in jedem fünfminütigen Abschnitt. Da Who Stimmen abschnittsübergreifend abgleicht, sind es über eine ganze Aufnahme hinweg auch mehr.
  • Jeder Redebeitrag ist ein zusammenhängendes Stück Sprache eines einzelnen Sprechers, mit Sprechernummer sowie Start- und Endzeit in Sekunden, auf 10 ms genau. Redebeiträge verschiedener Sprecher überlappen sich, wenn Personen durcheinanderreden.
  • Who nummeriert Sprecher im SDK ab null, in der Reihenfolge, in der sie zuerst zu Wort kommen, und identifiziert niemanden namentlich.
  • Zwei Core-ML-Graphen auf der Neural Engine, ein Encoder und ein Query-Graph, lesen jeden Abschnitt. Ein dritter Graph erstellt für jeden Sprecher einen Stimmabdruck aus den Momenten, in denen er allein spricht, und Who gleicht alle Sprecher in einem Schritt über die gesamte Aufnahme hinweg ab.
  • Ein Sprecher, der weniger als eine Sekunde allein spricht, bekommt keinen eigenen Stimmabdruck und wird dem zeitlich nächsten Sprecher zugeschlagen. Eine Sekunde Lachen mitten im Redebeitrag einer anderen Person wird dieser Person zugerechnet.
  • 950x Echtzeit auf einem MacBook Pro mit dem M5 Pro, über das SDK: 544 Minuten AMI-Meetings in 34 s. Der 8-Bit-Build läuft mit 953x.
  • Arbeitsspeicher über das SDK: 275 MB mit geladenem Modell und Spitzenwerte von 336 MB bei einer Aufnahme von 8 Minuten, 437 MB bei 34 Minuten und 927 MB bei 2,65 Stunden.
  • Der Core-ML-Download umfasst 81 MB als float16 oder 42 MB mit 8-Bit-Gewichten, und beide Builds haben bei den AMI-Meetings dieselbe Fehlerrate von 12,6 %. Der 8-Bit-Build spart keinen Arbeitsspeicher, da die Neural Engine die Gewichte beim Laden dekomprimiert.
  • Who gibt es außerdem als 49 MB großen LiteRT-Build, den das SDK unter Android, Linux und Windows ausführt, und als 99 MB großen ONNX-Build, den die SDKs noch nicht ausführen. Nur auf der CPU verarbeitet der LiteRT-Build 544 Minuten Audio in 87 s auf dem M5 Pro und in 191 s auf einem AMD-EPYC-Server mit 24 Kernen, gemessen außerhalb des SDK.
  • keepingSpeakers(minimumShare:) entfernt jeden Sprecher, dessen Anteil an der Aufnahme unter einem festgelegten Wert liegt, und nummeriert die übrigen neu, sodass Lachen, Applaus und Jingles herausfallen. Bei 5 % hat der Filter in den Podcasts, die wir ausprobiert haben, Lachen und Publikum entfernt. Für eine Nachrichtensendung mit vielen kurzen Wortbeiträgen wählen Sie einen niedrigen Anteil oder schalten den Filter ab.
  • Diarisieren Sie eine Audiodatei per URL oder Pfad, oder übergeben Sie Mono-Samples in beliebiger Abtastrate. Das SDK rechnet die Abtastrate für Sie um.
  • Das SDK lädt die Gewichte bei der ersten Nutzung von Hugging Face herunter und hält sie im Cache. download(progress:) holt sie vorab, und Who(directory:) läuft offline aus einem Ordner, den Sie selbst verwalten.

Erste Schritte

Fügen Sie wer was gesagt hat mit wenigen Zeilen Code zu Ihrer iOS or macOS or Android-App hinzu. Who Docs.

iOS, macOS
Installation
// 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")
Beispiel - Swift
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
}
Mit einem Prompt bauen
Add Who from Desert Ant Labs to this Swift project (iOS, macOS).

What it does: Sprecherzuordnung auf dem Gerät für Audio und Video.

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.
Android
Installation
// build.gradle.kts (Maven Central)
implementation("ai.desertant:who:4.0.0")
Beispiel - Kotlin
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()
Mit einem Prompt bauen
Add Who from Desert Ant Labs to this Kotlin project (Android).

What it does: Sprecherzuordnung auf dem Gerät für Audio und Video.

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.

Technische Daten

Geschwindigkeit
950x Echtzeit auf einem MacBook Pro (M5 Pro), ein 50-minütiges Interview in 3 s
Genauigkeit
12,6 % Diarisierungsfehlerrate bei AMI-Meetings; 8,4 % bei VoxConverse mit bis zu 4 Sprechern
Sprecher
Bis zu 4 pro fünfminütigem Abschnitt, mehr über eine Aufnahme beliebiger Länge hinweg
Ausgabe
Redebeiträge pro Sprecher mit Start- und Endzeit in Sekunden, auf 10 ms genau; überlappende Sprache bleibt erhalten
Größe auf dem Gerät
81 MB Core ML (float16, Standard) oder 42 MB mit 8-Bit-Gewichten
Arbeitsspeicher
275 MB mit geladenem Modell; Spitzenwert 927 MB bei einer Aufnahme von 2,65 Stunden
Plattformen
iOS 18+, macOS 15+, tvOS 18+, visionOS 2+ (Core ML); Android, Linux und Windows (LiteRT, auf der CPU)

Who funktioniert am besten bei nah mikrofoniertem Audio, etwa bei Podcasts, Interviews und Remote-Calls, bei denen jede Person ein eigenes Mikrofon hat. Weit vom Mikrofon entfernt verpasst Who mehr Sprache: 19 bis 21 % bei Gruppengesprächen, die mit einem Raummikrofon aufgenommen wurden, gegenüber 8 % bei Meetings mit Headsets.

Am meisten Sprache verpasst Who, wenn zwei Personen gleichzeitig sprechen. In VoxConverse liegt die Fehlerrate mit einem oder zwei Sprechern bei 8 %, mit fünf bis acht bei 17 % und mit neun oder mehr bei 25 %.

Bei den Earnings Calls aus Earnings-21, in denen bis zu 20 Sprecher jeweils kurz zu Wort kommen, ordnet Who 16 % der Sprache dem falschen Sprecher zu. Who kennzeichnet Sprecher mit Nummern statt mit Namen und transkribiert nicht; für ein Transkript mit Sprecherangaben kombinieren Sie Who mit Voz.

Unter Android, Linux und Windows läuft Who auf der CPU und ist damit drei- bis siebenmal langsamer als auf der Neural Engine. Im Browser und in Node läuft Who noch nicht.

FAQ

Was ist Who?

Kennzeichnen Sie die Sprecher in einer Aufnahme und sehen Sie genau, wann jede Person zu reden beginnt und aufhört, komplett auf dem Gerät.

Läuft Who auf dem Gerät?

Ja. Who läuft auf dem Gerät, ohne Serveraufruf, sodass die Daten beim Nutzer bleiben.

Welche Plattformen unterstützt Who?

Who wird als natives On-Device-SDK für Swift, Kotlin ausgeliefert.

Was kostet Who?

Jedes Modell ist kostenlos für bis zu 100k monatlich aktive Geräte. Die Inferenz ist unbegrenzt. Kontaktieren Sie uns für individuelle Lizenzen.

Wie genau oder schnell ist Who?

Who läuft über das SDK mit 950x Echtzeit auf einem MacBook Pro mit dem M5 Pro. Bei den AMI-Meetings liegt die Diarisierungsfehlerrate von Who bei 12,6 %, gegenüber 13,1 % bei pyannote und 19,4 % bei FluidAudio.

Ressourcen