Nutzung von KI zur Generierung von Sounddateien (Sprache) aus Eingabetexten

In diesem Projekt untersuchen wir die Nutzung von Künstlicher Intelligenz zur Generierung von Sounddateien aus Eingabetexten. Unser Fokus liegt zunächst darauf, unterschiedliche KI Varianten zu testen und anschließend eine ausgewählte KI auf eigene Sprachdaten zu trainieren.

Einführung

Die Generierung von Sprache aus Text wird in unterschiedlichsten Anwendungen eingesetzt, darunter Sprachassistenzsysteme, Hörbücher, Sprachsynthese und mehr. Mit Hilfe von KI-Technologien können hochwertige Sprachdateien erstellt werden, die natürliche menschliche Sprache simulieren. Auch in der modernen Content Erstellung für Social Media und in vielen anderen kreativen Branchen ist Text to Speech mittlerweile fester Bestandteil.

Text to Speech Varianten

Es gibt verschiedene Varianten von Text-to-Speech (TTS)-KI, die sich in ihren Ansätzen und Technologien unterscheiden.

  1. Concatenative TTS: Diese Art von TTS verwendet vorab aufgenommene Sprachsegmente, um Wörter und Sätze zu generieren. Die Segmente werden dann zusammengesetzt (konkateniert), um die gewünschte Sprachausgabe zu erzeugen.

     + nicht sehr rechenintensiv
     - begrenzten Anzahl verfügbarer Sprachsegmente
     - klingt künstlich
    
  2. Formant-based TTS: Bei dieser Methode werden mathematische Modelle verwendet, um die Klänge der menschlichen Sprache nachzustellen. Hier werden Formanten manipuliert, sodass Stimmartige Klänge erzeugt werden.

     + mehr Kontrolle über Stimme
     - klingt trotzdem häufig unnatürlich
    
  3. Deep Learning basierte TTS: Diese Ansätze verwenden neuronale Netze, insbesondere rekurrente neuronale Netze (RNNs) oder fortschrittlichere Modelle wie Transformer, um Text in Sprache umzuwandeln.

     + natürlichere Sprachwiedergabe
     - sehr rechenintensiv
    

Alle Text-to-Speech Varianten bieten unterschiedliche Vor- und Nachteile und sind je nach Anwendungsfall besser oder schlechter geeignet. Da jedoch meisten die Qualität der Wiedergabe im Vordergrund steht, sind Deep Learning basierte TTS KIs heutzutage meist die beste Option.

Trainieren einer eigenen Sprach-KI

Das Trainieren einer eigenen Sprach-KI nutzt maschinellen Lernalgorithmen, die speziell für die Spracherzeugung entwickelt wurden, um aus Beispieldaten ein Stimmmodell zu erstellen.

Vorgehen:

  1. Datensammlung: Sammeln von Sprachdaten in Textform sowie den entsprechenden Audioaufnahmen -> Trainingsdatensatz für die KI-Modelle

  2. Datenbereinigung und -vorverarbeitung: Reinigen und formatieren der gesammelten Daten, um sicherzustellen, dass sie für das Training geeignet sind -> Normalisierung und Entfernen von Störgeräuschen

  3. Modelltraining: Auswahl eines geeigneten KI-Modells und Training mit den vorverarbeiteten Daten -> Anpassen der Modellparameter zur Verbesserung des Ergebnisses

  4. Evaluation und Feinabstimmung: Bewertung der Leistung des trainierten Modells -> ggf. Anpassungen vornehmen zur Optimierung (Generierungsparameter oder Trainingsdaten anpassen)

  5. Anwendung: Verwendung des trainierten Modells, um Sprachdateien aus neuen Eingabetexten zu generieren -> mögliche Einbindung der KI in eine produktive Umgebung

Deep Learning TTS KIs

Generierte Beispiele zu allen folgenden KI TTS Modellen finden sich im Ordner “generation_examples”.

OpenSource Modelle

Zum initalen testen der unterschiedlichen KIs (Bark & Tortoise) wurde eine WebUI genutzt, die die Ein- und Ausgabe von Daten erleichtert. Hier konnten leicht per Drag and Dop eigene Audiodaten geladen werden, aus denen anschließend ein Modell trainiert wurde. Dieses Modell konnte dann per Prompt-Texteingabe entsprechende Sprachdateien generieren.

Suno AI Bark

Suno AI, oder einfach Suno, ist ein generatives Musikerstellungsprogramm mit künstlicher Intelligenz, das darauf ausgelegt ist, realistische Songs zu generieren, die Gesang und Instrumentierung kombinieren.

Suno AI Bark ist ein Transformer-basiertes Text-to-Audio-Modell mit realistischer, mehrsprachiger Sprachgenerierung und der Fähigkeit zur Erzeugung von Musik, Hintergrundgeräuschen und einfachen Soundeffekten. Es unterstützt auch die Erstellung von Assistenztechnologien und die Verbesserung von Text-to-Speech-Technologien für verschiedene Branchen. Bark ist eine leistungsstarke Ressource für hochwertigen Audioinhalt und die Forschungsgemeinschaft.

Generieren
from transformers import AutoProcessor, BarkModel
from IPython.display import Audio

# used for cleaner jupyter output - not important for voice generation
import warnings
warnings.filterwarnings('ignore')

processor = AutoProcessor.from_pretrained("suno/bark")
model = BarkModel.from_pretrained("suno/bark")

voice_preset = "v2/en_speaker_6"

inputs = processor("Hi, this is a Bark AI test for the DVA Course", voice_preset=voice_preset)

audio_array = model.generate(**inputs)
audio_array = audio_array.cpu().numpy().squeeze()

# display audio file in jupyter
sample_rate = model.generation_config.sample_rate
Audio(audio_array, rate=sample_rate)

In diesem Codebeispiel wird das Paket “transformers” verwendet, um Text-to-Speech-Umwandlung durchzuführen, wobei das Modell “Bark” zum Einsatz kommt. Ein Sprachprozessor und ein Modell werden aus den vortrainierten “suno/bark”-Modellen geladen. Ein Sprachvorgabe wird festgelegt, in diesem Fall “v2/en_speaker_6”. Der eingegebene Text “Hi, this is a Bark AI test for the DVA Course” wird mit dem Sprachprozessor verarbeitet, wobei die festgelegte Sprachvorgabe berücksichtigt wird. Anschließend wird mit dem Modell ein Audio-Array generiert, basierend auf den verarbeiteten Eingaben. Dieses Audio-Array wird dann in eine hörbare Form umgewandelt und angezeigt.

Trainieren

Das Trainieren der Bark KI auf eigene Sprecher wurde ebenfalls erfolgreich durchgeführt. Ergebnisse und relvanten Code finden sich in der Datei projekt2.ipynb

Proprietäre Modelle: ElevenLABS

ElevenLabs ist ein Softwareunternehmen, das sich auf die Entwicklung natürlich klingender Sprachsynthese- und Text-to-Speech-Software unter Verwendung künstlicher Intelligenz und Deep Learning spezialisiert hat.

Die Firma bietet eine online gratis Version ihres TTS Dienstes an. Hier kann aus vorgefertigten Stimmpresets gewählt werden und eigener Inputtext bis zu einer bestimmten Länge eingegeben werden.

Durch die Spezialisierung in diesem Bereichd er künstlichen Intelligenz, klingen die Ergebnisse, die mittels ElevenLABS TTS generiert werden, wesentlich natürlicher als die der unoptimierten OpenSource KI Varianten.

Anwendungen und Herausforderungen

Anwendungsmöglichkeiten:

  • Erstellung von personalisierten Sprachnachrichten und Sprachanweisungen für Apps und Geräte.

  • Automatisierte Sprachsynthese für Hörbücher, Podcasts und andere Audioinhalte.

  • Entwicklung von Sprachassistenzsystemen für die Interaktion mit Benutzern.

Herausforderungen:

  • Qualität der generierten Sprache: Die generierten Sounddateien sollten eine möglichst hohe Qualität und Natürlichkeit aufweisen, um glaubhaft zu wirken.

  • Datenverfügbarkeit und -qualität: Das Trainieren einer Sprach-KI erfordert große Mengen hochwertiger Trainingsdaten und Rechenleistung

  • Ethik und Datenschutz: Die Verwendung von Sprachdaten wirft Fragen im Zusammenhang mit Datenschutz und ethischer Verantwortung auf.

  • Speichergröße der Modelle: Es ist schwierig bei niedriger Internetgeschwindigkeit, alle KIs umfassend zu testen, da der Download aller KI Modelle jeweils sehr lange dauert. (Größen von mind. 5GB pro Modell)

  • Lange Rechenzeiten/Generierungszeiten: Training und Generierung von Stimme mittels KI kann bis zu mehreren Minuten (je nach Eingabelänge) dauern.

Fazit

Die Nutzung von KI zur Generierung von Sounddateien aus Eingabetexten bietet einige Möglichkeiten für die Entwicklung innovativer Anwendungen im Bereich der Sprachtechnologie. Durch das Trainieren eigener Sprach-KI-Modelle können Entwickler die Qualität und Anpassungsfähigkeit dieser Anwendungen weiter verbessern, ohne professionelle Sprecher zu engagieren. Proprietäre KI Modelle sind jedoch den OpenSource Varianten bisher noch deutlich überlegen.