Przejdź do głównej zawartości

Wykrywanie Aktywności Głosowej

Streaming Sound Wave, wraz z jego pochodnymi typami, takimi jak Capturable Sound Wave, obsługuje Wykrywanie Aktywności Głosowej (VAD). VAD filtruje przychodzące dane audio, aby wypełnić wewnętrzny bufor tylko wtedy, gdy wykryty jest głos.

Plugin oferuje dwie implementacje VAD:

Domyślna implementacja używa libfvad, lekkiej biblioteki do wykrywania aktywności głosowej, która działa wydajnie 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:

Toggle VAD node

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

Reset VAD node

Domyślne ustawienia VAD

Podczas korzystania z domyślnego dostawcy VAD, możesz dostosować jego agresywność poprzez zmianę trybu VAD:

Węzeł Set VAD Mode

Parametr trybu kontroluje, jak agresywnie VAD filtruje dźwięk. Wyższe wartości są bardziej restrykcyjne, co oznacza, że są mniej podatne na zgłaszanie fałszywych alarmów, ale mogą pominąć część mowy.

Dostawcy VAD

Po włączeniu VAD za pomocą funkcji ToggleVAD, możesz wybrać między różnymi dostawcami wykrywania aktywności głosowej (Voice Activity Detection), aby dopasować je do swoich potrzeb. Domyślnym dostawcą jest wbudowany, podczas gdy dodatkowi dostawcy, tacy jak Silero VAD, są dostępni poprzez wtyczki rozszerzeń.

Węzeł ustawienia dostawcy VAD

Rozszerzenie Silero VAD

Silero VAD zapewnia dokładniejsze wykrywanie mowy przy użyciu sieci neuronowych. 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łączony w twoim projekcie. Posiadanie włączonego NNERuntimeORT może powodować awarie podczas używania Silero VAD w tych wersjach silnika z powodu konfliktów

  3. Pobierz wtyczkę rozszerzenia Silero VAD z Dysku Google

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

  5. Dla UE 5.6 i późniejszych: Edytuj plik RuntimeAudioImporterSileroVAD.uplugin, aby dodać zależność NNERuntimeORT. W polu "Plugins", po wpisie RuntimeAudioImporter, dodaj:

   ,
{
"Name": "NNERuntimeORT",
"Enabled": true
}
  1. Przebuduj 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 i 5.6)

  • 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 i 5.6)

  • UE 5.5 i wcześniejsze: NNERuntimeORT musi być wyłączony przed użyciem Silero VAD, aby zapobiec awariom spowodowanym konfliktami wtyczek

  • 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 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

  • Aby uzyskać więcej informacji na temat ręcznego budowania wtyczek, zobacz samouczek Building Plugins

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

Wykrywanie początku i końca mowy

Wykrywanie aktywności głosowej (VAD) nie tylko wykrywa obecność mowy, ale także umożliwia wykrywanie początku i końca aktywności mowy. Jest to przydatne do wyzwalania zdarzeń, gdy mowa zaczyna się lub kończy podczas odtwarzania lub przechwytywania.

Możesz dostosować czułość wykrywania początku i końca mowy, dostosowując parametry, takie jak minimalny czas trwania mowy i czas trwania ciszy. Te parametry pomagają precyzyjnie dostroić wykrywanie, aby uniknąć fałszywych pozytywów, takich jak wychwytywanie krótkich szumów lub zbyt krótkich przerw w mowie.

Minimalny czas trwania mowy

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

Węzeł Set Minimum Speech Duration

Czas Trwania Ciszy

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

Węzeł Ustaw Czas Trwania Ciszy

Wiązanie z Delegatami Mowy

Możesz powiązać się z określonymi delegatami, gdy mowa się rozpoczyna lub kończy. Jest to przydatne do wyzwalania niestandardowych zachowań w oparciu o aktywność mowy, takich jak uruchamianie lub zatrzymywanie rozpoznawania tekstu, lub regulowanie głośności innych źródeł dźwięku.

Bind Event To On Speech Started Bind Event To On Speech Ended

Porównanie dostawców VAD

Domyślny VAD (libfvad)

Zalety:

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

Najlepszy dla:

  • Prostej detekcji głosu w cichych środowiskach
  • Aplikacji mobilnych
  • Projektów, w których priorytetem jest wydajność
  • Sytuacji wymagających uniwersalnego wsparcia platform