Technik
Sprecherdiarisierung
Auch bekannt als: Sprechertrennung, Speaker Diarization
Sprecherdiarisierung ist ein Verfahren, das eine Aufnahme in Abschnitte zerlegt und jeden Abschnitt einem Sprecher zuordnet, ohne dessen Identität zu kennen. Andere Bezeichnungen sind Sprechertrennung und Speaker Diarization. Das Ergebnis beantwortet die Frage, wer wann gesprochen hat, und ergänzt die Spracherkennung, die nur beantwortet, was gesprochen wurde.
So funktioniert es
Park et al. (2022) beschreiben die Aufgabe in ihrem Übersichtsartikel als “who spoke when”: Ein Programm versieht eine Aufnahme mit Markierungen, die angeben, welcher Sprecher in welchem Zeitraum aktiv ist. Das Verfahren liest dabei keine Wörter. Es arbeitet allein mit Merkmalen der Stimme.
Die verbreitete Werkzeugsammlung pyannote.audio setzt das in drei Stufen um, die Bredin (2023) für die Version 2.1 beschreibt. In der ersten Stufe läuft ein neuronales Netz in kurzen, gleitenden Fenstern über die Aufnahme und markiert Sprache, Pausen, Sprecherwechsel und Stellen, an denen mehrere Personen gleichzeitig reden. In der zweiten Stufe berechnet ein zweites Netz für jeden Sprachabschnitt einen Stimmvektor, also eine Zahlenfolge, die die Klangfarbe der Stimme beschreibt. In der dritten Stufe fasst ein Clusterverfahren ähnliche Stimmvektoren zu einem Sprecher zusammen. Bredin et al. (2019) haben die einzelnen Bausteine dafür schon in der ersten Fassung von pyannote.audio vorgestellt: Sprachaktivitätserkennung, Erkennung von Sprecherwechseln, Erkennung von überlappender Sprache und Stimmvektoren.
Die Zahl der Sprecher kann der Nutzer vorgeben oder das Programm schätzt sie aus dem Abstand der Stimmvektoren. Die Modellkarte der Pipeline speaker-diarization-community-1 nennt dafür die Parameter num_speakers, min_speakers und max_speakers. Das Ergebnis ist eine Liste von Zeitabschnitten mit anonymen Bezeichnungen wie SPEAKER_00. Die Pipeline läuft nach dem Herunterladen ohne Internetverbindung.
Ein Transkript mit Sprecherzuordnung entsteht erst, wenn ein Programm die Zeitabschnitte der Sprecherdiarisierung mit den Wort-Zeitstempeln der Spracherkennung verbindet. Jedes Wort erhält den Sprecher, in dessen Zeitabschnitt es fällt.
Bedeutung für Transkripte im forensischen Kontext
Ein Transkript aus einer Vernehmung, einer Exploration oder einer Telefonüberwachung ist nur brauchbar, wenn jede Äußerung der richtigen Person zugeordnet ist. Die Sprecherdiarisierung liefert diese Zuordnung als Vorschlag mit einer messbaren Fehlerquote.
Das Fehlermaß heißt Diarization Error Rate (DER). Die Dokumentation von pyannote.metrics definiert es als Summe aus drei Anteilen, geteilt durch die gesamte Sprechdauer im Referenzmaterial: Sprache, die das Programm als Pause gewertet hat, Pausen, die es als Sprache gewertet hat, und Sprache, die es dem falschen Sprecher zugeordnet hat. Weil auch ein menschlicher Annotator die Grenze eines Sprecherwechsels nicht auf die Millisekunde setzt, bleibt nach dieser Dokumentation ein Rand von 250 Millisekunden vor und nach jeder Grenze außerhalb der Wertung. Für die freie Pipeline community-1 nennt die Modellkarte eine DER von 17,0 Prozent auf dem Konferenzkorpus AMI, 11,2 Prozent auf VoxConverse und 20,2 Prozent auf DIHARD 3. Ein Sechstel der Sprechdauer in einer Konferenzaufnahme ist demnach falsch zugeordnet, falsch als Pause gewertet oder aus einer Pause erfunden.
Fehler entstehen vor allem dort, wo Sprecher einander ins Wort fallen. Bei gleichzeitigem Sprechen geht Text verloren, und das gilt für jedes dem Autor bekannte Modell.
Für die Arbeit am Transkript folgt daraus: Der Bearbeiter prüft jeden Sprecherwechsel am Ton, bevor er das Transkript zitiert. Er gibt die Sprecherzahl vor, wenn er sie kennt. Und er behandelt Stellen mit gleichzeitigem Sprechen als Lücke, nicht als Wortlaut.
Abgrenzung
Sprechererkennung ist der Name der Funktion in memozero, die die Sprecherdiarisierung mit pyannote.audio auf dem Rechner des Nutzers ausführt. Sie vergibt Bezeichnungen wie “Sprecher A” und erkennt Wechsel, nicht Identität. Sie legt keine Sprecherprofile über mehrere Aufnahmen hinweg an.
Sprecheridentifikation ordnet eine Stimme einer bekannten Person zu und braucht dafür Vergleichsmaterial und einen Sachverständigen für forensische Phonetik. Die Sprecherdiarisierung stellt keine Identität fest und ersetzt kein Stimmvergleichsgutachten.
Wort-Zeitstempel stammen aus der Spracherkennung und geben an, wann ein Wort gesprochen wurde. Die Sprecherdiarisierung liefert die Zeitabschnitte je Sprecher. Beide Ergebnisse werden über die Zeitachse verbunden.
Häufige Fragen
Erkennt die Sprecherdiarisierung, wer eine Person ist?
Nein. Das Verfahren stellt fest, dass sich die Stimme ändert, und fasst ähnlich klingende Abschnitte zu einem anonymen Sprecher zusammen. Die Zuordnung zu einem Namen oder einer Rolle nimmt der Bearbeiter vor, in memozero durch Umbenennen der Bezeichnung im Editor.
Warum stimmt die geschätzte Sprecherzahl oft nicht?
Das Clusterverfahren trennt Sprecher nach dem Abstand ihrer Stimmvektoren. Zwei ähnlich klingende Stimmen fallen dann zusammen, und eine Stimme, die einmal nah am Mikrofon und einmal weit entfernt spricht, zerfällt in zwei Sprecher. Wer die Sprecherzahl kennt, gibt sie vor.
Was passiert, wenn zwei Personen gleichzeitig sprechen?
pyannote.audio enthält seit der ersten Fassung eine Erkennung für überlappende Sprache (Bredin et al., 2019). Die Spracherkennung kann die übereinander liegenden Wörter trotzdem nicht sauber trennen, und an solchen Stellen geht Text verloren. Diese Stellen hört der Bearbeiter am Ton nach und kennzeichnet sie im Transkript.
Quellen
- Bredin, H. et al. (2019): pyannote.audio: neural building blocks for speaker diarization. arXiv:1911.01255. https://arxiv.org/abs/1911.01255
- Bredin, H. (2023): pyannote.audio 2.1 speaker diarization pipeline: principle, benchmark, and recipe. Interspeech 2023, S. 1983 bis 1987, doi:10.21437/Interspeech.2023-105. https://www.isca-archive.org/interspeech_2023/bredin23_interspeech.html
- Park, T. J. et al. (2022): A Review of Speaker Diarization: Recent Advances with Deep Learning. Computer Speech & Language, Band 72. https://arxiv.org/abs/2101.09624
- pyannote.metrics, Dokumentation, Abschnitt Diarization error rate. https://pyannote.github.io/pyannote-metrics/reference.html
- pyannote (2025): Modellkarte speaker-diarization-community-1. https://huggingface.co/pyannote/speaker-diarization-community-1
- pyannote (2025): pyannote-audio, README mit Benchmark-Tabelle. https://github.com/pyannote/pyannote-audio