Einführung
Die Ankunft hochentwickelter Text-to-Speech-Technologie in den letzten Jahren hat die Tore für viele innovative und wegweisende KI-gestützte Produkte geöffnet. Wir sind nicht länger auf die ungeschickten und robotischen synthetisierten Ansagen beschränkt, die von früheren Text-to-Speech-Technologien generiert wurden. Ein Unternehmen namens ElevenLabs hat das Spiel verändert, indem es Funktionen anbietet, die sich auf die Sprachgenerierung konzentrieren. Vom Erstellen und Entwerfen unserer eigenen Stimmen bis hin zum Synthetisieren von Ansagen mit unseren Kreationen oder vorgefertigten Stimmen bietet ElevenLabs leistungsstarke Werkzeuge.
In diesem Tutorial führen wir Sie durch die Erstellung eines automatischen Synchronisationsdienstes mit der Text-to-Speech-Technologie von ElevenLabs. Darüber hinaus werden wir die notwendigen Schritte identifizieren, von der Abrufung von Videos über YouTube-Links bis hin zum Zusammenführen der Videos mit den generierten Synchronisationen.
Einführung in ElevenLabs
ElevenLabs ist ein hochinnovatives Unternehmen, das eine benutzerfreundliche API für die Sprachgenerierung anbietet. Ihre hochmoderne Sprachgenerierungs-API wurde auf umfangreichen Hörbüchern und Podcasts trainiert, was zu einer natürlichen und ausdrucksvollen Sprachsynthese führt. Daher kann die API von ElevenLabs effektiv eine Reihe sprachzentrierter Produkte unterstützen, einschließlich Erzählgeschichten/Hörbücher und Video-Voiceovers.
Einführung in OpenAI's Whisper
Whisper ist ein Audiotranskriptionsdienst oder Modul zur Spracherkennung, das von OpenAI entwickelt wurde. Es wurde auf beeindruckenden 680.000 Stunden mehrsprachiger und multitask-überwachter Daten trainiert, die aus verschiedenen Online-Quellen gesammelt wurden, was die Leistung bei der Erkennung von Akzenten und Fachsprache trotz Hintergrundgeräuschen verbessert. Bemerkenswert ist, dass Whisper in der Lage ist, Ansagen in mehreren Sprachen zu transkribieren und aus nicht-englischen Sprachen zu übersetzen.
Einführung in das Claude-Modell von Anthropic
Claude ist ein fortgeschrittenes KI-Modell, das von Anthropic entwickelt wurde und darauf abzielt, hilfreiche, ehrliche und sichere KI-Systeme zu fördern. Es glänzt bei einer Vielzahl sprachzentrierter Aufgaben, einschließlich Textzusammenfassungen, kollaborativem Schreiben, Fragen & Antworten und Codierung. Rückmeldungen von Benutzern zeigen, dass Claude viel weniger wahrscheinlich schädliche Antworten produziert, benutzerfreundlich ist und es den Benutzern ermöglicht, ihre gewünschten Ergebnisse mit minimalem Aufwand zu erzielen.
Schließlich ist Claude darauf ausgelegt, menschenähnliche Antworten zu liefern, was es ideal für Dienstleistungen macht, die darauf abzielen, humane und hervorragende Benutzererfahrungen zu bieten. In diesem Tutorial werden wir Claude nutzen, um uns bei der Übersetzung unserer Videotranskripte zu helfen.
Voraussetzungen
- Grundkenntnisse in Python; Vertrautheit mit Streamlit ist ein Plus.
- Zugang zur API von ElevenLabs.
- Zugang zur API von Anthropic.
Umriss
- Identifizieren der Anforderungen
- Projektinitialisierung
- Hinzufügen der Video-Transkriptionsfunktion mit OpenAI's Whisper
- Hinzufügen der Übersetzungsfunktion mit Anthropic's Claude
- Hinzufügen der Dubs-Generierungsfunktion mit der API von ElevenLabs
- Letzte Feinheiten - Kombinieren des Videos mit den generierten Dubs
- Testen des automatischen Synchronisationsdienstes
Identifizieren der Anforderungen
Um einen automatischen Synchronisationsdienst für YouTube-Videos zu erstellen, müssen wir die für den Synchronisationsprozess wesentlichen Merkmale berücksichtigen: Abrufen des Videos, Transkribieren von Audiostreams, Übersetzen von Texten, Generierung von Dubs und schließlich Kombinieren der Dubs mit dem Video.
Video vom Youtube-Link abrufen
Um das Video und die Audiostreams zusammen mit Metadaten wie Titeln und Thumbnails abzurufen, verwenden wir die pytube-Bibliothek. Die Benutzer geben den YouTube-Link in ein Textfeld ein und klicken auf eine Schaltfläche, um den Download-Prozess auszulösen.
Transkribieren des Audiostreams
Nach dem Herunterladen des Audiostreams folgt der nächste Schritt des Transkribierens mit Hilfe von OpenAI's Whisper über die Whisper-Bibliothek. Aus Leistungsgründen wird das Audio vor der Transkription in einminütige Segmente unterteilt. Ein DataFrame zeigt den transkribierten Inhalt an und listet Startzeiten, Endzeiten und gesprochene Texte auf.
Übersetzen des Transkripts
Mit dem Claude-Modell von Anthropic werden wir das Transkript vom Englischen in die gewählte Sprache übersetzen. Wir werden dies mit einem Aufruf der anthropic-Bibliothek durchführen.
Generierung der Dubs
Nachdem wir die Übersetzungsergebnisse von Claude erhalten haben, generieren wir die Audios mit der API von ElevenLabs. Durch den Import relevanter Funktionen aus der Bibliothek von ElevenLabs können wir Sprache mit einer vorgefertigten Stimme und dem mehrsprachigen Modell synthetisieren, um nicht-englische Übersetzungen zu unterstützen.
Kombinieren der Dubs mit dem Video
Schließlich rufen wir den Videostream von dem zuvor bereitgestellten YouTube-Link ab und kombinieren ihn mit den generierten Dubs. Die Software ffmpeg wird diesen letzten Schritt erleichtern. Nach dem Kombinationsprozess wird ein Videoplayer in unserem Benutzeroberfläche angezeigt!
Projektinitialisierung
Streamlit wird verwendet, um die Benutzeroberfläche für unseren automatischen Synchronisationsdienst zu erstellen, was es uns ermöglicht, unsere Arbeit in einer einzigen Python-Datei zu konsolidieren. Einige entscheidende erste Schritte stellen sicher, dass unser Projekt reibungslos läuft.
Projektverzeichnis erstellen
- Öffnen Sie Ihr Terminal und navigieren Sie zu Ihrem Programmierprojektdirectory.
- Erstellen Sie das Projektverzeichnis und betreten Sie es.
Virtuelle Umgebung erstellen und aktivieren
Als nächstes erstellen und aktivieren wir unsere virtuelle Umgebung, um zu verhindern, dass Abhängigkeiten in die globale Umgebung eindringen. Ihr Terminal sollte anzeigen, wenn die virtuelle Umgebung aktiviert ist.
Installieren von Abhängigkeiten
Jetzt installieren Sie die erforderlichen Abhängigkeiten über pip. Dies kann einige Zeit in Anspruch nehmen, also gönnen Sie sich während des Prozesses eine Pause. Hier ist eine Übersicht über die Bibliotheken, die wir installieren:
- Streamlit: Wird zum Erstellen der Benutzeroberfläche verwendet.
- Anthropic: Stellt eine Verbindung zur API von Anthropic her.
- ElevenLabs: Dient als Wrapper für die API von ElevenLabs.
- Pytube: Ruft Metadaten und Streams von YouTube ab.
- Pydub: Verwaltet und bearbeitet Audiodateien einfach.
- Whisper: Transkribiert heruntergeladene Audios.
- MoviePy: Ursprünglich für die schnelle Kombination von Video/Audios gedacht, aber auf ffmpeg umgeschaltet.
- Pydantic: Muss die auf die Version eingesperrte Version installieren, um Fehler in ElevenLabs zu vermeiden.
Beheben bekannter Probleme
Wenn Sie Ihr Projekt einrichten, sollten Sie potenzielle Probleme im Hinterkopf behalten, die auftreten können:
-
Beheben des Pytube-Bugs: Navigieren Sie zum Verzeichnis der Pytube-Bibliothek, suchen Sie die
cipher.py
-Datei und entfernen Sie das Semikolon aus dem problematischen Regex-Muster in Zeile 287. -
Installation von ffmpeg: Detaillierte Installationsanleitungen sind online zu finden. Eine erfolgreiche Installation ermöglicht das Ausführen des
ffmpeg
-Befehls in Ihrem Terminal.
Streamlit-Geheimdatei erstellen
Unsere Auto-Dubbing-App wird verschiedene KI-Dienste nutzen, die Zugangsschlüssel erfordern. Es ist eine bewährte Praxis, diese Schlüssel in einer separaten Datei zu verwalten. Streamlit verwendet eine secrets.toml
-Datei, um sensitive Informationen zu speichern. Nachdem Sie diese Datei erstellt haben, geben Sie Ihre API-Schlüssel entsprechend an.
Die autodubs.py-Datei erstellen
Erstellen Sie eine neue autodubs.py
-Datei in Ihrem Projektverzeichnis. Beginnen Sie, Ihre App zu schreiben, und fügen Sie zusätzliche UI-Elemente und Funktionalitäten hinzu.
Hinzufügen der Video-Transkriptionsfunktion mit OpenAI's Whisper
Fügen Sie als nächstes einen Handler für unsere Schaltfläche „Transkribieren!“ hinzu. Dieser wird den Audiostream herunterladen und ihn mit OpenAI's Whisper transkribieren. Importieren Sie die erforderlichen Bibliotheken und definieren Sie Funktionen, um die Audioverwaltung zu steuern, bevor Sie die Echo-Funktion aufrufen.
Hinzufügen der Übersetzungsfunktion mit Anthropic's Claude
Entwickeln Sie eine Übersetzungsfunktion, die Aufforderungen an Claude sendet, mithilfe der anthropic-Bibliothek, um direkt zur Übersetzung zu gelangen, ohne einleitende Bemerkungen.
Hinzufügen der Dubs-Generierungsfunktion mit der API von ElevenLabs
Generieren Sie Dubs, indem Sie die entsprechende Funktion definieren und die API von ElevenLabs verwenden, um eine Audioausgabe aus dem übersetzten Text zu erstellen.
Letzte Feinheiten - Kombinieren des Videos mit den generierten Dubs
Rufen Sie den Videostream ab und kombinieren Sie ihn mit der generierten Dub-Audiodatei unter Verwendung von ffmpeg. Stellen Sie sicher, dass dieser Prozess erfolgreich abgeschlossen wird, bevor Sie das zusammengeführte Video in Ihrer Benutzeroberfläche anzeigen.
Testen des automatischen Synchronisationsdienstes
Führen Sie Ihre App aus, testen Sie die Funktionalität und stellen Sie sicher, dass alles korrekt funktioniert. Der Videoplayer wird angezeigt, damit die Benutzer das neu synchronisierte Video genießen können.
Fazit
Im Laufe dieses Tutorials haben wir erfolgreich einen automatischen Synchronisationsdienst für YouTube-Videos erstellt! Mit Tools wie OpenAI's Whisper für die Transkription, Anthropic's Claude für die Übersetzung und ElevenLabs zur Sprachgenerierung haben wir einen schlanken, effektiven automatischen Synchronisationsprozess geschaffen. Vielen Dank an die Streamlit-Bibliothek für die Vereinfachung unserer UI-Entwicklung!
Hinterlasse einen Kommentar
Alle Kommentare werden vor der Veröffentlichung geprüft.
Diese Website ist durch hCaptcha geschützt und es gelten die allgemeinen Geschäftsbedingungen und Datenschutzbestimmungen von hCaptcha.