Zum Hauptinhalt springen

Wie man das Plugin verwendet

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

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 zusammenarbeitet, 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 manuell zu setzen, wie die Anzahl der Threads, Schrittgröße, ob die eingehende Sprache ins Englische übersetzt werden soll und ob vergangene Transkriptionen verwendet werden sollen. Siehe Recognition Parameter List für eine vollständige Liste der verfügbaren Parameter.

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 capturable sound wave-Seite mit dem Runtime Audio Importer Plugin aktiviert werden, was verhindert, dass die Sprachmodelle Halluzinationen erzeugen - also versuchen, Muster im Rauschen zu finden und falsche Transkriptionen zu generieren.

Für optimale Spracherkennungsergebnisse empfehlen wir die Verwendung des Silero VAD Providers, der eine überlegene Rauschunterdrückung und genauere Spracherkennung bietet. Der Silero VAD ist als Erweiterung für das Runtime Audio Importer Plugin verfügbar. Detaillierte Anleitungen zur VAD-Konfiguration finden Sie in der Voice Activity Detection Dokumentation.

hinweis

Die kopierbaren Nodes in den folgenden Beispielen verwenden aus Kompatibilitätsgründen den Standard-VAD-Provider. Um die Erkennungsgenauigkeit zu erhöhen, können Sie einfach auf Silero VAD umschalten, indem Sie:

  1. Die Silero VAD-Erweiterung installieren, wie im Silero VAD Extension Abschnitt beschrieben
  2. Nach dem Aktivieren von VAD mit dem Toggle VAD Node einen Set VAD Provider Node hinzufügen und "Silero" aus dem Dropdown-Menü auswählen

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

Es gibt ein gutes Demo-Projekt im Content -> Demo-Ordner des Plugins, 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 Audioimport-Funktionen zuzugreifen, die in den Beispielen gezeigt werden (z.B. capturable sound wave und ImportAudioFromFile). Diese Beispiele dienen lediglich 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 Erfassung 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
  • Minimale Einrichtungsanforderungen
  • 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 mit der Verarbeitung der akkumulierten Sprache erst, 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 bei tatsächlicher Sprache

4. Auto-initialisierende Spracherkennung mit finaler Pufferverarbeitung

Dieses Beispiel ist eine weitere Variante des sprachaktivierten Erkennungsansatzes mit anderer Lebenszyklusbehandlung. 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-Stop 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-Audioeingang

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