Zum Hauptinhalt springen

Verwendung des Plugins

Das Runtime Speech Recognizer Plugin ist dafür konzipiert, Wörter aus eingehenden Audiodaten zu erkennen. Es verwendet eine leicht modifizierte Version von whisper.cpp, um mit der Engine zu arbeiten. So verwenden Sie das Plugin:

Editor-Seite

  1. Wählen Sie die passenden Sprachmodelle für Ihr Projekt aus, wie hier beschrieben.

Runtime-Seite

  1. Erstellen Sie einen Speech Recognizer und setzen Sie die notwendigen Parameter (CreateSpeechRecognizer, für Parameter siehe hier).
  2. Binden Sie die benötigten Delegates (OnRecognitionFinished, OnRecognizedTextSegment und OnRecognitionError).
  3. Starten Sie die Spracherkennung (StartSpeechRecognition).
  4. Verarbeiten Sie Audiodaten und warten Sie auf Ergebnisse von den Delegates (ProcessAudioData).
  5. Stoppen Sie den Speech Recognizer bei Bedarf (z.B. nach dem OnRecognitionFinished Broadcast).

Das Plugin unterstützt eingehende Audiodaten im 32-Bit Floating-Point interleaved PCM-Format. Während es gut mit dem Runtime Audio Importer funktioniert, ist es nicht direkt davon abhängig.

Erkennungsparameter

Das Plugin unterstützt sowohl die Erkennung von Streaming- als auch Nicht-Streaming-Audiodaten. Um die Erkennungsparameter für Ihren spezifischen Anwendungsfall anzupassen, rufen Sie SetStreamingDefaults oder SetNonStreamingDefaults auf. Zusätzlich haben Sie die Flexibilität, individuelle Parameter wie die Anzahl der Threads, Schrittgröße, ob die eingehende Sprache ins Englische übersetzt werden soll und ob vergangene Transkriptionen verwendet werden sollen, manuell zu setzen. Eine vollständige Liste der verfügbaren Parameter finden Sie in der Recognition Parameter List.

Leistungsverbesserung

Bitte lesen Sie den Abschnitt How to improve performance für Tipps zur Optimierung der Plugin-Leistung.

Voice Activity Detection (VAD)

Bei der Verarbeitung von Audioeingängen, insbesondere in Streaming-Szenarien, wird empfohlen, Voice Activity Detection (VAD) zu verwenden, um leere oder nur Rauschen enthaltende Audiosegmente herauszufiltern, bevor sie den Recognizer erreichen. Diese Filterung kann auf der Seite der capturable sound wave mit dem Runtime Audio Importer Plugin aktiviert werden, was verhindert, dass die Sprachmodelle Halluzinationen erzeugen – also versuchen, Muster in Rauschen zu finden und falsche Transkriptionen zu generieren. Detaillierte Anweisungen zur VAD-Konfiguration finden Sie in der Voice Activity Detection documentation.

Im Demo-Projekt, das mit dem Plugin geliefert wird, ist VAD standardmäßig aktiviert. Weitere Informationen zur Demo-Implementierung finden Sie unter Demo Project.

Beispiele

Ein gutes Demo-Projekt ist im Ordner Content -> Demo des Plugins enthalten, das Sie als Implementierungsbeispiel verwenden können.

Diese Beispiele zeigen, wie das Runtime Speech Recognizer Plugin mit Streaming- und Nicht-Streaming-Audioeingängen verwendet wird, wobei der Runtime Audio Importer als Beispiel für die Beschaffung von Audiodaten dient. Bitte beachten Sie, dass der RuntimeAudioImporter separat heruntergeladen werden muss, um auf denselben Satz von Audioimportfunktionen zuzugreifen, die in den Beispielen gezeigt werden (z.B. capturable sound wave und ImportAudioFromFile). Diese Beispiele dienen ausschließlich der Veranschaulichung des Kernkonzepts und enthalten keine Fehlerbehandlung.

Beispiele für Streaming-Audioeingänge

Hinweis: In UE 5.3 und anderen Versionen können fehlende Nodes nach dem Kopieren von Blueprints auftreten. Dies kann aufgrund von Unterschieden in der Node-Serialisierung zwischen Engine-Versionen passieren. Überprüfen Sie immer, ob alle Nodes in Ihrer Implementierung korrekt verbunden sind.

1. Grundlegende Streaming-Erkennung

Dieses Beispiel zeigt die grundlegende Einrichtung für die Aufnahme von Audiodaten vom Mikrofon als Stream unter Verwendung der Capturable Sound Wave und deren Übergabe an den Speech Recognizer. Es zeichnet Sprache für etwa 5 Sekunden auf und verarbeitet dann die Erkennung, was es für schnelle Tests und einfache Implementierungen geeignet macht. Kopierbare Nodes.

Hauptmerkmale dieses Setups:

  • Feste Aufnahmedauer von 5 Sekunden
  • Einfache One-Shot-Erkennung
  • Minimaler Einrichtungsaufwand
  • Ideal für Tests und Prototyping

2. Kontrollierte Streaming-Erkennung

Dieses Beispiel erweitert das grundlegende Streaming-Setup durch manuelle Steuerung des Erkennungsprozesses. Es ermöglicht Ihnen, die Erkennung nach Belieben zu starten und zu stoppen, was es für Szenarien geeignet macht, in denen Sie präzise Kontrolle über den Zeitpunkt der Erkennung benötigen. Kopierbare Nodes.

Hauptmerkmale dieses Setups:

  • Manuelle Start/Stop-Kontrolle
  • Kontinuierliche Erkennungsfähigkeit
  • Flexible Aufnahmedauer
  • Geeignet für interaktive Anwendungen

3. Sprachaktivierte Befehlserkennung

Dieses Beispiel ist für Befehlserkennungsszenarien optimiert. Es kombiniert Streaming-Erkennung mit Voice Activity Detection (VAD), um Sprache automatisch zu verarbeiten, wenn der Benutzer aufhört zu sprechen. Der Recognizer beginnt nur dann mit der Verarbeitung der akkumulierten Sprache, wenn Stille erkannt wird, was es ideal für befehlsbasierte Schnittstellen macht. Kopierbare Nodes.

Hauptmerkmale dieses Setups:

  • Manuelle Start/Stop-Kontrolle
  • Voice Activity Detection (VAD) aktiviert zur Erkennung von Sprachsegmenten
  • Automatische Erkennungsauslösung bei Stilleerkennung
  • Optimal für kurze Befehlserkennung
  • Reduzierte Verarbeitungslast durch Erkennung nur tatsächlicher Sprache

4. Auto-initialisierende Spracherkennung mit finaler Pufferverarbeitung

Dieses Beispiel ist eine weitere Variante des sprachaktivierten Erkennungsansatzes mit anderer Lebenszyklussteuerung. Es startet den Recognizer automatisch während der Initialisierung und stoppt ihn während der Deinitialisierung. Ein Hauptmerkmal ist, dass es den letzten akkumulierten Audiopuffer verarbeitet, bevor der Recognizer gestoppt wird, um sicherzustellen, dass keine Sprachdaten verloren gehen, wenn der Benutzer den Erkennungsprozess beenden möchte. Dieses Setup ist besonders nützlich für Anwendungen, in denen Sie vollständige Benutzeräußerungen erfassen müssen, selbst wenn mitten in der Sprache gestoppt wird. Kopierbare Nodes.

Hauptmerkmale dieses Setups:

  • Auto-Start des Recognizers bei Initialisierung
  • Auto-Stopp des Recognizers bei Deinitialisierung
  • Verarbeitung des finalen Audiopuffers vor komplettem Stopp
  • Verwendet Voice Activity Detection (VAD) für effiziente Erkennung
  • Stellt sicher, dass keine Sprachdaten beim Stoppen verloren gehen

Nicht-Streaming-Audioeingänge

Dieses Beispiel importiert Audiodaten in die Imported Sound Wave und erkennt die vollständigen Audiodaten, sobald sie importiert wurden. Kopierbare Nodes.