Zum Hauptinhalt springen

So verwenden Sie das Plugin

Das Runtime Speech Recognizer Plugin wurde entwickelt, um 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 geeigneten Sprachmodelle für Ihr Projekt wie hier beschrieben.

Runtime-Seite

  1. Erstellen Sie einen Spracherkenner und legen Sie die erforderlichen Parameter fest (CreateSpeechRecognizer, die Parameter finden Sie hier).
  2. Binden Sie sich an die benötigten Delegaten (OnRecognitionFinished, OnRecognizedTextSegment und OnRecognitionError).
  3. Starten Sie die Spracherkennung (StartSpeechRecognition).
  4. Verarbeiten Sie Audiodaten und warten Sie auf Ergebnisse von den Delegaten (ProcessAudioData).
  5. Stoppen Sie den Spracherkenner bei Bedarf (z. B. nach dem OnRecognitionFinished-Broadcast).

Das Plugin unterstützt eingehendes Audio im verschachtelten 32-Bit-Gleitkomma-PCM-Format. Es funktioniert zwar gut mit dem Runtime Audio Importer, ist aber 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. Darüber hinaus haben Sie die Flexibilität, einzelne Parameter manuell festzulegen, z. B. die Anzahl der Threads, die Schrittgröße, ob eingehende Sprache ins Englische übersetzt werden soll und ob eine frühere Transkription verwendet werden soll. Eine vollständige Liste der verfügbaren Parameter finden Sie in der Liste der Erkennungsparameter.

Verbesserung der Leistung

Bitte beachten Sie den Abschnitt So verbessern Sie die Leistung für Tipps, wie Sie die Leistung des Plugins optimieren können. Auf Android und Android-basierten Plattformen wie Meta Quest sollten Sie auch die Vosk-Erweiterung in Betracht ziehen, die einen alternativen Anbieter für Hardware bietet, die in whisper.cpp keine GPU-Beschleunigung unterstützt.

Sprachaktivitätserkennung (VAD)

Bei der Verarbeitung von Audioeingaben, insbesondere in Streaming-Szenarien, wird empfohlen, die Sprachaktivitätserkennung (VAD) zu verwenden, um leere oder nur Rauschen enthaltende Audioabschnitte herauszufiltern, bevor sie das Erkennungssystem erreichen. Diese Filterung kann auf der Seite der aufnehmbaren Schallwelle mithilfe des Runtime Audio Importer-Plugins aktiviert werden, was dazu beiträgt, dass die Sprachmodelle nicht halluzinieren – also nicht versuchen, Muster im Rauschen zu finden und falsche Transkriptionen zu erzeugen.

Für optimale Spracherkennungsergebnisse empfehlen wir die Verwendung des Silero-VAD-Anbieters, der eine überlegene Geräuschunempfindlichkeit und eine genauere Spracherkennung bietet. Der Silero VAD ist als Erweiterung des Runtime Audio Importer-Plugins verfügbar. Detaillierte Anweisungen zur VAD-Konfiguration finden Sie in der Dokumentation zur Sprachaktivitätserkennung.

hinweis

Die kopierbaren Knoten in den unten stehenden Beispielen verwenden aus Kompatibilitätsgründen den standardmäßigen VAD-Anbieter. Um die Erkennungsgenauigkeit zu verbessern, können Sie problemlos zu Silero VAD wechseln, indem Sie:

  1. Installieren der Silero VAD-Erweiterung wie im Abschnitt Silero VAD-Erweiterung beschrieben
  2. Nachdem Sie VAD mit dem Toggle VAD-Knoten aktiviert haben, fügen Sie einen Set VAD Provider-Knoten hinzu und wählen Sie „Silero“ aus dem Dropdown-Menü aus.

Im Demoprojekt, das im Lieferumfang des Plugins enthalten ist, ist VAD standardmäßig aktiviert. Weitere Informationen zur Demo-Implementierung finden Sie unter Demoprojekt.

Beispiele

Im Ordner Content -> Demo des Plugins ist eine gute Projektdemo enthalten, die Sie als Beispiel für die Implementierung verwenden können.

Diese Beispiele veranschaulichen die Verwendung des Plugins Runtime Speech Recognizer mit sowohl Streaming- als auch Nicht-Streaming-Audioeingang, wobei der Runtime Audio Importer als Beispiel zur Beschaffung von Audiodaten dient. Bitte beachten Sie, dass ein separates Herunterladen des RuntimeAudioImporter erforderlich ist, um auf denselben Satz von Audioimportfunktionen zugreifen zu können, die in den Beispielen vorgestellt werden (z. B. erfassbare Schallwelle und ImportAudioFromFile). Diese Beispiele dienen ausschließlich der Veranschaulichung des Kernkonzepts und enthalten keine Fehlerbehandlung.

Beispiele für Streaming-Audio-Eingabe

Hinweis: In UE 5.3 und anderen Versionen kann es vorkommen, dass nach dem Kopieren von Blueprints Knoten fehlen. Dies kann auf Unterschiede in der Knotenserialisierung zwischen Engine-Versionen zurückzuführen sein. Stellen Sie immer sicher, dass alle Knoten in Ihrer Implementierung ordnungsgemäß verbunden sind.

1. Grundlegende Streaming-Erkennung

Dieses Beispiel veranschaulicht die grundlegende Einrichtung zum Erfassen von Audiodaten vom Mikrofon als Stream mithilfe der Capturable sound wave und deren Übergabe an den Spracherkenner. Es zeichnet etwa 5 Sekunden Sprache auf und verarbeitet anschließend die Erkennung, wodurch es sich für schnelle Tests und einfache Implementierungen eignet. Kopierbare Knoten.

Hauptmerkmale dieser Konfiguration:

  • Feste Aufnahmedauer von 5 Sekunden
  • Einfache einmalige Erkennung
  • Minimale Einrichtungsanforderungen
  • Perfekt zum Testen und Prototyping

2. Gesteuerte Streaming-Erkennung

Dieses Beispiel erweitert das grundlegende Streaming-Setup um eine 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 eine präzise Kontrolle darüber benötigen, wann die Erkennung stattfindet. Kopierbare Nodes.

Hauptmerkmale dieser Einrichtung:

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

3. Sprachgesteuerte Befehlserkennung

Dieses Beispiel ist für Szenarien der Befehlserkennung optimiert. Es kombiniert Streaming-Erkennung mit Sprachaktivitätserkennung (VAD), um Sprache automatisch zu verarbeiten, wenn der Benutzer aufhört zu sprechen. Der Spracherkenner beginnt erst dann mit der Verarbeitung der angesammelten Sprachdaten, wenn Stille erkannt wird, was es ideal für befehlsbasierte Schnittstellen macht. Kopierbare Knoten.

Hauptmerkmale dieses Setups:

  • Manuelle Start-/Stopp-Steuerung
  • Sprachaktivitätserkennung (VAD) aktiviert, um Sprachsegmente zu erkennen
  • Automatische Auslösung der Erkennung, wenn Stille erkannt wird
  • Optimal für die Erkennung kurzer Befehle
  • Reduzierter Verarbeitungsaufwand, da nur tatsächliche Sprache erkannt wird

4. Automatische Initialisierung der Spracherkennung mit finaler Pufferverarbeitung

Dieses Beispiel ist eine weitere Variante des sprachaktivierten Erkennungsansatzes mit unterschiedlicher Lebenszyklus-Verwaltung. Es startet den Spracherkenner automatisch während der Initialisierung und stoppt ihn während der Deinitialisierung. Ein wesentliches Merkmal ist, dass es den zuletzt angesammelten Audio-Puffer verarbeitet, bevor der Spracherkenner gestoppt wird, sodass keine Sprachdaten verloren gehen, wenn der Benutzer den Erkennungsprozess beenden möchte. Dieses Setup ist besonders nützlich für Anwendungen, bei denen Sie vollständige Benutzeräußerungen erfassen müssen, selbst wenn mitten im Sprechen gestoppt wird. Kopierbare Knoten.

Hauptmerkmale dieses Setups:

  • Startet den Recognizer automatisch bei der Initialisierung
  • Stoppt den Recognizer automatisch bei der Deinitialisierung
  • Verarbeitet den finalen Audio-Puffer, bevor vollständig gestoppt wird
  • Verwendet Sprachaktivitätserkennung (VAD) für effiziente Erkennung
  • Stellt sicher, dass beim Stoppen keine Sprachdaten verloren gehen

Nicht-Streaming-Audioeingang

Dieses Beispiel importiert Audiodaten in die importierte Soundwelle und erkennt die gesamten Audiodaten, sobald sie importiert wurden. Kopierbare Knoten.