Перейти к основному содержимому

Захват Аудио для Pixel Streaming

Pixel Streaming - это плагин для Unreal Engine, который передает поток рендерингных кадров и синхронизирует ввод/вывод через WebRTC. Приложение работает на стороне сервера, в то время как клиентская сторона обрабатывает рендеринг и взаимодействие с пользователем. Для получения дополнительной информации о Pixel Streaming и настройке, обратитесь к Документации по Pixel Streaming.

Совместимость

Это решение работает с:

  • Официальной инфраструктурой Pixel Streaming (Реализация от Epic Games)
  • Сторонними поставщиками Pixel Streaming, включая:
  • Операционными системами: серверы Windows и Linux

Реализация была протестирована в этих средах и работает корректно вне зависимости от используемого решения для размещения Pixel Streaming.

Установка Расширения Плагина

Эта функция предоставляется в виде расширения для плагина Runtime Audio Importer. Чтобы использовать его, необходимо:

  1. Убедиться, что плагин Runtime Audio Importer уже установлен в вашем проекте
  2. Скачать расширение плагина Pixel Streaming Audio Capture из Google Drive
  3. Извлечь папку из загруженного архива в папку Plugins вашего проекта (создайте эту папку, если она не существует)
  4. Пересобрать ваш проект (это расширение требует проект C++)
important
  • Это расширение предоставляется в виде исходного кода и требует проект C++ для использования
  • Поддерживаемые версии Unreal Engine: UE 5.2 и более поздние
  • Для получения дополнительной информации о том, как вручную собирать плагины, см. Учебник по созданию плагинов

Обзор

Pixel Streaming Capturable Sound Wave расширяет стандартный Capturable Sound Wave, чтобы позволить захватывать аудио непосредственно с микрофонов клиентов Pixel Streaming. Эта функция позволяет вам:

  • Захватывать аудио из браузеров, подключенных через Pixel Streaming
  • Обрабатывать аудио от конкретных игроков/пиров
  • Реализовать голосовой чат, голосовые команды или аудиозапись от удаленных пользователей

Основное Использование

Создание Pixel Streaming Capturable Sound Wave

Сначала вам нужно создать объект Pixel Streaming Capturable Sound Wave:

Создать узел Pixel Streaming Capturable Sound Wave

warning

Вы должны рассматривать Pixel Streaming Capturable Sound Wave как сильную ссылку, чтобы предотвратить преждевременное уничтожение (например, присвоив его отдельной переменной в Blueprints или используя UPROPERTY() в C++).

Начало и остановка захвата

Вы можете начать и остановить захват аудио с помощью простых вызовов функций:

Узлы для начала и остановки захвата

примечание

Параметр DeviceId в StartCapture игнорируется для Pixel Streaming Capturable Sound Waves, так как источник захвата определяется автоматически или по информации, которую вы задали для игрока.

Проверка статуса захвата

Вы можете проверить, захватывает ли в данный момент аудио звуковая волна:

Is Capturing node

Полный Пример

Вот полный пример настройки захвата аудио в Pixel Streaming:

Полный пример захвата Pixel Streaming

Работа с несколькими Pixel Streaming плеерами

В сценариях, когда у вас несколько клиентов Pixel Streaming подключены одновременно, возможно, вам потребуется захватить аудио от конкретных плееров. Следующие функции помогут вам управлять этим.

Получение доступных Pixel Streaming плееров

Чтобы определить, какие Pixel Streaming плееры подключены:

Get Available Pixel Streaming Players node

Установка игрока для захвата

Когда необходимо захватить со специфичного игрока:

Set Player To Capture From node

к сведению

Если вы оставите ID игрока пустым, звуковая волна автоматически будет прослушивать первого доступного игрока, который подключится. Это поведение по умолчанию и хорошо работает для однопользовательских сценариев.

Общие сценарии использования

Реализация голосового чата

Вы можете использовать Pixel Streaming Capturable Sound Waves для реализации голосового чата между удаленными пользователями и локальными игроками:

  1. Создайте Pixel Streaming Capturable Sound Wave для каждого подключенного игрока
  2. Настройте систему для управления, какие игроки в данный момент говорят
  3. Используйте систему Voice Activity Detection для обнаружения, когда пользователи говорят
  4. Пространственно обработайте аудио с использованием аудиосистемы Unreal Engine, если это необходимо

Голосовые команды с распознаванием речи

Вы можете реализовать распознавание голосовых команд для удаленных пользователей, комбинируя эту функцию с плагином Runtime Speech Recognizer:

  1. Захватывайте аудио от клиентов Pixel Streaming с использованием Pixel Streaming Capturable Sound Wave
  2. Передайте захваченное аудио непосредственно в Runtime Speech Recognizer
  3. Обработайте распознанный текст в игровой логике

Просто замените стандартную Capturable Sound Wave на Pixel Streaming Capturable Sound Wave в примерах Runtime Speech Recognizer, и это будет работать без сбоев с аудиовходом Pixel Streaming.

Запись аудио удаленного пользователя

Вы можете записывать аудио от удаленных пользователей для последующего воспроизведения:

  1. Захватывайте аудио с помощью Pixel Streaming Capturable Sound Wave
  2. Экспортируйте захваченное аудио в файл, используя Export Audio
  3. Сохраните файл для дальнейшего использования или анализа