10. März 2023

Wer hat wann gesprochen: Die Wahl des richtigen Sprechertagebuchs

Mitwirkende
Philippe Moussali
Machine Learning Engineer
Keine Artikel gefunden.
Newsletter abonnieren
Diesen Beitrag teilen

Einführung

Dieser Blogpost ist abgeleitet von seiner interaktiven Version auf Hugging Face Spaces. Sie können dort weiter lesen, wenn Sie die Vorteile des Herumspielens mit mehreren Beispielen nutzen oder einige Diarisierungswerkzeuge an Ihren eigenen Hörproben testen möchten.

Illustration der Sprechertagebuchführung

Mit der Zunahme der Anwendungen von automatischen Spracherkennungssystemen (ASR)ist die Fähigkeit, einen Sprach-Audiostrom mit mehreren Sprechern in einzelne Segmente aufzuteilen, die den einzelnen Sprechern zugeordnet sind, ein entscheidender Bestandteil des Verständnisses von Sprachdaten geworden.

In diesem Blogbeitrag werfen wir einen Blick auf verschiedene Open-Source-Frameworks für die Sprechertagebuchführung und geben Ihnen einen Leitfaden an die Hand, mit dem Sie das für Ihren Anwendungsfall am besten geeignete Framework auswählen können.

Bevor wir uns mit den technischen Details, Bibliotheken und Tools befassen, sollten wir erst einmal verstehen, was Speaker Diarization ist und wie sie funktioniert!

Was ist die Lautsprechertarierung?️

Die Sprechertagebuchführung soll die Frage beantworten "wer hat wann gesprochen". Kurz gesagt: Algorithmen zur Diarisierung zerlegen einen Audiostrom mit mehreren Sprechern in Segmente, die den einzelnen Sprechern entsprechen.

Durch die Kombination der Informationen, die wir aus der Tagebuchführung mit ASR-Transkriptionen erhalten, können wir das generierte Transkript in ein Format umwandeln, das für Menschen besser lesbar und interpretierbar ist und das für andere nachgelagerte NLP-Aufgaben verwendet werden kann.

Arbeitsablauf der Kombination von ASR und Sprechertagebuch auf einem Sprachsignal, um ein Sprechertranskript zu erstellen.

Lassen Sie uns dies anhand eines Beispiels veranschaulichen. Wir haben eine Aufnahme eines lockeren Telefongesprächs zwischen zwei Personen. Sie können sehen, wie die unterschiedlichen Transkriptionen aussehen, wenn wir das Gespräch mit und ohne Diarisierung transkribieren.

Durch die Erstellung eines sprecherbezogenen Transkripts können wir das generierte Gespräch leichter interpretieren als ein generiertes Transkript ohne Diarisierung. Viel übersichtlicher, oder?

Aber was kann ich mit diesen sprecherabhängigen Transkripten machen?

Sprecherspezifische Transkripte können ein leistungsstarkes Werkzeug für die Analyse von Sprachdaten sein:

  • Wir können die Transkripte verwenden, um die Stimmung der einzelnen Sprecher zu analysieren, indem wir die Stimmungsanalyse sowohl auf Audio- als auch auf Texttranskripte anwenden.
  • Another use case is telemedicine, where we might identify the <doctor> and <patient> tags on the transcription to create an accurate transcript and attach it to the patient file or EHR system.
  • Die Sprechertagebuchfunktion kann von Einstellungsplattformen genutzt werden, um Telefon- und Videoanrufe zu analysieren. Auf diese Weise können sie die Bewerber je nach ihren Antworten auf bestimmte Fragen aufteilen und kategorisieren, ohne die Aufzeichnungen erneut anhören zu müssen.

Nachdem wir nun die Bedeutung der Sprechertagebuchführung und einige ihrer Anwendungen kennengelernt haben, ist es an der Zeit herauszufinden, wie wir Diarisierungs-Workflows für unsere Audiodaten implementieren können.

Der Arbeitsablauf eines Sprechertagebuchsystems

Der Aufbau von robusten und präzisen Sprechertagebuch-Workflows ist keine triviale Aufgabe. Audiodaten aus der realen Welt sind chaotisch und komplex, da viele Faktoren eine Rolle spielen, z. B. ein verrauschter Hintergrund, mehrere Sprecher, die gleichzeitig sprechen, und subtile Unterschiede zwischen den Stimmen der Sprecher in Bezug auf Tonhöhe und Klang.

Darüber hinaus leiden Systeme zur Sprechertagebuchführung häufig unter einer mangelnden Anpassung an den jeweiligen Bereich, d. h. ein Modell für Daten aus einem bestimmten Bereich funktioniert schlecht, wenn es auf einen anderen Bereich angewendet wird.

Alles in allem ist die Sprechertagebuchführung kein leichtes Unterfangen. Aktuelle Sprechertagebuchsysteme können in zwei Kategorien unterteilt werden: Traditionelle Systeme und End-to-End-Systeme. Schauen wir uns an, wie sie funktionieren:

Traditionelle Tagebuchführungssysteme

Diese bestehen aus vielen unabhängigen Teilmodulen, die einzeln optimiert werden, nämlich:

  • Spracherfassung: Der erste Schritt besteht darin, Sprache zu erkennen und sprachfremde Signale mit einem Algorithmus zur Erkennung von Stimmaktivität (VAD) zu entfernen.
  • Segmentierung der Sprache: Die Ausgabe des VAD wird dann in kleine Segmente unterteilt, die aus einigen Sekunden bestehen (normalerweise 1-2 Sekunden).
  • Einbettung von Sprache: Ein neuronales Netz, das zuvor auf Sprechererkennung trainiert wurde, wird verwendet, um eine hochwertige Darstellung der Sprachsegmente abzuleiten. Bei diesen Einbettungen handelt es sich um Vektordarstellungen, die die Merkmale der Stimme (auch als Stimmabdruck bezeichnet) zusammenfassen.
  • Clustering: Nach der Extraktion der Segmenteinbettungen müssen wir die Spracheinbettungen mit einem Clustering-Algorithmus (z. B. K-Means oder spektrales Clustering) clustern. Das Clustering führt zu den gewünschten Diarisierungsergebnissen, die darin bestehen, die Anzahl der eindeutigen Sprecher (abgeleitet von der Anzahl der eindeutigen Cluster) zu ermitteln und jeder Einbettung (oder jedem Sprachsegment) eine Sprecherbezeichnung zuzuweisen.

Prozess der Identifizierung von Sprechersegmenten aus Sprachaktivitätseinbettungen.

Durchgängige Diarisierungssysteme

Hier können die einzelnen Teilmodule des traditionellen Sprechertagebuchsystems durch ein neuronales Netz ersetzt werden, das durchgängig auf Sprechertagebuch trainiert wird.

Vorteile

Direkte Optimierung des Netzes zur Maximierung der Genauigkeit bei der Diarisierungsaufgabe. Dies steht im Gegensatz zu herkömmlichen Systemen, bei denen die Teilmodule einzeln, aber nicht als Ganzes optimiert werden.

➕ Es ist weniger notwendig, nützliche Vor- und Nachverarbeitungsprozesse für die Eingabedaten zu entwickeln.

Benachteiligungen

➖ Mehr Aufwand für die Datenerfassung und -kennzeichnung. Dies liegt daran, dass diese Art von Ansatz sprecherbezogene Transkripte für das Training erfordert. Dies unterscheidet sich von traditionellen Systemen, bei denen nur Etiketten, bestehend aus dem Sprecher-Tag zusammen mit dem Audio-Zeitstempel, benötigt werden (ohne Transkriptionsaufwand).

Diese Systeme neigen zu einer Überanpassung der Trainingsdaten.

Rahmen für die Sprechertagebuchführung

Wie Sie sehen, haben sowohl traditionelle als auch durchgängige Diarisierungssysteme Vor- und Nachteile. Der Aufbau eines Sprechertagebuchsystems erfordert auch die Zusammenstellung einer ganzen Reihe von Bausteinen, und die Implementierung kann auf den ersten Blick entmutigend erscheinen.

Glücklicherweise gibt es eine Fülle von Bibliotheken und Paketen, in denen all diese Schritte bereits implementiert sind und die Sie sofort verwenden können 🔥.

Ich werde mich auf die populärsten Open-Source-Bibliotheken zur Diarisierung von Sprechern konzentrieren. Mit Ausnahme des letzten Frameworks(UIS-RNN) basieren alle auf dem traditionellen Diarisierungsansatz. Unter diesem Link finden Sie eine ausführlichere Liste der verschiedenen Diarisierungsbibliotheken.

1. Pyannote

👉 Wohl eine der beliebtesten Bibliotheken für die Sprechertagebuchführung.

Beachten Sie, dass die vortrainierten Modelle auf den VoxCeleb-Datensätzen basieren, die aus Aufnahmen von Prominenten bestehen, die von YouTube extrahiert wurden. Die Audioqualität dieser Aufnahmen ist klar und deutlich, sodass Sie Ihr Modell möglicherweise neu trainieren müssen, wenn Sie andere Datentypen wie aufgezeichnete Telefongespräche verwenden möchten.

➕ Enthält eine Reihe von vortrainierten Modellen für VAD, Embedder und Segmentierungsmodell.

Die Inferenzpipeline kann mehrere gleichzeitig sprechende Personen identifizieren (Multi-Label-Diarisierung).

Es ist nicht möglich, die Anzahl der Sprecher vor der Ausführung des Clustering-Algorithmus zu bestimmen. Dies könnte zu einer Über- oder Unterschätzung der Anzahl der Sprecher führen, wenn diese im Voraus bekannt ist.

2. NVIDIA NeMo

Das Nvidia NeMo-Toolkit verfügt über separate Sammlungen für Modelle zur automatischen Spracherkennung (ASR), Verarbeitung natürlicher Sprache (NLP) und Text-to-Speech (TTS).

👉 Die Modelle, die die vortrainierten Netze auf VoxCeleb-Datensätzen sowie dem Fisher- und SwitchBoard-Datensatz, der aus Telefongesprächen in englischer Sprache besteht, trainiert wurden. Dadurch sind sie als Ausgangspunkt für die Feinabstimmung eines Modells für Call-Center-Anwendungsfälle besser geeignet als die in pyannote verwendeten vortrainierten Modelle. Weitere Informationen über die vortrainierten Modelle finden Sie hier.

Die Ergebnisse der Diarisierung können problemlos mit ASR-Ausgaben kombiniert werden, um sprecherbezogene Transkripte zu erstellen.

➕ Möglichkeit, die Anzahl der Sprecher im Voraus festzulegen, wenn sie bekannt ist, was zu einer genaueren Diarisationsausgabe führt.

Die Tatsache, dass das NeMo-Toolkit auch NLP-verwandte Frameworks enthält, macht es einfach, das Diarisierungsergebnis mit nachgelagerten NLP-Aufgaben zu integrieren.

3. Einfacher Diarizer

👉 Eine vereinfachte Diarisierungspipeline, die für schnelle Tests verwendet werden kann.

👉 Verwendet die gleichen vortrainierten Modelle wie pyannote.

Ähnlich wie bei Nvidia NeMo gibt es die Möglichkeit, die Anzahl der Lautsprecher im Voraus zu definieren.

Im Gegensatz zu pyannote bietet diese Bibliothek keine Möglichkeit zur Feinabstimmung der vortrainierten Modelle, was sie für spezielle Anwendungsfälle weniger geeignet macht.

4. SprachGehirn

👉 All-in-One-KI-Toolkit für Konversation auf Basis von PyTorch.

Das SpeechBrain Ecosystem erleichtert die Entwicklung integrierter Sprachlösungen mit Systemen wie ASR, Sprechererkennung, Sprachanhebung, Sprachseparation und Spracherkennung.

➕ Große Anzahl an vortrainierten Modellen für verschiedene Aufgaben. Besuchen Sie die HuggingFace-Seite für weitere Informationen.

➕ Enthält verständliche Anleitungen für verschiedene Sprachbausteine, um den Einstieg zu erleichtern.

Die Diarisierungspipeline ist noch nicht vollständig implementiert, aber das könnte sich in Zukunft ändern.

5. Kaldi

👉 Spracherkennungs-Toolkit, das sich hauptsächlich an Forscher richtet. Es wurde mit C++ entwickelt und dient zum Trainieren von Spracherkennungsmodellen und zur Dekodierung von Audiodateien.

Das vortrainierte Modell basiert auf dem CALLHOME-Datensatz, der aus Telefongesprächen zwischen englischen Muttersprachlern in Nordamerika besteht.

👉 Profitiert von der großen Unterstützung der Gemeinschaft. Richtet sich jedoch hauptsächlich an Forscher und ist weniger für produktionsreife Lösungen geeignet.

➖ Relativ steile Lernkurve für Anfänger, die noch nicht viel Erfahrung mit Spracherkennungssystemen haben.

➖ Nicht geeignet für eine schnelle Einführung von ASR/Diarisierungssystemen.

6. UIS-RNN

👉 Ein von Google entwickeltes, vollständig überwachtes End-to-End-Tagebuchmodell.

👉 Sowohl für das Training als auch für die Vorhersage ist der Einsatz eines Grafikprozessors erforderlich.

Relativ einfach zu trainieren, wenn man eine große Menge an vormarkierten Daten hat.

➖ Es ist kein vortrainiertes Modell verfügbar, so dass Sie es von Grund auf mit Ihren eigenen transkribierten Daten trainieren müssen.

Das sind ziemlich viele verschiedene Frameworks! Um die Auswahl des richtigen Frameworks für Ihren Anwendungsfall zu erleichtern, habe ich ein einfaches Flussdiagramm erstellt, das Ihnen bei der Auswahl einer geeigneten Bibliothek für Ihren Anwendungsfall helfen kann.

Flussdiagramm für die Auswahl eines geeigneten Frameworks für Ihren Anwendungsfall der Tagebuchführung.

Demo

Jetzt sind Sie wahrscheinlich sehr neugierig und wollen selbst ein paar Diarisierungstechniken ausprobieren. Im Folgenden finden Sie ein Beispiel für die Diarisierung dieses Audiobeispiels mit dem Pyannote-Framework.

Audiodarstellung des bereitgestellten Beispiels unter Verwendung des Pyannote-Frameworks

Schauen Sie sich unbedingt die interaktive Version dieses Blogposts auf Hugging Face Space an, um die Diarisierung an Ihren eigenen Hörproben mit verschiedenen Diarisierungs-Frameworks zu testen.

Schlussfolgerungen

In diesem Blogpost haben wir verschiedene Aspekte der Sprechertagebuchführung behandelt.

  • Zunächst haben wir erklärt, was die Sprechertagebuchführung ist und einige Beispiele für ihre verschiedenen Anwendungsbereiche gegeben.
  • Wir haben die beiden Haupttypen von Systemen für die Implementierung von Tagebuchsystemen mit einem soliden (High-Level-)Verständnis sowohl für traditionelle Systeme als auch für End-to-End-Systeme diskutiert.
  • Anschließend haben wir einen Vergleich verschiedener Diarisierungs-Frameworks durchgeführt und einen Leitfaden für die Auswahl des besten Frameworks für Ihren Anwendungsfall bereitgestellt.
  • Schließlich haben wir Ihnen ein Beispiel zur Verfügung gestellt, mit dem Sie einige der Tagebuchbibliotheken schnell ausprobieren können.

Ich hoffe, Sie hatten eine gute Zeit beim Lesen dieses Artikels und haben dabei etwas Neues gelernt.

Verwandte Beiträge

Alle anzeigen
Keine Ergebnisse gefunden.
Es gibt keine Ergebnisse mit diesen Kriterien. Versuchen Sie, Ihre Suche zu ändern.
Stiftung Modelle
Unternehmen
Unser Team
Verantwortungsvolle und ethische KI
Strukturierte Daten
Chat GPT
Nachhaltigkeit
Stimme und Ton
Front-End-Entwicklung
Schutz und Sicherheit von Daten
Verantwortungsvolle/ethische KI
Infrastruktur
Hardware und Sensoren
MLOps
Generative KI
Verarbeitung natürlicher Sprache
Computer Vision