Przejdź do głównej zawartości

Przechwytywanie dźwięku w Pixel Streaming

Pixel Streaming to wtyczka dla Unreal Engine, która przesyła strumieniowo renderowane klatki i synchronizuje wejście/wyjście za pośrednictwem WebRTC. Aplikacja działa po stronie serwera, podczas gdy strona klienta obsługuje renderowanie i interakcję użytkownika. Aby uzyskać więcej szczegółów na temat Pixel Streaming i konfiguracji, zapoznaj się z Dokumentacją Pixel Streaming.

Pixel Streaming vs Pixel Streaming 2

Ta wtyczka obsługuje obie wersje Pixel Streaming dostępne w Unreal Engine:

  • Pixel Streaming - Oryginalna wtyczka, dostępna od UE 5.2 i nadal aktywnie używana w obecnych wersjach silnika
  • Pixel Streaming 2 - Wprowadzona w UE 5.5 jako implementacja następnej generacji z ulepszoną architekturą wewnętrzną. Dowiedz się więcej o Pixel Streaming 2

Obie wersje są w pełni obsługiwane i dostępne w najnowszych wydaniach Unreal Engine. Wybierz wersję pasującą do konfiguracji Pixel Streaming twojego projektu.

informacja

API dla obu wersji jest identyczne, z tą tylko różnicą, że klasy i funkcje Pixel Streaming 2 zawierają "2" w swoich nazwach (np. UPixelStreamingCapturableSoundWave vs UPixelStreaming2CapturableSoundWave).

Kompatybilność

To rozwiązanie działa z:

Implementacja została przetestowana w tych środowiskach i działa poprawnie niezależnie od używanego rozwiązania hostingu Pixel Streaming.

Instalacja wtyczki rozszerzenia

Ta funkcja jest dostarczana jako rozszerzenie wtyczki Runtime Audio Importer. Aby jej użyć, musisz:

  1. Upewnij się, że wtyczka Runtime Audio Importer jest już zainstalowana w twoim projekcie
  2. Pobierz wtyczkę rozszerzenia dla twojej wersji Pixel Streaming:
  3. Wypakuj folder z pobranego archiwum do folderu Plugins twojego projektu (utwórz ten folder, jeśli nie istnieje)
  4. Przebuduj swój projekt (to rozszerzenie wymaga projektu C++)
important
  • Te rozszerzenia są dostarczane jako kod źródłowy i wymagają projektu C++ do użycia
  • Rozszerzenie Pixel Streaming: Obsługiwane w UE 5.2 i nowszych
  • Rozszerzenie Pixel Streaming 2: Obsługiwane w UE 5.5 i nowszych
  • Aby uzyskać więcej informacji na temat ręcznego budowania wtyczek, zobacz samouczek Building Plugins

Przegląd

Pixel Streaming Capturable Sound Wave rozszerza standardową Capturable Sound Wave, umożliwiając przechwytywanie dźwięku bezpośrednio z mikrofonów klientów Pixel Streaming. Ta funkcja pozwala na:

  • Przechwytywanie dźwięku z przeglądarek połączonych przez Pixel Streaming
  • Przetwarzanie dźwięku od konkretnych graczy/peerów
  • Implementację czatu głosowego, komend głosowych lub nagrywania dźwięku od zdalnych użytkowników

Podstawowe użycie

Tworzenie Pixel Streaming Capturable Sound Wave

Najpierw musisz utworzyć obiekt Pixel Streaming Capturable Sound Wave:

Węzeł Create Pixel Streaming Capturable Sound Wave

warning

Powinieneś traktować Pixel Streaming Capturable Sound Wave jako silne odniesienie, aby zapobiec przedwczesnemu zniszczeniu (np. przypisując ją do osobnej zmiennej w Blueprints lub używając UPROPERTY() w C++).

Rozpoczynanie i Zatrzymywanie Przechwytywania

Możesz rozpocząć i zatrzymać przechwytywanie dźwięku za pomocą prostych wywołań funkcji:

Węzły Rozpocznij i Zatrzymaj Przechwytywanie

notatka

Parametr DeviceId w StartCapture jest ignorowany dla Pixel Streaming Capturable Sound Waves, ponieważ źródło przechwytywania jest określane automatycznie lub przez ustawione informacje o graczu.

Sprawdzanie statusu przechwytywania

Możesz sprawdzić, czy fala dźwiękowa aktualnie przechwytuje dźwięk:

Węzeł Is Capturing

Kompletny przykład

Oto kompletny przykład konfiguracji przechwytywania dźwięku Pixel Streaming:

Kompletny przykład przechwytywania Pixel Streaming

Praca z wieloma odtwarzaczami Pixel Streaming

W scenariuszach, w których masz wielu klientów Pixel Streaming podłączonych jednocześnie, możesz potrzebować przechwytywać dźwięk z określonych odtwarzaczy. Poniższe funkcje pomagają w zarządzaniu tym.

Uzyskiwanie dostępnych odtwarzaczy Pixel Streaming

Aby zidentyfikować, które odtwarzacze Pixel Streaming są podłączone:

Węzeł Get Available Pixel Streaming Players

Ustawianie Gracza do Przechwytywania

Kiedy musisz przechwytywać z określonego gracza:

Węzeł Ustaw Gracza do Przechwytywania

informacja

Jeśli pozostawisz identyfikator gracza pusty, fala dźwiękowa automatycznie będzie nasłuchiwać pierwszego dostępnego gracza, który się połączy. Jest to domyślne zachowanie i dobrze sprawdza się w scenariuszach dla jednego gracza.

Typowe przypadki użycia

Implementacja czatu głosowego

Możesz użyć fal dźwiękowych przechwytywalnych Pixel Streaming do zaimplementowania czatu głosowego między użytkownikami zdalnymi a lokalnymi graczami:

  1. Utwórz falę dźwiękową przechwytywalną Pixel Streaming dla każdego podłączonego gracza
  2. Skonfiguruj system do zarządzania tym, którzy gracze aktualnie mówią
  3. Użyj systemu wykrywania aktywności głosowej do wykrywania, kiedy użytkownicy mówią
  4. Przestrzennie zlokalizuj dźwięk za pomocą systemu audio Unreal Engine, jeśli jest to potrzebne

Komendy głosowe z rozpoznawaniem mowy

Możesz zaimplementować rozpoznawanie komend głosowych dla użytkowników zdalnych, łącząc tę funkcję z wtyczką Runtime Speech Recognizer:

  1. Przechwytuj dźwięk od klientów Pixel Streaming używając fali dźwiękowej przechwytywalnej Pixel Streaming
  2. Przekazuj przechwycony dźwięk bezpośrednio do Runtime Speech Recognizer
  3. Przetwarzaj rozpoznany tekst w logice swojej gry

Po prostu zastąp standardową falę dźwiękową przechwytywalną falą dźwiękową przechwytywalną Pixel Streaming (lub falą dźwiękową przechwytywalną Pixel Streaming 2) w przykładach Runtime Speech Recognizer, a będzie ona działać bezproblemowo z wejściem audio Pixel Streaming.

Nagrywanie dźwięku użytkowników zdalnych

Możesz nagrywać dźwięk od użytkowników zdalnych do późniejszego odtwarzania:

  1. Przechwytuj dźwięk używając fali dźwiękowej przechwytywalnej Pixel Streaming
  2. Eksportuj przechwycony dźwięk do pliku używając eksportu audio
  3. Zapisz plik do późniejszego użycia lub analizy