Przejdź do głównej zawartości

Wykrywanie Aktywności Głosowej

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

Wtyczka 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ć go w dowolnym momencie:

Węzeł Reset VAD

Domyślne Ustawienia VAD

Podczas korzystania 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 audio. Wyższe wartości są bardziej restrykcyjne, co oznacza, że są mniej podatne na zgłaszanie fałszywych alarmów, ale mogą przeoczyć 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ł Ustaw dostawcę 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. Aktywny NNERuntimeORT może powodować awarie podczas używania Silero VAD w tych wersjach silnika z powodu konfliktów

  3. Pobierz wtyczkę rozszerzenia Silero VAD stąd tutaj

  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, 5.6 i 5.7)

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

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

  • Wymaganie dla 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) oraz 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 Budowanie wtyczek

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 wykrycie 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 dźwiękó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 wymaganej do wyzwolenia zdarzenia początku mowy. Pomaga to odfiltrować krótkie dźwięki, które nie powinny być uznawane za mowę, aby upewnić się, że tylko utrzymująca się aktywność głosowa jest rozpoznawana. Wartość domyślna dla Minimalnego czasu trwania mowy to 300 milisekund.

Węzeł Ustaw minimalny czas trwania mowy

Czas Trwania Ciszy

Parametr Czas Trwania Ciszy ustawia długość ciszy wymaganą 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, czy 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:

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