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:
- Default VAD
- Silero VAD
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.
Verfügbar als Erweiterungsplugin, ist Silero VAD ein auf neuronalen Netzen basierender Sprachaktivitätsdetektor, der eine höhere Genauigkeit bietet, insbesondere in lauten Umgebungen. Es verwendet maschinelles Lernen, um Sprache zuverlässiger von Hintergrundgeräuschen zu unterscheiden.
Grundlegende Verwendung
Um VAD nach dem Erstellen einer Sound Wave zu aktivieren, verwenden Sie die Funktion ToggleVAD:
- Blueprint
- C++

// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
StreamingSoundWave->ToggleVAD(true);
Nach der Aktivierung von VAD können Sie es jederzeit zurücksetzen:
- Blueprint
- C++

// Reset the VAD
StreamingSoundWave->ResetVAD();
Standard-VAD-Einstellungen
Wenn Sie den Standard-VAD-Provider verwenden, können Sie seine Aggressivität durch Ändern des VAD-Modus anpassen:
- Blueprint
- C++

// Set the VAD mode (only works with the default VAD provider)
StreamingSoundWave->SetVADMode(ERuntimeVADMode::VeryAggressive);
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.
- Blueprint
- C++

// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
// Make sure to call ToggleVAD(true) before setting the provider
// Set the VAD provider to Silero VAD
StreamingSoundWave->SetVADProvider(URuntimeSileroVADProvider::StaticClass());
Silero VAD Extension
Silero VAD bietet mithilfe neuronaler Netze eine genauere Spracherkennung. So verwenden Sie es:
-
Stellen Sie sicher, dass das Runtime Audio Importer Plugin bereits in Ihrem Projekt installiert ist
-
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
-
Laden Sie das Silero VAD-Erweiterungsplugin von hier herunter
-
Extrahieren Sie den Ordner aus dem heruntergeladenen Archiv in den
Plugins-Ordner Ihres Projekts (erstellen Sie diesen Ordner, falls er nicht existiert) -
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
}
- Erstellen Sie Ihr Projekt neu (diese Erweiterung erfordert ein C++-Projekt)
-
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.
- Blueprint
- C++

// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
// Set the minimum speech duration
StreamingSoundWave->SetMinimumSpeechDuration(200);
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.
- Blueprint
- C++

// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
// Set the silence duration
StreamingSoundWave->SetSilenceDuration(700);
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.
- Blueprint
- C++

// Assuming StreamingSoundWave is a UE reference to a UStreamingSoundWave object (or its derived type, such as UCapturableSoundWave)
// Bind to the OnSpeechStartedNative delegate
StreamingSoundWave->OnSpeechStartedNative.AddWeakLambda(this, [this]()
{
// Handle the result when speech starts
});
// Bind to the OnSpeechEndedNative delegate
StreamingSoundWave->OnSpeechEndedNative.AddWeakLambda(this, [this]()
{
// Handle the result when speech ends
});
Vergleich der VAD-Anbieter
- Default VAD
- Silero VAD
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
Silero VAD
Vorteile:
- Höhere Genauigkeit bei der Spracherkennung
- Überlegene Rauschtoleranz in schwierigen Umgebungen
- Konsistentere Ergebnisse bei verschiedenen Sprechern
- Erweiterte Konfigurationsoptionen für präzise Steuerung
Am besten geeignet für:
- Anwendungen, die eine präzise Spracherkennung erfordern
- Umgebungen mit Hintergrundgeräuschen
- Spracherkennungssysteme
- Professionelle Audioanwendungen
Silero VAD erfordert möglicherweise mehr Rechenressourcen als die Standard-VAD.