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.
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!
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.
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:
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 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:
Diese bestehen aus vielen unabhängigen Teilmodulen, die einzeln optimiert werden, nämlich:
Hier können die einzelnen Teilmodule des traditionellen Sprechertagebuchsystems durch ein neuronales Netz ersetzt werden, das durchgängig auf Sprechertagebuch trainiert wird.
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.
➖ 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.
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.
👉 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.
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.
👉 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.
👉 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.
👉 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.
👉 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.
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.
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.
In diesem Blogpost haben wir verschiedene Aspekte der Sprechertagebuchführung behandelt.
Ich hoffe, Sie hatten eine gute Zeit beim Lesen dieses Artikels und haben dabei etwas Neues gelernt.