Wie ich die Stimme meines Chefs geklont habe

Erfahrungen und Tipps für Real Time Voice Cloning mit GenAI und Open-Source-Tools – in Text und Prompt und Video

Wie ich die Stimme meines Chefs geklont habe

Diese Session hat unser Kollege Christian auf dem 3. KI-Insights Barcamp gehalten, seine Erfahrungen und Tipps teilt er nun auch hier im AI Product Circle – und neu hinzugefügt: Video der Session nun auch verfügbar.


Voraussetzungen:
* Umgang mit der Kommandozeile
* Kenntnisse zum Installieren einer Python-Bibliothek
* Grundfertigkeiten mit einem Audiobearbeitungstool wie Audacity

Themen: Voice cloning, Python, open source, Command line tool

Disclaimer: Dieser Text ist zu 0 % KI-generiert.

Einleitung

Mit relativ einfachen Mitteln ist es mittlerweile möglich, dass jede:r daheim die eigene Stimme klonen kann. Oder auch Stimmen von anderen.
Es braucht nur etwas technisches Geschick und ein paar kleinen Audio-Bearbeitungen und schon kann man Texte mit einer maschinell nachgeahmten Stimme akustisch zum Leben erwecken.
Und das Ganze open-source-basiert – man muss also nicht auf einen bezahlpflichtigen Voice-Cloning-Dienst zurückgreifen, wie von elevenlabs angeboten.

Beschreibung des Text-to-Speech-Verfahrens

Das Verfahren basiert auf maschinellem Lernen und wird auch Text-to-Speech (Abk.: TTS) genannt. Was man dazu braucht, ist ein trainiertes Modell, das grundsätzlich dazu in der Lage ist geschriebene Sprache umzuwandeln hin zu einer Audiorepräsentation.
Diese Modelle analysieren anhand von großen Datenquellen mit umfassendem Audiomaterial die Klangmuster menschlicher Stimmen und lernen somit, wie damit geschriebener Text in gesprochenen Text umgewandelt werden kann. Auf dieser Grundlage kann dann mit einer guten, aber nicht langen Audioaufnahme eine zusätzliche Stimme hinzugezogen werden. Aus diesem Audioschnipsel werden dann die für diese Stimme charakteristischen Merkmale extrahiert.
Mit diesen beiden Komponenten zusammen ist das System dazu in der Lage, die neue Stimme nachzuahmen.

Umsetzung von TTS mit Python-Bibliothek auf der Kommandozeile

Nach kurzer Recherche hab ich ein Open-Source-Projekt gefunden, das den oben beschriebenen Mechanismus anbietet.
Es heißt TTS und bietet den Code zum Download bzw. zur Installation auf seiner GitHub-Seite an: https://github.com/coqui-ai/TTS
Nach erfolgreicher Installation steht das Tool TTS auf der Kommandozeile zur Verfügung und es kann losgehen.

Welche Inputquellen brauche ich?

Wichtig ist dabei zunächst die Auswahl des passenden Modells. Da meine Sprachausgabe auf Deutsch sein soll, wähle ich das Modell XTTS_v2, welches unter anderem auf deutschen Sprachquellen trainiert wurde. Zur Bereitstellung geeigneter Sprachsamples empfehle ich das Audio-Bearbeitungs-Tool Audacity, damit kann man über ein Mikrofon Aufnahmen der eigenen Stimme erzeugen und so bearbeiten, dass am Ende ein geeigneter Input für unser TTS-Tool herauskommt. Dieser Input dient dann als Grundlage dafür, um die eigene Stimme zu analysieren und korrekt wiedergeben zu können.

Jetzt fehlt nur noch ein Eingabetext, der dann mit der generierten Stimme vorgelesen werden soll. Ich wähle den Text "Diese Sprachausgabe zeigt, wie man einen Text mit der Stimme von Christian Bartl erzeugen kann."

Wenn man die Teile passend zusammensetzt, dann kommt der folgende Befehl heraus:

tts --text "Diese Sprachausgabe zeigt wie man einen Text mit der Stimme von Christian Bartl erzeugen kann." --model_name "tts_models/multilingual/multi-dataset/xtts_v2" --speaker_wav "Pfad/zum/Sprachsample-meiner-Stimme.mp3" --language_idx "de"

Die Verarbeitungszeit betrug in meinem Fall ca. 35 Sekunden. Heraus kommt am Ende ein Audiofile, das den Text mit der angegebenen Quellstimme wiedergibt.

Das klingt so:

audio-thumbnail
TTS Ausgabe Stimme von Christian Bartl
0:00
/7.563333
Transkript: "Diese Sprachausgabe zeigt, wie man einen Text mit der Stimme von Christian Bartl erzeugen kann."

Beurteilung des Ergebnisses

Nach meinem Empfinden ist klar zu erkennen, dass die charakteristischen Eigenschaften meiner Stimme eingefangen und wiedergegeben wurden. Allerdings erkannt man sofort, dass hier eine Maschine am Werk war. Betonung, Tonfall und Stimmung klingen klar mechanisch, sodass der Unterschied zu einem menschlichen Sprecher sehr groß ist. Die trainierten Stimmen großer Anbieter (z.B. elevenlabs oder OpenAI) klingen deutlich flüssiger, authentischer und am Ende eben menschlicher. Also gehe ich davon aus, dass man das Ergebnis deutlich verbessern kann.

Fine-Tuning kann die Sprachqualität deutlich verbessern

Es gibt eine Möglichkeit, die Qualität der erzeugten Sprachausgabe zu verbessern. Mittels des sogenannten Fine-Tunings des Modells. (Siehe auch Fine-tuning in der Dokumentation des gewählten TTS Modells.)
Dabei wird im Rahmen eines aufwendigeren Lernprozesses die Zielstimme intensiver analysiert und dem Modell so noch besser beigebracht, wie die spezielle Stimme klingt.

Nach zahlreichen Versuchen, ein solches Fine-Tuning selber durchzuführen, musste ich feststellen, dass mein Laptop dafür zu wenig Ressourcen hat. Dazu muss ich mir also noch eine Alternative überlegen – und dann in einem Nachfolgeartikel meine Erfahrungen teilen.

Ende

Wir sind in der Zeit der KIs angekommen und mittlerweile erlauben die Open-Source-Implementierungen auch jedem damit Erfahrungen zu sammeln. Für das Nachahmen menschlicher Stimmen, wie es hier beschrieben wurde, gibt es auch viele Anwendungsfälle mit unterschiedlichem Sinn und Zweck (wie z.B. Ausdrucksmöglichkeit für Patienten, die ihre Stimme verloren haben, oder Menschen, die sich aufgrund einer Einschränkung nicht für andere verständlich artikulieren können). Wenn man den konkreten Anwendungsfall allerdings mal weglässt und sich nur anschaut, wie leicht es ist, mit geringen Mitteln die eigene Stimme maschinell zu reproduzieren und dabei ein beeindruckendes Ergebnis zu erzielen, dann fühlt sich das nach extremem Fortschritt und nach Zukunft an.

Zumindest fühlt es sich für mich so an. 


Autor aus dem Geek Space 9 Team:

const (
    Name = "Christian Bartl"
    Nick = "bartl"
)

Und hier nochmal zum Nachschauen, die Aufzeichnung der Session – das nächste KI-Insights Barcamp steht übrigens im September 2024 an.