Zum Hauptinhalt springen

Wie man das Plugin verwendet

Das Runtime Text To Speech-Plugin synthetisiert Text in Sprache unter Verwendung herunterladbarer Sprachmodelle. Diese Modelle werden in den Plugin-Einstellungen innerhalb des Editors verwaltet, heruntergeladen und für die Runtime-Nutzung verpackt. Folgen Sie den untenstehenden Schritten, um zu beginnen.

Editor-Seite

Laden Sie die passenden Sprachmodelle für Ihr Projekt herunter, wie hier beschrieben. Sie können mehrere Sprachmodelle gleichzeitig herunterladen.

Runtime-Seite

Erstellen Sie den Synthesizer mit der Funktion CreateRuntimeTextToSpeech. Stellen Sie sicher, dass Sie eine Referenz darauf behalten (z.B. als separate Variable in Blueprints oder UPROPERTY in C++), um zu verhindern, dass er vom Garbage Collector bereinigt wird.

Ein Beispiel für die Erstellung eines Runtime Text To Speech-Synthesizers in Blueprints

Sprachsynthese

Das Plugin bietet zwei Modi für die Text-zu-Sprache-Synthese:

  1. Reguläre Text-zu-Sprache-Synthese: Synthetisiert den gesamten Text und gibt das vollständige Audio nach Abschluss zurück
  2. Streaming Text-zu-Sprache-Synthese: Liefert Audio-Chunks während der Generierung, was eine Echtzeitverarbeitung ermöglicht

Jeder Modus unterstützt zwei Methoden zur Auswahl von Sprachmodellen:

  • Nach Name: Wählt ein Sprachmodell anhand seines Namens aus (empfohlen für UE 5.4+)
  • Per Objekt: Wählt ein Sprachmodell durch direkte Referenz aus (empfohlen für UE 5.3 und älter)

Reguläre Text-zu-Sprache-Synthese

Nach Name

Die Funktion Text To Speech (By Name) ist in Blueprints ab UE 5.4 komfortabler. Sie ermöglicht die Auswahl von Sprachmodellen aus einer Dropdown-Liste der heruntergeladenen Modelle. In UE-Versionen unter 5.3 erscheint diese Dropdown-Liste nicht, daher müssen Sie bei älteren Versionen manuell über das von GetDownloadedVoiceModels zurückgegebene Array von Sprachmodellen iterieren, um das gewünschte auszuwählen.

Ein Beispiel für die Verwendung von Text To Speech by Name in Blueprints

Nach Objekt

Die Funktion Text To Speech (By Object) funktioniert in allen Versionen von Unreal Engine, zeigt die Sprachmodelle jedoch als Dropdown-Liste von Asset-Referenzen an, was weniger intuitiv ist. Diese Methode eignet sich für UE 5.3 und ältere Versionen oder wenn Ihr Projekt aus irgendeinem Grund eine direkte Referenz auf ein Sprachmodell-Asset benötigt.

Ein Beispiel für die Verwendung von Text To Speech by Object in Blueprints

Falls Sie die Modelle heruntergeladen haben, aber nicht sehen können, öffnen Sie das Dropdown-Menü Voice Model, klicken Sie auf die Einstellungen (Zahnrad-Symbol) und aktivieren Sie sowohl Show Plugin Content als auch Show Engine Content, um die Modelle sichtbar zu machen.

Streaming Text-to-Speech

Für längere Texte oder wenn Sie Audiodaten in Echtzeit verarbeiten möchten, während sie generiert werden, können Sie die Streaming-Versionen der Text-to-Speech-Funktionen verwenden:

  • Streaming Text To Speech (By Name) (StreamingTextToSpeechByName in C++)
  • Streaming Text To Speech (By Object) (StreamingTextToSpeechByObject in C++)

Diese Funktionen liefern Audiodaten in Chunks, während sie generiert werden, was eine sofortige Verarbeitung ermöglicht, ohne auf den Abschluss der gesamten Synthese warten zu müssen. Dies ist nützlich für verschiedene Anwendungen wie Echtzeit-Audiowiedergabe, Live-Visualisierung oder jedes Szenario, in dem Sie Sprachdaten inkrementell verarbeiten müssen.

Streaming By Name

Die Funktion Streaming Text To Speech (By Name) funktioniert ähnlich wie die reguläre Version, liefert jedoch Audio in Chunks über den On Speech Chunk-Delegate.

Ein Beispiel für die Verwendung von Streaming Text To Speech by Name in Blueprints

Streaming Nach Objekt

Die Funktion Streaming Text To Speech (By Object) bietet dieselbe Streaming-Funktionalität, benötigt jedoch eine Referenz auf ein Voice-Model-Objekt.

Ein Beispiel für die Verwendung von Streaming Text To Speech by Object in Blueprints

Audio-Wiedergabe

Für reguläre (nicht-streaming) Text-to-Speech-Synthese liefert der On Speech Result-Delegate das synthetisierte Audio als PCM-Daten im Float-Format (als Byte-Array in Blueprints oder TArray<uint8> in C++), zusammen mit der Sample Rate und Num Of Channels.

Für die Wiedergabe wird empfohlen, das Runtime Audio Importer-Plugin zu verwenden, um Roh-Audiodaten in eine abspielbare Soundwelle umzuwandeln.

Hier ein Beispiel, wie die Blueprint-Nodes für die Text-Synthese und Audio-Wiedergabe aussehen könnten (Kopierbare Nodes):

Text-to-Speech abbrechen

Sie können eine laufende Text-to-Speech-Syntheseoperation jederzeit abbrechen, indem Sie die Funktion CancelSpeechSynthesis auf Ihrer Synthesizer-Instanz aufrufen:

Text To Speech in Blueprints abbrechen

Wenn eine Synthese abgebrochen wird:

  • Der Syntheseprozess wird so schnell wie möglich gestoppt
  • Alle laufenden Callbacks werden beendet
  • Der Abschluss-Delegate wird mit bSuccess = false und einer Fehlermeldung aufgerufen, die anzeigt, dass die Synthese abgebrochen wurde
  • Alle für die Synthese zugewiesenen Ressourcen werden ordnungsgemäß bereinigt

Dies ist besonders nützlich für lange Texte oder wenn Sie die Wiedergabe unterbrechen müssen, um eine neue Synthese zu starten.

Sprecherauswahl

Beide Text-To-Speech-Funktionen akzeptieren einen optionalen Sprecher-ID-Parameter, was nützlich ist, wenn Sie mit Sprachmodellen arbeiten, die mehrere Sprecher unterstützen. Sie können die Funktionen GetSpeakerCountFromVoiceModel oder GetSpeakerCountFromModelName verwenden, um zu überprüfen, ob Ihr gewähltes Sprachmodell mehrere Sprecher unterstützt. Falls mehrere Sprecher verfügbar sind, geben Sie einfach die gewünschte Sprecher-ID beim Aufruf der Text-To-Speech-Funktionen an. Einige Sprachmodelle bieten eine große Auswahl – beispielsweise enthält English LibriTTS über 900 verschiedene Sprecher zur Auswahl.

Das Runtime Audio Importer-Plugin bietet zusätzliche Funktionen wie das Exportieren von Audiodaten in eine Datei, das Übergeben an SoundCue, MetaSound und mehr. Weitere Details finden Sie in der Runtime Audio Importer-Dokumentation.