View a markdown version of this page

教程:使用 Amazon Kinesis 视频流进行 TURN 中继的 WebRTC - 亚马逊基岩 AgentCore

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

教程:使用 Amazon Kinesis 视频流进行 TURN 中继的 WebRTC

在本教程中,您将使用亚马逊 Kinesis Video Streams (KVS) 托管的 TURN 进行媒体中继,在浏览器客户端和 AgentCore 运行时代理之间建立 WebRTC 语音连接。该代理使用 Amazon Bedrock 基础模型实时处理音频,进行语音转语音对话。

完成后,您将有一个正常工作的 WebRTC 连接,音频将在浏览器和代理之间双向流式传输。

本教程需要具有互联网出口的 VPC 才能连接到 KVS TURN 终端节点。有关更多信息,请参阅互联网访问注意事项。所有其他先决条件均由示例应用程序处理。该示例使用 AgentCore CLI 部署到 AgentCore 运行时。

有关完整的示例应用程序,请参阅开启 KVS 的 WebRTC 语音代理。 GitHub

架构

架构图显示了 AgentCore 运行时的 WebRTC,KVS TURN 通过 VPC 中继。
浏览器客户端

一个使用浏览器 WebRTC API 捕获麦克风音频并播放代理的音频响应的网页。

AgentCore 运行时间

托管代理并通过私有子网中的弹性网络接口 (ENI) 连接到用户的 VPC。

座席

部署到 R AgentCore untime 的 Python 应用程序,通过/invocations端点处理 WebRTC 信令和 TURN 凭据管理,并在客户端和基础模型之间传输音频。

具有互联网出口的用户 VPC

提供从代理到 KVS TURN 中继服务器的网络连接。流量通过 NAT 网关和互联网网关从私有子网中的 ENI 路由到达 TURN 端点。

KVS TURN 中继服务器

在浏览器客户端和代理之间中继媒体流量。代理使用 API 从 KVS 获取临时 TURN 证书。 GetIceServerConfig

工作原理

  1. 客户端调用代理来获取 KVS TURN 凭证和 ICE 服务器配置。

  2. 客户创建 WebRTC 报价并将其发送给代理。代理创建使用 KVS TURN 服务器配置的对等连接并返回答案。

  3. 客户端和代理交换候选ICE以通过TURN服务器建立连接。

  4. 连接后,客户端通过 WebRTC 将麦克风音频传输到代理。代理将音频转发到 Amazon Bedrock 基础模型,并将该模型的语音响应传输回客户端。