Zum Hauptinhalt springen

Sprachaktivitätserkennung

Streaming Sound Wave, zusammen mit seinen abgeleiteten Typen wie Capturable Sound Wave, unterstützt Sprachaktivitätserkennung (VAD). VAD filtert eingehende Audiodaten, um den internen Puffer nur dann zu füllen, wenn Sprache erkannt wird.

Das Plugin bietet zwei VAD-Implementierungen:

Die Standardimplementierung verwendet libfvad, eine leichtgewichtige Bibliothek zur Sprachaktivitätserkennung, die effizient auf allen Plattformen und Engine-Versionen funktioniert, die von Runtime Audio Importer unterstützt werden.

Grundlegende Verwendung

Um VAD nach dem Erstellen einer Sound Wave zu aktivieren, verwenden Sie die Funktion ToggleVAD:

Toggle VAD node

Nach der Aktivierung von VAD können Sie es jederzeit zurücksetzen:

Reset VAD node

Standard-VAD-Einstellungen

Wenn Sie den Standard-VAD-Provider verwenden, können Sie seine Aggressivität durch Ändern des VAD-Modus anpassen:

Knoten „VAD-Modus einstellen“

Der Modusparameter steuert, wie aggressiv der VAD Audio filtert. Höhere Werte sind restriktiver, was bedeutet, dass sie weniger wahrscheinlich Fehlalarme melden, aber möglicherweise einige Sprache verpassen.

VAD-Provider

Nach der Aktivierung von VAD mit der Funktion ToggleVAD können Sie zwischen verschiedenen Anbietern für Sprachaktivitätserkennung wählen, um Ihren Anforderungen gerecht zu werden. Der Standardanbieter ist integriert, während zusätzliche Anbieter wie Silero VAD über Erweiterungs-Plugins verfügbar sind.

Knoten VAD-Provider festlegen

Silero VAD Extension

Silero VAD bietet mithilfe neuronaler Netze eine genauere Spracherkennung. So verwenden Sie es:

  1. Stellen Sie sicher, dass das Runtime Audio Importer Plugin bereits in Ihrem Projekt installiert ist

  2. Für UE 5.5 und früher: Stellen Sie vor dem Herunterladen des Silero VAD-Erweiterungsplugins sicher, dass NNERuntimeORT in Ihrem Projekt deaktiviert ist. Die Aktivierung von NNERuntimeORT kann in diesen Engine-Versionen aufgrund von Konflikten zu Abstürzen führen, wenn Sie Silero VAD verwenden

  3. Laden Sie das Silero VAD-Erweiterungsplugin von hier herunter

  4. Extrahieren Sie den Ordner aus dem heruntergeladenen Archiv in den Plugins-Ordner Ihres Projekts (erstellen Sie diesen Ordner, falls er nicht existiert)

  5. Für UE 5.6 und später: Bearbeiten Sie die Datei RuntimeAudioImporterSileroVAD.uplugin, um die NNERuntimeORT-Abhängigkeit hinzuzufügen. Fügen Sie im Feld "Plugins" nach der Einbindung von RuntimeAudioImporter Folgendes hinzu:

,
{
"Name": "NNERuntimeORT",
"Enabled": true
}
  1. Erstellen Sie Ihr Projekt neu (diese Erweiterung erfordert ein C++-Projekt)
important
  • Der Standard-VAD funktioniert mit allen von Runtime Audio Importer unterstützten Engine-Versionen (UE 4.24, 4.25, 4.26, 4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7 und 5.8)

  • Silero VAD unterstützt Unreal Engine 4.27 und alle UE5-Versionen (4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7 und 5.8)

  • UE 5.5 und früher: NNERuntimeORT muss deaktiviert werden, bevor Silero VAD verwendet wird, um Abstürze aufgrund von Plugin-Konflikten zu vermeiden. In UE 5.3 müssen speziell auch NNERuntimeORTCpu und NNERuntimeORTGpu deaktiviert werden

  • UE 5.6+ Anforderung: Ab Unreal Engine 5.6 erfordert die Silero VAD-Erweiterung, dass die NNERuntimeORT-Plugin-Abhängigkeit manuell in die .uplugin-Datei eingetragen wird

  • Silero VAD ist für Windows, Linux, Mac, Android (einschließlich Meta Quest) und iOS verfügbar

  • Diese Erweiterung wird als Quellcode bereitgestellt und erfordert ein C++-Projekt zur Verwendung

  • Weitere Informationen zum manuellen Erstellen von Plugins finden Sie im Building Plugins tutorial

Nach der Installation können Sie ihn als Ihren VAD-Anbieter auswählen, indem Sie die Funktion SetVADProvider mit dem Silero-Klassenanbieter verwenden.

Erkennung von Sprachbeginn und -ende

Die Sprachaktivitätserkennung erkennt nicht nur das Vorhandensein von Sprache, sondern ermöglicht auch die Erkennung des Beginns und Endes der Sprachaktivität. Dies ist nützlich, um Ereignisse auszulösen, wenn Sprache während der Wiedergabe oder Aufnahme beginnt oder endet.

Sie können die Empfindlichkeit der Sprachbeginn- und -ende-Erkennung anpassen, indem Sie Parameter wie die Mindestsprachdauer und die Stilledauer einstellen. Diese Parameter helfen, die Erkennung fein abzustimmen, um Fehlalarme zu vermeiden, etwa das Erkennen kurzer Geräusche oder zu kurzer Pausen zwischen der Sprache.

Mindestsprachdauer

Der Mindestsprachdauer-Parameter legt die Mindestdauer kontinuierlicher Sprachaktivität fest, die erforderlich ist, um ein Sprachbeginn-Ereignis auszulösen. Dadurch werden kurze Geräusche herausgefiltert, die nicht als Sprache betrachtet werden sollten, um sicherzustellen, dass nur anhaltende Sprachaktivität erkannt wird. Der Standardwert für Mindestsprachdauer beträgt 300 Millisekunden.

Set Minimum Speech Duration node

Silence Duration

Der Silence Duration-Parameter legt die Dauer der Stille fest, die erforderlich ist, um ein Sprachende-Ereignis auszulösen. Dadurch wird verhindert, dass die Spracherkennung während natürlicher Pausen zwischen Wörtern oder Sätzen vorzeitig endet. Der Standardwert für Silence Duration beträgt 500 Millisekunden.

Set Silence Duration node

An Sprachdelegaten binden

Sie können an bestimmte Delegaten binden, wenn die Sprache beginnt oder endet. Dies ist nützlich, um benutzerdefiniertes Verhalten basierend auf der Sprachaktivität auszulösen, z. B. das Starten oder Stoppen der Texterkennung oder das Anpassen der Lautstärke anderer Audioquellen.

Ereignis an On Speech Started binden Ereignis an On Speech Ended binden

Vergleich der VAD-Anbieter

Default VAD (libfvad)

Vorteile:

  • Leichtgewichtig und effizient
  • Funktioniert auf allen Plattformen
  • Minimale Ressourcennutzung
  • Geeignet für mobile und stromsparende Geräte

Am besten geeignet für:

  • Einfache Spracherkennung in ruhigen Umgebungen
  • Mobile Anwendungen
  • Projekte, bei denen Leistung Priorität hat
  • Wenn universelle Plattformunterstützung erforderlich ist