Przejdź do głównej zawartości

Detekcja Aktywności Głosowej

Streaming Sound Wave, wraz z jego pochodnymi typami takimi jak Capturable Sound Wave, obsługuje Detekcję Aktywności Głosowej (VAD). VAD filtruje przychodzące dane audio, aby zapełniać wewnętrzny bufor tylko wtedy, gdy wykrywana jest mowa.

Wtyczka oferuje dwie implementacje VAD:

Domyślna implementacja używa libfvad, lekkiej biblioteki do wykrywania aktywności głosowej, która działa efektywnie na wszystkich platformach i wersjach silnika obsługiwanych przez Runtime Audio Importer.

Podstawowe Użycie

Aby włączyć VAD po utworzeniu fali dźwiękowej, użyj funkcji ToggleVAD:

Węzeł Toggle VAD

Po włączeniu VAD możesz go zresetować w dowolnym momencie:

Reset VAD node

Domyślne ustawienia VAD

Korzystając z domyślnego dostawcy VAD, możesz dostosować jego agresywność, zmieniając tryb VAD:

Węzeł ustaw tryb VAD

Parametr mode kontroluje, jak agresywnie VAD filtruje dźwięk. Wyższe wartości są bardziej restrykcyjne, co oznacza, że rzadziej zgłaszają fałszywe alarmy, ale mogą pomijać niektóre wypowiedzi.

Dostawcy VAD

Po włączeniu VAD za pomocą funkcji ToggleVAD możesz wybrać spośród różnych dostawców VAD, aby dopasować do swoich potrzeb. Domyślny dostawca jest wbudowany, a dodatkowi dostawcy, tacy jak Silero VAD, są dostępni za pośrednictwem wtyczek rozszerzeń.

Węzeł Set VAD Provider

Silero VAD Extension

Silero VAD dostarcza bardziej dokładne wykrywanie mowy wykorzystując sieci neuronowe. Aby go użyć:

  1. Upewnij się, że wtyczka Runtime Audio Importer jest już zainstalowana w Twoim projekcie

  2. Dla UE 5.5 i wcześniejszych: Przed pobraniem wtyczki rozszerzenia Silero VAD upewnij się, że NNERuntimeORT jest wyłączone w Twoim projekcie. Włączone NNERuntimeORT może powodować awarie przy użyciu Silero VAD na tych wersjach silnika z powodu konfliktów

  3. Pobierz wtyczkę rozszerzenia Silero VAD stąd

  4. Wypakuj folder z pobranego archiwum do folderu Plugins w swoim projekcie (utwórz ten folder, jeśli nie istnieje)

  5. Dla UE 5.6 i nowszych: Edytuj plik RuntimeAudioImporterSileroVAD.uplugin, aby dodać zależność NNERuntimeORT. W polu "Plugins", po dołączeniu RuntimeAudioImporter, dodaj:

,
{
"Name": "NNERuntimeORT",
"Enabled": true
}
  1. Skompiluj ponownie swój projekt (to rozszerzenie wymaga projektu C++)
important
  • Domyślny VAD działa ze wszystkimi wersjami silnika obsługiwanymi przez Runtime Audio Importer (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 i 5.8)

  • Silero VAD obsługuje Unreal Engine 4.27 i wszystkie wersje UE5 (4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7 i 5.8)

  • UE 5.5 i wcześniejsze: NNERuntimeORT musi być wyłączone przed użyciem Silero VAD, aby zapobiec awariom z powodu konfliktów wtyczek. W UE 5.3 konkretnie, NNERuntimeORTCpu i NNERuntimeORTGpu również muszą być wyłączone

  • Wymaganie UE 5.6+: Począwszy od Unreal Engine 5.6, rozszerzenie Silero VAD wymaga ręcznego dodania zależności wtyczki NNERuntimeORT do pliku .uplugin

  • Silero VAD jest dostępny dla systemów Windows, Linux, Mac, Android (w tym Meta Quest) i iOS

  • To rozszerzenie jest dostarczane jako kod źródłowy i wymaga projektu C++ do użycia

  • Więcej informacji na temat ręcznego budowania wtyczek można znaleźć w samouczku Building Plugins

Po zainstalowaniu można go wybrać jako dostawcę VAD za pomocą funkcji SetVADProvider z dostawcą klasy Silero.

Wykrywanie początku i końca mowy

Detekcja Aktywności Głosowej nie tylko wykrywa obecność mowy, ale umożliwia również wykrywanie początku i końca aktywności mowy. Jest to przydatne do wyzwalania zdarzeń, gdy mowa się rozpoczyna lub kończy podczas odtwarzania lub przechwytywania.

Można dostosować czułość wykrywania początku i końca mowy, regulując parametry, takie jak minimalny czas trwania mowy i czas trwania ciszy. Parametry te pomagają dostroić wykrywanie, aby uniknąć fałszywych alarmów, takich jak wykrywanie krótkich szumów lub zbyt krótkich przerw między mową.

Minimalny czas trwania mowy

Parametr Minimalny czas trwania mowy ustawia minimalną ilość ciągłej aktywności głosowej wymaganej do wyzwolenia zdarzenia rozpoczęcia mowy. Pomaga to odfiltrować krótkie szumy, które nie powinny być uznawane za mowę, aby upewnić się, że rozpoznawana jest tylko trwała aktywność głosowa. Domyślna wartość Minimalnego czasu trwania mowy wynosi 300 milisekund.

Set Minimum Speech Duration node

Silence Duration

Parametr Silence Duration ustawia czas trwania ciszy wymagany do wywołania zdarzenia zakończenia mowy. Zapobiega to przedwczesnemu kończeniu wykrywania mowy podczas naturalnych pauz między słowami lub zdaniami. Domyślna wartość dla Silence Duration to 500 milisekund.

Węzeł Set Silence Duration

Powiązanie z delegatami mowy

Możesz przypisać się do określonych delegatów, gdy mowa się rozpoczyna lub kończy. Jest to przydatne do wyzwalania niestandardowego zachowania na podstawie aktywności mowy, takiego jak rozpoczynanie lub zatrzymywanie rozpoznawania tekstu lub dostosowywanie głośności innych źródeł dźwięku.

Powiąż zdarzenie z On Speech Started Powiąż zdarzenie z On Speech Ended

Porównanie dostawców VAD

Default VAD (libfvad)

Zalety:

  • Lekki i wydajny
  • Działa na wszystkich platformach
  • Minimalne wykorzystanie zasobów
  • Odpowiedni dla urządzeń mobilnych i o niskiej mocy

Najlepsze do:

  • Prostego wykrywania głosu w cichym otoczeniu
  • Aplikacji mobilnych
  • Projektów, w których wydajność jest priorytetem
  • Gdy wymagana jest uniwersalna obsługa platform