随着 生成式 AI 和视觉基础模型的最新进展,VLM 呈现了新一波视觉计算浪潮,其中模型能够实现高度复杂的感知和深度上下文理解。这些智能解决方案为增强 XR 设置中的语义理解提供了一种很有前景的方法。通过集成 VLM,开发者可以显著改进 XR 应用解释用户操作以及与用户操作交互的方式,使其响应速度更快、更直观。
本文将向您介绍如何利用 NVIDIA AI Blueprint 进行视频搜索和摘要 ,以及如何增强 Blueprint 以支持 XR 环境中的音频。我们介绍了实时语音识别和沉浸式交互的分步过程——从设置环境到无缝集成。
使用多模态 AI 智能体推进 XR 应用
借助对话式 AI 功能增强 XR 应用,为用户带来更加身临其境的体验。通过创建在 XR 环境中提供 Q&A 功能的生成式 AI 智能体,用户可以更自然地进行交互并获得即时帮助。多模态 AI 智能体处理并合成多种输入模式,例如视觉数据 (例如 XR 头显设备输入) 、语音、文本或传感器流,以做出上下文感知型决策并生成自然的交互式响应。
这种集成可以产生重大影响的用例包括:
- 熟练劳动力培训:在模拟训练比使用真实设备更安全、更实用的行业中,XR 应用可以提供沉浸式受控环境。通过 VLMs 增强语义理解可实现更逼真、更有效的训练体验,从而促进更好的技能转移和安全协议。
- 设计和原型设计:工程师和设计师可以利用 XR 环境来可视化和操作 3D 模型。VLM 使系统能够理解手势和上下文命令,从而简化设计流程并促进创新。
- 教育和学习:XR 应用可以跨各种学科打造沉浸式教育体验。通过语义理解,该系统可以适应学习者的互动,提供个性化内容和互动元素,加深理解。
通过集成 VLM 并整合增强的语义理解和对话式 AI 功能等功能,开发者可以扩展 XR 应用的潜在用例。
适用于视频搜索和摘要的 NVIDIA AI Blueprint
将 VLM 用于 XR 应用的关键挑战之一在于处理长视频或实时流,同时有效捕获时间上下文。用于视频搜索和摘要的 NVIDIA AI Blueprint 通过使 VLM 能够处理更长的视频时长和实时视频源,解决了这一挑战。
用于视频搜索和摘要的 AI Blueprint 有助于简化视频分析 AI 智能体的开发。这些智能体通过利用 VLM 和 LLM 来促进全面的视频分析。VLM 会为视频片段生成详细说明,然后将其存储在向量数据库中。LLM 会对这些描述进行总结,以生成对用户查询的最终回复。有关此智能体及其功能的更多详细信息,请参阅使用 NVIDIA AI Blueprint 构建视频搜索和摘要智能体。
此 AI Blueprint 的灵活设计使用户能够定制工作流程并适应不同的环境。为了根据虚拟现实 (VR) 智能体的特定用例调整蓝图,第一步是确保将 VR 数据连续流式传输到工作流中。例如,您可以使用 FFmpeg 直接从 VR 头盔屏幕捕获 VR 环境。为了使智能体具有交互性,我们的团队优先启用语音通信。还有什么比与 VR 智能体交互更好的方式呢?
有多种方法可以将音频和视觉理解融入 XR 环境。在本教程中,我们修改了 AI 蓝图,通过以一致的间隔分割音频和视频,并将其另存为.mpg 和.wav 文件,从而加入音频处理。视频文件(.mpg)由 VLM 处理,而音频文件(.wav)则通过 API 调用发送到 NVIDIA Riva NIM ASR 进行转录。 Riva ASR NIM API 提供了轻松访问多种语言的先进自动语音识别(ASR)模型的途径。然后,转录的文本与相应的视频一起发送到 VLM。
用于视频搜索和摘要的 AI Blueprint 可以理解长视频或直播。但是,对于此智能体,当用户提出问题时,只需要理解视频的部分内容。工作流检查是否存在音频转录。如果转录可用,则调用 VLM。否则,管道会等待音频输入,而不是持续处理所有视频帧。
检测到转录内容后,工作流将继续进行 VLM 和大语言模型 (LLM) 调用,然后使用 Riva NIM 文本转语音 (TTS) 模型将生成的响应转换回音频,然后将其语音传回用户。图 1 显示了此过程的详细步骤。

第 1 步:创建 VR 环境
首先,通过 Oculus Link 桌面应用连接 Meta Quest 3。连接头显设备后,在 VR 中模拟环境。 NVIDIA Omniverse 是一个用于开发 OpenUSD 应用的平台,专注于工业数字化和物理 AI 模拟。 NVIDIA Isaac Sim 是一款基于 Omniverse 构建的参考应用,用于在物理精准的虚拟环境中设计、仿真、测试和训练基于 AI 的机器人和自主机器。 本教程使用预构建的 Isaac Sim 模拟中的 Cortex UR10 Bin Stacking 模拟。
模拟运行后,下一个任务是将 Isaac Sim 连接到 Quest。这是通过在 Isaac Sim 中启用 NVIDIA 提供的一组 Create XR 插件来实现的。已激活的插件如下所示:
- Omniverse XR 遥测
- OpenXR 输入/ 输出
- 适用于 XR 的播放扩展程序
- XR 模拟器
- UI Scene View 实用程序
- VR 体验
- XR 核心基础架构
- 通用 XR 配置文件
- 用于构建配置文件 UI 的 XR UI 代码
- 视口的 XR UI 代码
- XR UI 通用
激活这些插件后,使用 OpenXR 单击“Start VR Mode”按钮以进入 VR 环境。
接下来,在 Windows 系统上设置 RTSP 流,按照以下步骤捕捉 VR 环境:
- 下载适用于
mediamtx-v1.8.4
的 Windows 版本。 - 解压下载的文件夹,并导航至包含
cd mediamtx_v1.8.4_windows_amd64
的目录。 - 创建
mediamtx.yml
配置文件,并将其放置在同一目录中。 - 运行
.\mediamtx.exe
以启动 RTSP 服务器。 - 在 Windows 上安装 FFmpeg 。
- 根据您的设置执行以下命令之一。请注意,您可能需要调整一些参数,以实现兼容性和最佳串流性能。
运行以下命令以设置 FFmpeg 以同时截取屏幕和麦克风。
ffmpeg -f gdigrab -framerate 10 -i desktop -f dshow -i audio="Microphone
(Realtek(R) Audio)" -vf scale=640:480 -c:v h264_nvenc -preset fast -b:v 1M
-maxrate 1M -bufsize 2M -rtbufsize 100M -c:a aac -ac 1 -b:a 16k -map 0:v -map
1:a -f rtsp -rtsp_transport tcp rtsp://localhost:8554/stream
运行以下命令以设置 FFmpeg,以便在播放预先录制的音频文件时进行屏幕截取。该命令会无限循环音频。如要仅播放一次音频,请删除 -loop 0 参数。
ffmpeg -f gdigrab -framerate 10 -i desktop -stream_loop -1 -i fourth_audio.wav
-vf scale=640:480 -c:v h264_nvenc -qp 0 -c:a aac -b:a 16k -f rtsp
-rtsp_transport tcp rtsp://localhost:8554/stream
第 2 步:将音频添加到 pipeline
为支持输入和输出音频处理,我们的团队修改了用于视频搜索和摘要工作流的 AI Blueprint,使其能够在视频输入之外加入音频。在未来的版本中,VSS 将原生支持此功能。
在本教程中,我们使用 GStreamer 的 splitmuxsink
功能修改了提取工作流。该团队建立了一个音频处理工作流,对传入的音频流进行解码,并将其转换为标准格式。然后,使用 splitmuxsink
元素将音频数据写入分段的 .wav 文件,以便于管理和播放。这种集成可确保在 AI 蓝图的提取工作流中同时处理音频和视频流,从而实现全面的媒体处理。
以下代码展示了增强音频工作流程的示例方法:
caps = srcbin_src_pad.query_caps()
if "audio" in caps.to_string():
decodebin = Gst.ElementFactory.make("decodebin", "decoder")
audioconvert = Gst.ElementFactory.make("audioconvert", "audioconvert")
decodebin.connect("pad-added", on_pad_added_audio, audioconvert)
wavenc = Gst.ElementFactory.make("wavenc", "wav_encoder")
splitmuxsink = Gst.ElementFactory.make("splitmuxsink", "splitmuxsink")
splitmuxsink.set_property("location", self._output_file_prefix + "_%05d.wav")
splitmuxsink.set_property("muxer", wavenc)
splitmuxsink.set_property("max-size-time", 10000000000)
splitmuxsink.connect("format-location-full", cb_format_location_audio, self)
pipeline.add(decodebin)
pipeline.add(audioconvert)
pipeline.add(splitmuxsink)
srcbin.link(decodebin)
audioconvert.link(splitmuxsink)
pipeline.set_state(Gst.State.PLAYING)
第 3 步:集成
蓝图工作流使用队列来处理实时 RTSP 流生成的视频块。这些视频块会与预定义的文本提示一起传递给 VLM。此外,该队列还可用于处理音频块,并将其发送至 Riva NIM ASR API 进行转录。然后,生成的转录用作 VLM 的输入文本提示。
AI 蓝图提取工作流目前在所有视频块中使用相同的输入提示,详情请参阅 使用 NVIDIA AI Blueprint 构建视频搜索和摘要代理 。对管道进行了修改,以便在转录生成的问题中使用提示。当有人提出问题时,这会将流程从摘要任务转移到特定视频片段的 VQA 任务。我们还提高了管道的效率,因为如果没有相应的音频转录,它会跳过视频块的 VLM 推理。
然后,VLM 推理输出会附加来自知识库的信息,其中包含机械臂名称等相关信息。然后,系统会将其发送至 LLM,以生成最终答案。完成 VLM 和 LLM 推理后,系统会将文本发送到 Riva TTS API 以创建音频 .mp3 文件,而不是在 Web UI 上显示生成的响应。然后,此文件将发送到本地 Windows 系统,在 VR 设置中为用户播放。
视频 1。观看用户与 Isaac Sim 的 Cortex UR10 Bin 堆叠模拟的交互演示
开始使用 NVIDIA AI Blueprint 进行视频搜索和摘要
准备好使用 NVIDIA AI Blueprint 创建自己的 AI 智能体进行视频搜索和摘要了吗? 申请参与 Early Access Program 。
查看以下资源以了解详情: