使用 Amazon Nova Sonic 和 WebRTC 构建实时语音流应用
Build real-time voice streaming applications with Amazon Nova Sonic and WebRTC
本文介绍了一种基于Amazon Nova 2 Sonic(Nova Sonic)与Amazon Kinesis Video Streams WebRTC的端到端直播应用解决方案,用于应对网络带宽限制、语言障碍、可扩展性及跨平台兼容性等挑战。WebRTC通过自适应比特率(ABR)和前向纠错(FEC)在弱网环境下维持低延迟音频质量;Nova Sonic提供统一语音到语音架构,支持实时多语言对话及工具调用(如RAG、MCP)。AWS全托管服务实现自动扩展与弹性,并提供开源示例。文章详述了架构、实现模式及智能家居与联网车辆两个真实场景。作者为AWS解决方案架构师Zihang Huang、Lana Zhang、Bin Chen及高级工程师Siva Somasundaram。
使用实时语音交互构建端到端直播应用
构建具有实时语音交互的端到端直播应用面临若干挑战:网络带宽限制可能导致对时间敏感的应用出现高延迟和质量下降;语言障碍限制了多语言语音通信中的人机交互效果;可扩展性和弹性要求在性能与基础设施成本之间取得平衡;跨浏览器和移动端兼容性需要大量开发投入,尤其对初创公司而言。本文介绍了一种基于 Amazon Nova 2 Sonic(Nova Sonic)和 Amazon Kinesis Video Streams WebRTC(WebRTC)的解决方案,可应对这些挑战。WebRTC 负责在不稳定网络中动态调整比特率,有助于在减少断连的同时维持音频质量。Nova Sonic 提供有效的人类语言对话能力,使用户能够以自己选择的语言进行更自然的交互。两项服务均由 AWS 全托管,因此可自动扩展并具备高弹性。AWS 还提供了开源示例,可作为您自己应用的起点。在本文中,我们将逐步介绍解决方案架构、实现模式以及两个真实场景示例。
Nova Sonic 与 WebRTC
传统的语音 agent 管道通常包含语音识别、语言处理和语音合成等独立模块。Nova Sonic 提供统一的语音到语音架构,能够以低延迟实现用户与 AI agent 之间的实时语音对话。通过统一的语音理解与生成,Nova Sonic 提供自然、类人的对话式 AI。Nova Sonic 模型提供不同的说话风格和用于外部 agent 的工具接口。您可以使用它构建响应更快、更直观且上下文感知能力更强的语音界面。
典型的流媒体管道包含三个主要组件:媒体源、媒体服务器和媒体消费者。上图展示了这些组件及其各自的协议,如 RTMP、RTSP、HLS、MPEG-DASH 和 WebRTC。
Web Real-Time Communication(WebRTC)是一种公共协议,通过提供无需额外插件或软件安装的实时点对点直接连接,实现了直播的现代化。这种方法消除了对中间服务器的需求,并显著降低了延迟。在所有媒体流协议中,WebRTC 实现了最低的延迟,如下图所示。
WebRTC 还包含自适应比特率(ABR)流、前向纠错(FEC)和抖动缓冲管理等内置功能。这些功能可自动调整带宽消耗,并解决弱连接环境下的丢包或抖动问题。即使在网络条件较差的情况下,您也能保持流畅的对话。WebRTC 的开源特性和广泛的浏览器兼容性(Chrome、Firefox、Safari、Edge、Android、iOS 等)将加速解决方案的采用并鼓励持续改进。它也非常适合与 AI 功能结合进行媒体流的实时处理。
解决方案架构
您可能希望在以下场景中部署具有多语言语音交互的直播解决方案:
- 联网车辆:为驾驶员提供实时翻译能力。
- 智能工厂:通过语音激活的质量控制系统支持跨文化操作员沟通。
- 机器人应用:提供多语言客户服务交互。
- 智能家居设备:以不同语言提供即时语音控制,通过实时音频翻译和视觉指导获得全球技术支持。
下图展示了如何将 Nova Sonic 解决方案与作为托管 WebRTC 服务的 Kinesis Video Streams 一起部署。图中展示了与流行来源(如检索增强生成(RAG)、模型上下文协议(MCP)和 Strands Agents)的工具集成。
[1] 在客户端 App 上,用户通过连接到 Kinesis Video Streams WebRTC 信令通道来建立 WebRTC 协商过程。音频和视频数据通过双向 WebRTC 连接传输。
[2] 在交换会话描述协议(SDP)offer/answer 和交互式连接建立(ICE)候选者的信令消息后,客户端和服务器发起双向对等连接尝试。然后,通过成功的 RTC 连接,视频和音频数据可以低延迟传输。
[3] 媒体通道处理实时音频和视频流,具备自适应比特率控制和编解码器协商功能。数据通道提供任意应用数据(如文本、文件和控制消息)的可靠有序传输。两者都使用数据报传输层安全(DTLS)加密和 STUN/TURN 协议进行网络地址转换(NAT)穿越。
[4] 语音到语音事件处理器协调与 Nova Sonic 的输入事件和输出事件交互。在我们的解决方案中,它们被分类为通过 WebRTC 媒体通道传输的媒体事件,以及通过 WebRTC 数据通道传输的文本数据。
[5] 您使用 Python SDK 建立 HTTP/2 连接,用于与 Nova Sonic 进行双向流式通信。该连接支持实时媒体数据通信,并为用户最小化延迟。
[6] 除了基于预训练知识的语音到语音音频对话外,Nova Sonic 还支持异步工具调用,以访问 MCP 服务器、Strands agents 或 RAG。本文通过示例演示了工具使用功能。
如果您已经在使用 Nova Sonic,您会注意到此架构与 WebSocket 解决方案类似。我将向您展示关键区别。
解决方案对比
与 WebSocket 部署选项相比,这种基于 WebRTC 的语音到语音解决方案提供了适用于移动和 IoT 设备的不同网络层。这些设备通常需要低延迟连接,而不需要高网络带宽。该解决方案还集成了自定义的语音活动检测(VAD)层,以增强用户体验。
音频流协议从 WebSocket 改为 WebRTC
语音数据通过 WebRTC 媒体通道以流式方式传输,即通过对等连接的音频轨道以安全实时传输协议(SRTP)格式传输,而非 WebSocket 消息。我们使用 aiortc Python 库实现了 WebRTC 功能(如 SDP offer/answer、DTLS、流控制传输协议(SCTP)、SRTP 和对等连接)。
人声检测机制
React WebRTC 客户端持续捕获音频并将其发送到 Python WebRTC 服务器。为了抑制噪声、提高语音准确性并减少 Nova Sonic 的音频 token,该解决方案在服务器端对管道应用了语音活动检测(VAD)。基于 Python WebRTCVAD 库的代码实现如下图所示。该库基于高斯混合模型(GMM),轻量、稳定且快速,适用于 WebRTC 帧级音频处理。您也可以使用其他库,如 Silero VAD、Pyannote VAD。
音频数据格式适配
WebRTC 定义了特定的音频和视频格式标准。通过 WebRTC 连接发送和接收音频数据时,必须进行一些格式适配:[1] 交错立体声帧需要提取左或右音频通道;[2] 48kHz 或其他采样率将重采样为 Nova Sonic API 要求的 16kHz;[3] Int16 数据值将转换为 Float32 以提高计算精度。更多信息,请参阅 GitHub 文档。
解决方案演练
此 GitHub 仓库中的解决方案提供了一个通用示例和两个特定场景示例:智能家居示例和联网车辆示例。您可以将这些模式适配到自己的应用中。
智能家居示例
在智能家居场景中,您与 Nova Sonic 进行对话以控制 IoT 设备。为了演示完整的命令管道,该解决方案使用 Amazon Bedrock Knowledge Base 检索 MQTT 主题并生成 AI 响应。然后,它连接到用于 AWS IoT Core 的 MCP 服务器以传递命令消息。完整架构如下图所示。设置步骤请参阅 GitHub 上的 smart-home readme。
联网车辆示例
在联网车辆场景中,系统建立实时监控以检测驾驶员危险使用手机的行为。系统使用语音助手询问是否需要帮助并验证驾驶员的注意力。监管人员可以通过独立的视频通道访问实时监控画面,以确认车辆和驾驶员的安全状态。以下架构解决了这一场景:
联网车辆场景中的完整媒体管道如下图所示。并发的 WebRTC 连接彼此独立,并具有专用的 TLS 加密。设置步骤请参阅 GitHub 上的 connected-vehicle readme。
结论
在本文中,我们展示了如何构建基于 WebRTC 的解决方案,该方案结合了 Amazon Nova 2 Sonic 和 Amazon Kinesis Video Streams WebRTC。该解决方案解决了直播中的常见障碍,例如不稳定网络下的性能下降以及缺乏对话智能。您可以将此解决方案作为基础,为智能设备和联网车辆的用户构建低延迟、智能、稳健且灵活的语音助手应用。
要开始使用并了解更多信息:
- 阅读语音到语音博客,了解最新的 Amazon Nova 2 Sonic 功能。
- 在 GitHub 上探索语音到语音仓库,了解更多场景。
- 查看 Amazon Kinesis Video Streams 开发者指南,了解更多直播用例。
关于作者
Zihang Huang 是 AWS 的 Agentic AI 专业解决方案架构师。他是联网车辆、智能家居、可再生能源和工业 IoT 领域的 agentic AI 专家。目前,他专注于使用 AgentCore、物理 AI、IoT、边缘计算和大数据的 AI 解决方案。
Lana Zhang 是 AWS 全球专业组织中的生成式 AI 高级专业解决方案架构师。她专攻 AI/ML,重点关注 AI 语音助手和多模态理解等用例。她与媒体娱乐、游戏、体育、广告、金融服务和医疗保健等不同行业的客户紧密合作,帮助他们通过 AI 转型业务解决方案。
Bin Chen 是 AWS 的生成式 AI 专业解决方案架构师,于 2019 年加入 AWS。他致力于帮助客户探索生成式 AI 的前沿,并使用 Amazon Bedrock 和 Amazon SageMaker 等服务将项目从概念验证推进到生产。他目前特别关注 Agentic AI 和端到端语音模型。
Siva Somasundaram 是 AWS 的高级工程师,为 Kinesis Video Streams 构建嵌入式 SDK 和服务器端组件。他在视频流服务领域拥有超过 15 年的经验,为大规模视频摄取开发了媒体处理管道、转码和安全功能。他的专长涵盖视频压缩、WebRTC、RTSP 和视频 AI。他热衷于创建支持语义搜索、RAG 体验并突破视频技术边界的元数据枢纽。