KI und Deep Learning: Die Macht des Voice Cloning

Eine der faszinierendsten Möglichkeiten, die KI- und Deep-Learning-Technologien bieten, ist die Fähigkeit, verschiedene Dinge in der realen Welt zu replizieren. Ob es darum geht, realistische Bilder von Grund auf zu generieren, die richtige Antwort auf eine eingehende Chat-Anfrage zu liefern oder passende Musik für ein bestimmtes Thema zu erstellen – wir können uns darauf verlassen, dass KI beeindruckende Annäherungen an Dinge liefert, die bisher nur durch direkte menschliche Anleitung möglich waren.

Voice Cloning: Eine revolutionäre Technologie

Voice Cloning ist eine dieser interessanten Möglichkeiten, die diese neuartige Technologie bietet. Dabei geht es um die Fähigkeit, die stimmlichen Eigenschaften eines bestimmten Sprechers zu imitieren, indem dessen spezifische Intonation, Akzent und Tonhöhe mithilfe eines Deep-Learning-Modells nachgebildet werden. In Kombination mit Technologien wie Generative Pretrained Transformers und statischen Bildmanipulatoren wie SadTalker können wir damit beginnen, wirklich interessante Annäherungen an menschliches Verhalten in der realen Welt zu erstellen – wenn auch nur von hinter einem Bildschirm und Lautsprecher.

Schritte zur Klonung der eigenen Stimme mit Tortoise TTS

In diesem kurzen Artikel werden wir jeden einzelnen Schritt durchgehen, der erforderlich ist, um deine eigene Stimme zu klonen, und anschließend genaue Nachahmungen deiner selbst mit Tortoise TTS zu generieren. Danach können wir diese Clips mit anderen Projekten kombinieren, um einige wirklich interessante Ergebnisse mit KI zu erzielen.

Tortoise TTS

Veröffentlicht vom Solo-Autor James Betker, ist Tortoise zweifellos das beste und am einfachsten zu verwendende Voice-Cloning-Modell, das sowohl auf lokalen als auch auf Cloud-Maschinen verwendet werden kann, ohne dass irgendeine Art von API oder kostenpflichtigem Servicezugang erforderlich ist. Es ermöglicht das Klonen einer Stimme aus nur wenigen (3-5) zehnsekündigen Sprachproben.

Wie Tortoise TTS funktioniert

Was die Funktionsweise und die Inspiration dahinter betrifft, so liegen beide in der Bildgenerierung mit AutoRegressive Transformers und Denoising Diffusion Probabilistic Models. Der Autor wollte den Erfolg dieser Modellansätze nachbilden, jedoch auf die Sprachsynthese anwenden. In diesen Modellen lernen die Algorithmen den Prozess der Bildgenerierung mit einem schrittweisen probabilistischen Verfahren, welches im Laufe der Zeit und mit großen Datenmengen die Bildverteilung erlernt.

Bei Tortoise wird das Modell speziell auf Visualisierungen von Sprachdaten trainiert, die als MEL-Spektrogramme bezeichnet werden. Diese Darstellungen der Audiodaten können mit dem gleichen Verfahren modelliert werden, das in typischen DDPM-Situationen verwendet wird, wobei nur geringfügige Anpassungen zur Berücksichtigung von Sprachdaten erforderlich sind. Zusätzlich fügen wir die Fähigkeit hinzu, eine bereits existierende Stimmprobe als initiales Rauschgewicht zu nutzen.

Zusammen ermöglicht dies eine präzise Rekonstruktion von Sprachdaten unter Verwendung nur minimaler Ausgangsdaten.

Demo: Tortoise TTS ausführen

Sobald wir uns im Notebook-Bereich befinden, klicke einfach auf „Run“, um zu starten, und öffne das Notebook tortoise_tts.ipynb.

Auswahl der Sprachproben

Zusätzlich zu den bereits vorhandenen Vorschlägen zur Auswahl von Sprachproben haben wir einige eigene Empfehlungen, um den Prozess zu erleichtern:

  • Falls du kein professionelles Mikrofon hast, empfehlen wir die Verwendung eines Mobiltelefons anstelle eines Computers. Das Mikrofon eines Smartphones bietet wahrscheinlich eine bessere Rauschunterdrückung.
  • Wähle eine Umgebung ohne Echo. Wir haben versucht, Sprachproben von „Bane“ aus „The Dark Knight Rises“ zu verwenden, aber seine Stimme war aufgrund des Echos in seiner Maske zu verzerrt. Wir empfehlen einen Kleiderschrank voller Kleidung, um zusätzliche Geräusche zu dämpfen.
  • Schreibe ein Skript für deine Aufnahmen. Dies hilft dir, Stottern, „Äh“- oder „Ähm“-Geräusche sowie kleinere Versprecher zu vermeiden.
  • Falls möglich, versuche, eine möglichst große Bandbreite an Lauten und Phonemen abzudecken. Diese werden als phonetische Pangramme bezeichnet. Sie helfen dem Modell, alle möglichen Sprachklänge zu erfassen. Ein Beispiel dafür wäre: „Fix, Schwyz! Quäkt Jürgen böse über die drahtige Kuh.“

Ethische Überlegungen

Wenn du die Stimme anderer klonst, solltest du unbedingt die ethischen Aspekte solcher Handlungen berücksichtigen, ganz zu schweigen von möglichen rechtlichen Konsequenzen. Wir empfehlen dringend, das Klonen von Stimmen nur mit ausdrücklicher Genehmigung zu verwenden und distanzieren uns von jeder böswilligen Nutzung dieser Technologie zu betrügerischen oder eigennützigen Zwecken.

Code-Übersicht

Der erste Schritt besteht darin, die Arbeitsumgebung einzurichten. Die erste Code-Zelle enthält alle Installationen, die für dieses Projekt erforderlich sind.

    # Zuerst folgen wir den Anweisungen in der README.md unter Lokale Installation
    !pip3 install -r requirements.txt
    !pip install librosa einops rotary_embedding_torch omegaconf pydub inflect
    !python3 setup.py install

Die nächste Code-Zelle enthält die eigentlichen Importe und Modell-Downloads. Das Modell wird im Cache gespeichert und sollte nicht gegen dein Speicherlimit gezählt werden. Allerdings bedeutet dies, dass der Download nach jeder Sitzung erneut gestartet werden muss.

    # Imports, die im restlichen Notebook verwendet werden.
    import torch
    import torchaudio
    import torch.nn as nn
    import torch.nn.functional as F

    import IPython

    from tortoise.api import TextToSpeech
    from tortoise.utils.audio import load_audio, load_voice, load_voices

    # Dies lädt alle von Tortoise verwendeten Modelle aus dem HF-Hub herunter.
    # tts = TextToSpeech()
    # Falls du DeepSpeed nutzen möchtest, setze use_deepspeed=True – fast doppelt so schnell wie normal
    tts = TextToSpeech(use_deepspeed=True, kv_cache=True)

Nachdem das Modell heruntergeladen wurde, können wir eine einfache Text-zu-Sprache-Generierung ohne Voice Cloning mit dem bereitgestellten Code in der folgenden Zelle durchführen. Dies wird eine zufällige Stimme verwenden, die vom Modell bestimmt wird. Wir können uns den Code für diese ungeleitete Sprachgenerierung in der nächsten Zelle ansehen:

    # Dies ist der Text, der gesprochen wird.
    text = "Durch die Kombination zweier Modalitäten ergibt sich eine überraschende Verbesserung der Generalisierung! Was würde passieren, wenn wir sie alle kombinieren würden?"

    # Hier ist etwas für die poetisch Veranlagten... (setze text=)
    """
    Dann nahm ich den anderen, ebenso gerecht,
    Und hatte vielleicht den besseren Anspruch,
    Weil er grasig war und abgenutzt werden wollte;
    Obwohl es beim Vorübergehen
    Sie eigentlich etwa gleich abgenutzt hatten."
    """

    # Wähle einen „Preset-Modus“, um die Qualität zu bestimmen. Optionen: {"ultra_fast", "fast" (Standard), "standard", "high_quality"}
    preset = "ultra_fast"

Eigene Sprachaufnahmen hochladen

Wir können nun unsere eigenen Sprachaufnahmen in das Verzeichnis /notebooks/tortoise-tts/tortoise/voices hochladen. Verwende den Dateinavigator auf der linken Seite der GUI, um diesen Ordner zu finden, und erstelle darin ein neues Unterverzeichnis mit dem Namen voice_test. Lade deine Sprachaufnahmen in diesen Ordner hoch.

Sobald der Upload abgeschlossen ist, können wir die nächste Zelle ausführen, um eine Übersicht aller verfügbaren Stimmen für die Demo anzuzeigen.

# Tortoise wird versuchen, die Stimmen nachzuahmen, die du bereitstellst.
# Es enthält bereits einige vorinstallierte Stimmen, die du vielleicht wiedererkennst.

# Liste aller verfügbaren Stimmen anzeigen.
# Dies sind einige zufällige Aufnahmen aus dem Internet sowie Stimmen aus dem Trainingsdatensatz.
# Du kannst auch eigene Aufnahmen in den voices/ Ordner hinzufügen.
%ls tortoise/voices

# Eine Beispielstimme abspielen
IPython.display.Audio('tortoise/voices/tom/1.wav')

Liste der verfügbaren Stimmen

Nach der Ausführung des obigen Codes wird eine Liste der verfügbaren Stimmen angezeigt, die in diesem Format dargestellt sein könnte:

angie/                freeman/  myself/        tom/            train_grace/
applejack/            geralt/   pat/           train_atkins/   train_kennard/
cond_latent_example/  halle/    pat2/          train_daws/     train_lescault/
daniel/               jlaw/     rainbow/       train_dotrice/  train_mouse/
deniro/               lj/       snakes/        train_dreams/   weaver/
emma/                 mol/      tim_reynolds/  train_empire/   william/

Beginn des Voice Cloning

Nun sind wir endlich bereit, mit dem Klonen einer Stimme zu beginnen. Verwende den folgenden Code, um eine Beispiel-Klonung mit dem als Eingabe definierten Text durchzuführen.

# Wähle eine der oben aufgelisteten Stimmen
voice = 'voice_test'

# Text, der gesprochen werden soll
text = 'Hallo, du hast die Voicemail von meinem Namen erreicht. Bitte hinterlasse eine Nachricht.'

# Lade die Sprachproben und erstelle das Modell
voice_samples, conditioning_latents = load_voice(voice)

# Erzeuge die geklonte Stimme mit Tortoise
gen = tts.tts_with_preset(text, voice_samples=voice_samples, conditioning_latents=conditioning_latents, 
                          preset=preset)

# Speichern und Abspielen der generierten Audio-Datei
torchaudio.save('generated.wav', gen.squeeze(0).cpu(), 24000)
IPython.display.Audio('generated.wav')

Text ändern und erneut generieren

Ändere den Wert der Variablen text in der obigen Code-Zelle und führe sie erneut aus, um verschiedene Sprachausgaben mit deiner geklonten Stimme zu testen!

Fazit

Als Deep-Learning-Anwendungsfall ist dies eines der spannendsten Projekte der letzten Jahre. Voice Cloning bietet unendlich viele Möglichkeiten für Unterhaltung, Konversationsagenten und vieles mehr.

In diesem Tutorial haben wir gezeigt, wie man mit Tortoise TTS KI-generierte Sprachaufnahmen erstellt. Wir ermutigen dich, mit dieser Technologie zu experimentieren. Wir haben beispielsweise eine neue Voicemail mit einer unserer Lieblingsprominenten-Stimmen erstellt. Probiere es selbst mit der „Morgan“-Stimme aus und erlebe eine erstaunlich realistische Nachbildung!

Kostenlosen Account erstellen

Registrieren Sie sich jetzt und erhalten Sie Zugang zu unseren Cloud Produkten.

Das könnte Sie auch interessieren: