AI tutorial

Tutorial zur Erstellung eines automatisierten Synchronisationsdienstes mit KI-Technologien

Creating an automated dubbing service using AI technologies like ElevenLabs and OpenAI.

Einleitung

Die Ankunft hochentwickelter Text-to-Speech-Technologie in den letzten Jahren hat die Flut von so vielen innovativen und modernsten KI-gesteuerten Produkten geöffnet. Wir sind nicht länger auf die unbeholfenen und robotischen synthetisierten Sprachausgaben angewiesen, die von der alten Text-to-Speech-Technologie erzeugt werden. Kürzlich hat ein Unternehmen namens ElevenLabs das Spiel verändert, indem es uns Funktionen zur Verfügung stellt, die sich um die Sprachgenerierung drehen. Von der Erstellung und Gestaltung unserer benutzerdefinierten Stimmen bis hin zur Synthese von Sprachen mit den Stimmen, die wir erstellen, oder der Verwendung von vorgefertigten Stimmen, die von ElevenLabs bereitgestellt werden.

In diesem Tutorial werden wir einen automatischen Synchronisierungsdienst unter Verwendung der Text-to-Speech-Technologie von ElevenLabs erstellen. Darüber hinaus werden wir auch die notwendigen Schritte identifizieren, beginnend mit dem Abrufen des Videos von einem YouTube-Link bis hin zur Kombination des Videos mit den generierten Synchronisationen.

Einführung in ElevenLabs

ElevenLabs ist ein hochinnovatives Unternehmen, das eine leistungsstarke, aber benutzerfreundliche API für die Sprachgenerierung anbietet. Sie besitzen hochmoderne Technologie, ihre Sprachgenerierungs-API, die auf großen Mengen von Hörbüchern und Podcasts trainiert wurde, was die Fähigkeit zur Erzeugung natürlich klingender und ausdrucksstarker Sprachen ermöglicht. Somit kann die API von ElevenLabs als ideale Wahl für eine Vielzahl von sprachzentrierten Produkten dienen, wie z.B. die Erzählung von Geschichten/Hörbüchern und Voiceover für Videos.

Was ist OpenAIs Whisper?

Whisper ist ein Audio-Transkriptionsdienst oder Speech-to-Text, der von OpenAI entwickelt wurde. Es wird berichtet, dass es auf 680.000 Stunden multilingualer und multitaskingüberwachter Daten trainiert wurde, die aus dem Web gesammelt wurden, wodurch die Konsistenz bei der Erkennung von Akzenten, Hintergrundgeräuschen und Fachsprache verbessert wird. Whisper ist in der Lage, Transkriptionen in mehreren Sprachen zu erstellen und auch aus nicht-englischen Sprachen zu übersetzen.

Einführung in das Claude-Modell von Anthropic

Claude ist ein fortschrittliches KI-Modell, das von Anthropic entwickelt wurde, basierend auf ihrer Forschung zur Förderung und Ausbildung von hilfreichen, ehrlichen und harmlosen KI-Systemen. Es wurde entwickelt, um bei verschiedenen sprachzentrierten Anwendungen wie Textzusammenfassungen, kollaborativem Schreiben, Q&A und Codierung zu helfen. Frühe Bewertungen von verschiedenen Nutzern berichteten, dass Claude viel weniger geneigt ist, fragwürdige und schädliche Antworten zu erzeugen, einfacher und intuitiver zu bedienen ist und „steuerbarer“ ist. Zusammenfassend kann Claude menschenähnliche Antworten erzeugen, was es perfekt macht für den Aufbau von Diensten, die ein humanes und hervorragendes Benutzererlebnis bieten sollen. Aufgrund von Claudes hervorragender Leistung bei der Verarbeitung sprachzentrierter Aufgaben werden wir Claude nutzen, um uns bei der Übersetzung unseres Video-Transkripts zu helfen.

Voraussetzungen

  • Grundkenntnisse in Python, Erfahrungen mit Streamlit sind ein Plus
  • Zugang zur API von ElevenLabs
  • Zugang zur API von Anthropic

Übersicht

  1. Identifizierung der Anforderungen
  2. Initialisierung des Projekts
  3. Hinzufügen der Video-Transkriptionsfunktion unter Verwendung von OpenAIs Whisper
  4. Hinzufügen der Übersetzungsfunktion unter Verwendung von Anthropics Claude
  5. Hinzufügen der Synchronisationsgenerierungsfunktion unter Verwendung der API von ElevenLabs
  6. Letzte Schritte - Kombination des Videos mit den generierten Synchronisationen
  7. Test des automatischen Synchronisierungsdienstes

Identifizierung der Anforderungen

Fragen wir uns erneut, welche Funktionen unser Dienst als automatischer Synchronisationsgenerator für YouTube-Videos benötigt? Lassen Sie uns die Schritte zurückverfolgen, die an der Generierung von Synchronisationsarbeiten beteiligt sind, beginnend mit dem Abrufen des Videos bis hin zur Kombination der Synchronisationen mit dem Video.

Das Video von YouTube-Link abrufen

Wir können die beliebte Python-Bibliothek pytube dafür verwenden. Indem wir den Link zur YouTube-Funktion bereitstellen, können wir die Video- und Audio-Streams zusammen mit Metadaten wie Titel, Beschreibung und Vorschaubild abrufen. Für diesen Schritt benötigen wir ein Texteingabefeld für den YouTube-Link und einen Button, um den Downloadprozess des Streams zu starten.

Die Audio-Stream transkribieren

Nachdem wir den Audio-Stream aus dem YouTube-Video heruntergeladen haben, können wir mit der Transkription des Audios mit OpenAIs Whisper beginnen. Aus Leistungsgründen werden wir zunächst den Audio in einminütige Abschnitte aufteilen, bevor wir die Transkription vornehmen. Nachdem wir das Transkript erhalten haben, werden wir es in einem DataFrame anzeigen, in dem der Start, das Ende und der gesprochene Text zu bestimmten Zeitpunkten aufgelistet sind.

Das Transkript übersetzen

Der Übersetzungsprozess beginnt sofort nach dem Erhalt des Transkripts. Wir verwenden die anthropic-Bibliothek, um auf das Claude-Modell zuzugreifen und unser Prompt für die Übersetzung des ursprünglich in Englisch verfassten Transkripts zu senden.

Die Synchronisationen generieren

Sobald wir die Antwort von Claude erhalten, werden wir mit der Generierung von Audios mit der API von ElevenLabs fortfahren. Indem wir Funktionen aus der Bibliothek elevenlabs importieren, können wir Sprache mit vorgefertigten Stimmen und einem mehrsprachigen Modell, insbesondere für nicht-englische Übersetzungen, generieren.

Die Synchronisationen mit dem Video kombinieren

Zu guter Letzt werden wir den Video-Stream vom YouTube-Link abrufen und mit dem generierten Audio kombinieren. Für diese Aufgabe verwenden wir eine Software namens ffmpeg. Sobald das Video mit den Synchronisationen kombiniert ist, werden wir das Video über einen Player in unserer Benutzeroberfläche anzeigen!

Das Projekt initialisieren

Um die Benutzeroberfläche unseres automatischen Synchronisierungsdienstes zu erstellen, verwenden wir die Streamlit-Bibliothek, die es uns ermöglicht, dieses gesamte Projekt in einer einzigen Python-Datei zu verwalten. Einige zusätzliche Schritte sorgen dafür, dass unser Projekt reibungslos läuft.

Erstellen Sie das Projektverzeichnis

Navigieren Sie im Terminal zu Ihrem Verzeichnis für Programmierprojekte, erstellen Sie ein Projektverzeichnis und betreten Sie es:

Virtuelle Umgebung erstellen und aktivieren

Erstellen und aktivieren Sie anschließend Ihre virtuelle Umgebung. Dies verhindert Abhängigkeitsprobleme, indem sichergestellt wird, dass die Abhängigkeiten unseres Projekts nicht in die globale Umgebung eindringen. Das Terminal sollte den Namen Ihrer aktivierten virtuellen Umgebung anzeigen.

Installieren der Abhängigkeiten

Installieren Sie alle notwendigen Abhängigkeiten mit pip. Dies kann eine Weile dauern, also fühlen Sie sich frei, sich einen Kaffee zu holen! Die Hauptbibliotheken, die installiert werden, sind:

  • Streamlit: Zum einfachen Erstellen der Benutzeroberfläche.
  • Anthropic: Um sich mit der API von Anthropic zu verbinden.
  • ElevenLabs: Für die Anfragebearbeitung an die ElevenLabs API.
  • Pytube: Zum Abrufen von YouTube-Video-Metadaten und Herunterladen von Streams.
  • Pydub: Zum Erstellen von Synchronisationen und Verwalten von Audiodateien.
  • Whisper: Um das heruntergeladene Audio zu transkribieren.
  • MoviePy: Wird zur Videomanipulation und Streamverwaltung verwendet.
  • Pydantic: Gewährleistet die Versionskompatibilität mit der ElevenLabs-Bibliothek.

Behebung des Pytube-Bugs

Navigieren Sie zum Verzeichnis der Pytube-Bibliothek, um cipher.py zu bearbeiten, insbesondere um das Semikolon aus dem Regex-Muster zu entfernen, um den RegexMatchError zu beheben.

Installation von ffmpeg

Überprüfen Sie die offizielle Dokumentation zur Installation von ffmpeg auf verschiedenen Betriebssystemen.

Erstellen unserer Streamlit-Geheimdatei

Erstellen Sie eine secrets.toml-Datei, um sensible API-Schlüssel und Anmeldeinformationen zu verwalten, die für verschiedene KI-Services erforderlich sind, die in dieser Anwendung verwendet werden.

Erstellen der autodubs.py-Datei

Erstellen Sie autodubs.py, und fügen Sie wesentliche UI-Elemente wie Titel, Texteingabe und Schaltfläche hinzu.

Hinzufügen der Video-Transkriptionsfunktion unter Verwendung von OpenAIs Whisper

Wir beginnen damit, die Funktionalität des „Transkribieren!“-Buttons unter Verwendung von Pytube und Whisper-Bibliotheken hinzuzufügen, um Audiodateien herunterzuladen und sie zu transkribieren. Anschließend werden die Ergebnisse in einem Pandas DataFrame angezeigt.

Hinzufügen der Übersetzungsfunktion unter Verwendung von Anthropics Claude

Eine neu hinzugefügte Funktion wird Übersetzungen mithilfe von Claude basierend auf der vorherigen Transkription generieren. Diese Funktion wird die Ergebnisse direkt ohne zusätzlichen Text zurückgeben.

Hinzufügen der Synchronisationsgenerierungsfunktion unter Verwendung der API von ElevenLabs

Unter Verwendung der API von ElevenLabs werden wir Synchronisationen aus dem übersetzten Text mit einer vorab aufgenommenen Stimme generieren. Wir werden eine mp3-Datei aus der generierten Sprache schreiben.

Letzte Schritte - Kombinieren des Videos mit den generierten Synchronisationen

In diesem vorletzten Abschnitt werden wir den Video-Stream herunterladen und ihn mit dem generierten Audio unter Verwendung von ffmpeg verbinden und schließlich die Benutzeroberfläche aktualisieren, um das erfolgreich synchronisierte Video anzuzeigen.

Test des automatischen Synchronisierungsdienstes

Führen Sie die Anwendung aus, klicken Sie auf die Schaltfläche „Transkribieren!“ und warten Sie, bis der gesamte Prozess abgeschlossen ist, einschließlich der Anfragen an die APIs und der Dateioperationen. Sobald alles erledigt ist, sollte das Video mit Synchronisationen zur Ansicht im Videoplayer bereit sein.

Fazit

In diesem ausführlichen Tutorial haben wir eine der aufregenden Anwendungen der API von ElevenLabs untersucht, um die Synchronisierung von YouTube-Videos zu generieren. Indem wir OpenAIs Whisper für die Transkription, Claude für die Übersetzung und ElevenLabs für die Synchronisation kombinieren, haben wir einen vollwertigen automatischen Synchronisierungsdienst aufgebaut, der auf branchenführenden KI-Technologien basiert!

Weiterlesen

Illustration showing text embedding process using Cohere API and neural networks.
A visual guide to integrating Llama 270-B model with Langchain on Clarifai.

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.