Interview-Setup und Video-Add
Um eine benutzerfreundliche Oberfläche für die Einrichtung von Interviews und die Bereitstellung von Videolinks zu erstellen, habe ich Die Formularfunktion von Google Colab. Dies ermöglicht die Erstellung von Textfeldern, Schiebereglern, Dropdowns und mehr. Der Code ist hinter dem Formular verborgen, sodass er für nicht-technische Benutzer sehr leicht zugänglich ist.
Audio-Obtain und -Konvertierung
Ich habe die yt-dlp-Bibliothek verwendet, um nur den Ton eines YouTube-Movies herunterzuladen und in das MP3-Format zu konvertieren. Die Verwendung ist sehr einfach und Sie können Die Dokumentation finden Sie hier.
Audiotranskription
Zur Transkription des Conferences verwendete ich Flüstern von Open AI. Es handelt sich um ein Open-Supply-Modell zur Spracherkennung, das mit über 680.000 Stunden mehrsprachiger Daten trainiert wurde.
Das Modell läuft unglaublich schnell; die Transkription eines einstündigen Audioclips dauert auf einer 16 GB großen T4-GPU (kostenlos auf Google Colab angeboten) etwa 6 Minuten und unterstützt 99 verschiedene Sprachen.
Da Datenschutz eine Voraussetzung für die Lösung ist, werden die Modellgewichte heruntergeladen und alle Inferenzen erfolgen innerhalb der Colab-Instanz. Ich habe dem Pocket book auch ein Modellauswahlformular hinzugefügt, damit der Benutzer je nach der von ihm gesuchten Genauigkeit verschiedene Modelle auswählen kann.
Sprecheridentifikation
Die Sprecheridentifizierung erfolgt mithilfe einer Technik namens „Audio system Diarization“. Die Idee besteht darin, Audiodaten zu identifizieren und in einzelne Sprachsegmente zu segmentieren, wobei jedes Phase einem bestimmten Sprecher entspricht. Auf diese Weise können wir feststellen, wer wann gesprochen hat.
Da die von YouTube hochgeladenen Movies keine Metadaten enthalten, die den Sprecher identifizieren, werden die Sprecher in Sprecher 1, Sprecher 2 usw. unterteilt. Später kann der Benutzer diese Namen in Google Docs suchen und ersetzen, um die Identifikation der Sprecher hinzuzufügen.
Für die Diarisierung verwenden wir ein Modell namens Multi-Scale-Diarisierungs-Decoder (MSDD)das von Nvidia-Forschern entwickelt wurde. Es handelt sich dabei um einen ausgeklügelten Ansatz zur Sprecherdiarisierung, der Multiskalenanalyse und dynamische Gewichtung nutzt, um eine hohe Genauigkeit und Flexibilität zu erreichen.
Das Modell ist dafür bekannt, dass es Momente, in denen mehrere Sprecher gleichzeitig sprechen, recht intestine erkennen und richtig kategorisieren kann – etwas, das bei Interviews häufig vorkommt.
Das Modell kann verwendet werden durch die NVIDIA NeMo-Framework. Es ermöglichte mir, MSDD-Checkpoints zu erhalten und die Diarisierung mit nur wenigen Codezeilen direkt im Colab-Notizbuch auszuführen.
Als ich mir die Diarisierungsergebnisse von MSDD ansah, bemerkte ich, dass die Zeichensetzung ziemlich schlecht battle, mit langen Phrasen und einigen Unterbrechungen wie „Hmm“ Und „Ja“ wurden als Unterbrechung des Sprechers gewertet, was die Lesbarkeit des Textes erschwerte.
Additionally beschloss ich, der Pipeline ein Interpunktionsmodell hinzuzufügen, um die Lesbarkeit des transkribierten Textes zu verbessern und die menschliche Analyse zu erleichtern. So bekam ich das Interpunktionsmodell von Hugging Faceeine sehr präzise und schnelle Lösung, die die folgenden Sprachen unterstützt: Englisch, Deutsch, Französisch, Spanisch, Bulgarisch, Italienisch, Polnisch, Niederländisch, Tschechisch, Portugiesisch, Slowakisch und Slowenisch.
Videosynchronisation
Eine der von mir verglichenen Branchenlösungen bestand darin, dass jeder Satz mit dem jeweiligen Interviewmoment des Sprechers verknüpft sein sollte.
Die Whisper-Transkriptionen verfügen über Metadaten, die die Zeitstempel angeben, wann die Sätze gesagt wurden. Allerdings sind diese Metadaten nicht sehr präzise.
Daher habe ich ein Modell namens Wav2Vec2 um diesen Abgleich genauer durchzuführen. Im Grunde ist die Lösung ein neuronales Netzwerk, das Audiodarstellungen lernt und eine Spracherkennungsausrichtung durchführt. Der Prozess umfasst das Finden der genauen Zeitstempel im Audiosignal, an denen jedes Phase gesprochen wurde, und das entsprechende Ausrichten des Textes.
Nachdem die Übereinstimmung zwischen Transkription und Zeitstempel mithilfe eines einfachen Python-Codes ordnungsgemäß durchgeführt wurde, habe ich Hyperlinks erstellt, die auf die Stelle im Video verweisen, an der die Sätze gesprochen werden.
Das LLM-Modell
Dieser Schritt der Pipeline verfügt über ein großes Sprachmodell, das lokal ausgeführt werden kann, den Textual content analysiert und Erkenntnisse über das Interview liefert. Standardmäßig habe ich ein Gemma-Modell 1.1b mit einer Aufforderung zur Zusammenfassung des Textes hinzugefügt. Wenn die Benutzer die Zusammenfassung wünschen, wird sie in einer Aufzählungsliste oben im Dokument angezeigt.
Klicken Sie außerdem auf Code anzeigenkönnen die Benutzer die Eingabeaufforderung ändern und das Modell auffordern, eine andere Aufgabe auszuführen.
Dokumentgenerierung zum Markieren, Hervorheben und Kommentieren
Die letzte Aufgabe der Lösung besteht darin, Google Docs mit den Transkriptionen und Hyperlinks zu den Interviews zu generieren. Dies wurde durch die Google API Python-Clientbibliothek.
Da das Produkt in meiner täglichen Arbeit unglaublich nützlich geworden ist, habe ich beschlossen, ihm einen Namen zu geben, damit ich es leichter wiederfinden kann. Ich nannte es das ICHEinblicke Gatherisch OStiftquelle Tool oder iGot.
Wenn Sie die Lösung zum ersten Mal verwenden, ist zunächst eine Einrichtung erforderlich. Ich werde Sie anhand eines Beispiels aus der Praxis durch die ersten Schritte führen.
Öffnen Sie das iGot-Pocket book und installieren Sie die erforderlichen Bibliotheken
Klicken Sie auf dieser Hyperlink um das Pocket book zu öffnen und die erste Zelle auszuführen, um die erforderlichen Bibliotheken zu installieren. Dies dauert etwa 5 Minuten.
Wenn Sie zum Neustart des Notebooks aufgefordert werden, brechen Sie den Vorgang einfach ab. Das ist nicht nötig.
Wenn alles wie erwartet läuft, erhalten Sie die Meldung „Alle Bibliotheken installiert!“.
Abrufen des Hugging-Benutzerzugriffstokens und des Modellzugriffs
(Dieser Schritt ist nur beim ersten Ausführen des Notebooks erforderlich.)
Um die Gemma- und Punctuate-All-Modelle auszuführen, laden wir Gewichte von Hugging Face herunter. Dazu müssen Sie ein Benutzertoken und Modellzugriff anfordern.
Dazu müssen Sie ein Hugging Face-Konto erstellen und diese Schritte befolgen, um ein Token mit Leseberechtigungen zu erhalten.
Sobald Sie das Token haben, kopieren Sie es und kehren Sie zum Labornotizbuch zurück. Gehen Sie zur Registerkarte „Geheimnisse“ und klicken Sie auf „Neues Geheimnis hinzufügen“.
Nennen Sie Ihr Token wie folgt HF_TOKEN und vorbei am Schlüssel, den du von Hugging Face bekommen hast.
Klicken Sie anschließend auf dieser Hyperlink um das Gemma-Modell auf Hugging Face zu öffnen. Klicken Sie dann auf „Lizenz bestätigen“, um Zugriff auf das Modell zu erhalten.
Senden des Interviews
Um ein Interview an iGot zu senden, müssen Sie es zuvor als nicht gelistetes Video auf YouTube hochladen. Für dieses Tutorial habe ich einen Ausschnitt aus dem Interview von Andrej Karpathy mit Lex Fridman genommen und auf mein Konto hochgeladen. Es ist Teil des Gesprächs, in dem Andrej einige Ratschläge für Anfänger im maschinellen Lernen gab.
Dann müssen Sie die Video-URL abrufen, in die Video-URL Feld der Auswahl der Interviews Pocket book-Zelle, legen Sie einen Namen für diese fest und geben Sie die im Video gesprochene Sprache an.
Sobald Sie die Zelle ausführen, erhalten Sie eine Meldung, dass eine Audiodatei generiert wurde.
Modellauswahl und Ausführung
In der nächsten Zelle können Sie die Größe des Whisper-Modells auswählen, das Sie für die Transkription verwenden möchten. Je größer das Modell, desto höher die Transkriptionspräzision.
Standardmäßig ist das größte Modell ausgewählt. Treffen Sie Ihre Wahl und führen Sie die Zelle aus.
Führen Sie dann die Modellausführungszelle aus, um die im vorherigen Abschnitt gezeigte Modellpipeline auszuführen. Wenn alles wie erwartet verläuft, sollten Sie am Ende die Meldung „Interpunktion abgeschlossen!“ erhalten.
Wenn Sie über eine Meldung aufgefordert werden, auf den Token für das Umarmungsgesicht zuzugreifen, gewähren Sie den Zugriff darauf.
Konfigurieren der Transkriptausgabe
Der letzte Schritt besteht darin, die Transkription in einer Google Docs-Datei zu speichern. Dazu müssen Sie den Dateipfad angeben, den Interviewnamen eingeben und entscheiden, ob Gemma das Assembly zusammenfassen soll.
Wenn Sie die Zelle zum ersten Mal ausführen, werden Sie möglicherweise mit einer Meldung aufgefordert, auf Ihr Google Drive zuzugreifen. Klicken Sie auf „Zulassen“.
Geben Sie Colab dann vollen Zugriff auf Ihren Google Drive-Arbeitsbereich.
Wenn alles wie erwartet läuft, wird am Ende ein Hyperlink zur Google Docs-Datei angezeigt. Klicken Sie einfach darauf und Sie erhalten Zugriff auf die Transkription Ihres Interviews.
Sammeln von Erkenntnissen aus dem generierten Dokument
Das endgültige Dokument enthält die Transkriptionen, wobei jede Phrase mit dem entsprechenden Second im Video verknüpft ist, an dem sie beginnt. Da YouTube keine Sprechermetadaten bereitstellt, empfehle ich, das Suchen- und Ersetzen-Device von Google Docs zu verwenden, um „Sprecher 0“, „Sprecher 1“ usw. durch die tatsächlichen Namen der Sprecher zu ersetzen.
Damit können Markierungen, Notizen, Reaktionen usw. bearbeitet werden. Wie eingangs vorgesehen:
Das Device ist erst in der ersten Model und ich airplane, es zu einer benutzerfreundlicheren Lösung weiterzuentwickeln. Vielleicht hoste ich eine Web site, damit Benutzer nicht direkt mit dem Notizbuch interagieren müssen, oder ich erstelle ein Plugin für die Verwendung in Google Meets und Zoom.
Mein Hauptziel bei diesem Projekt bestand darin, ein hochwertiges Device zur Transkription von Conferences zu erstellen, das anderen von Nutzen sein kann und gleichzeitig zeigt, wie verfügbare Open-Supply-Instruments mit den Fähigkeiten kommerzieller Lösungen mithalten können.
Ich hoffe, Sie finden es nützlich! Fühlen Sie sich frei, Kontaktieren Sie mich auf LinkedIn wenn Sie Suggestions haben oder an einer Mitarbeit bei der Weiterentwicklung von iGot interessiert sind 🙂