跳到主要内容

Pixel Streaming 音频捕获

Pixel Streaming 是 Unreal Engine 的一个插件,它通过 WebRTC 流式传输渲染帧并同步输入/输出。应用程序在服务器端运行,而客户端则处理渲染和用户交互。有关 Pixel Streaming 和设置的更多详细信息,请参阅 Pixel Streaming 文档

Pixel Streaming 与 Pixel Streaming 2

此插件支持 Unreal Engine 中可用的两个 Pixel Streaming 版本:

  • Pixel Streaming - 原始插件,自 UE 5.2 起可用,并在当前引擎版本中仍被积极使用
  • Pixel Streaming 2 - 在 UE 5.5 中引入,作为具有改进内部架构的下一代实现。了解更多关于 Pixel Streaming 2 的信息

两个版本在最新的 Unreal Engine 版本中都得到完全支持并可用。请选择与您项目的 Pixel Streaming 设置相匹配的版本。

信息

两个版本的 API 是相同的,唯一的区别是 Pixel Streaming 2 的类和函数在其名称中包含 "2"(例如,UPixelStreamingCapturableSoundWaveUPixelStreaming2CapturableSoundWave)。

兼容性

此解决方案适用于:

该实现已在上述环境中经过测试,无论使用何种 Pixel Streaming 托管解决方案,都能正常运行。

扩展插件安装

此功能作为 Runtime Audio Importer 插件的扩展提供。要使用它,您需要:

  1. 确保 Runtime Audio Importer 插件已安装在您的项目中
  2. 为您的 Pixel Streaming 版本下载扩展插件:
  3. 将下载的压缩包中的文件夹解压到您项目的 Plugins 文件夹中(如果该文件夹不存在,请创建它)
  4. 重新构建您的项目(此扩展需要 C++ 项目)
important
  • 这些扩展以源代码形式提供,需要 C++ 项目才能使用
  • Pixel Streaming 扩展:支持 UE 5.2 及更高版本
  • Pixel Streaming 2 扩展:支持 UE 5.5 及更高版本
  • 有关如何手动构建插件的更多信息,请参阅构建插件教程

概述

Pixel Streaming 可捕获音波扩展了标准的可捕获音波,允许直接从 Pixel Streaming 客户端的麦克风捕获音频。此功能使您能够:

  • 捕获通过 Pixel Streaming 连接的浏览器中的音频
  • 处理来自特定玩家/对等端的音频
  • 实现来自远程用户的语音聊天、语音命令或音频录制

基本用法

创建 Pixel Streaming 可捕获音波

首先,您需要创建一个 Pixel Streaming 可捕获音波对象:

创建 Pixel Streaming 可捕获音波节点

注意

您应将 Pixel Streaming Capturable Sound Wave 视为强引用以防止过早销毁(例如,在Blueprint中将其分配给单独的变量或在 C++ 中使用 UPROPERTY())。

开始和停止捕获

您可以通过简单的函数调用来开始和停止音频捕获:

开始和停止捕获节点

备注

StartCapture 中的 DeviceId 参数对于 Pixel Streaming 可捕获音波将被忽略,因为捕获源由您设置的播放器信息自动确定。

检查捕获状态

您可以检查音波当前是否正在捕获音频:

Is Capturing 节点

完整示例

以下是如何设置 Pixel Streaming 音频捕获的完整示例:

完整的 Pixel Streaming 捕获示例

使用多个像素流播放器

在同时连接多个像素流客户端的情况下,您可能需要从特定播放器捕获音频。以下功能可帮助您管理这种情况。

获取可用的像素流播放器

要识别哪些像素流播放器已连接:

获取可用像素流播放器节点

设置要捕获的播放器

当您需要从特定播放器进行捕获时:

设置要捕获的播放器节点

信息

如果您将玩家 ID 留空,声波将自动监听第一个连接的可用玩家。这是默认行为,在单玩家场景中效果良好。

常见用例

语音聊天实现

您可以使用 Pixel Streaming 可捕获声波来实现远程用户与本地玩家之间的语音聊天:

  1. 为每个连接的玩家创建一个 Pixel Streaming 可捕获声波
  2. 设置一个系统来管理当前正在说话的玩家
  3. 使用语音活动检测系统来检测用户何时在说话
  4. 如果需要,使用虚幻引擎的音频系统对音频进行空间化处理

带语音识别的语音命令

您可以通过将此功能与运行时语音识别器插件结合使用,实现远程用户的语音命令识别:

  1. 使用 Pixel Streaming 可捕获声波从 Pixel Streaming 客户端捕获音频
  2. 将捕获的音频直接馈送到运行时语音识别器
  3. 在您的游戏逻辑中处理识别出的文本

只需在运行时语音识别器示例中将标准的可捕获声波替换为 Pixel Streaming 可捕获声波(或 Pixel Streaming 2 可捕获声波),它就能与 Pixel Streaming 音频输入无缝协作。

录制远程用户音频

您可以录制远程用户的音频以供后续播放:

  1. 使用 Pixel Streaming 可捕获声波捕获音频
  2. 使用导出音频将捕获的音频导出到文件
  3. 保存文件以供后续使用或分析