Build real-time voice streaming applications with Amazon Nova Sonic and WebRTC

TL;DR · AI 摘要
本文介绍了如何使用Amazon Nova Sonic和WebRTC构建实时语音流应用,解决网络带宽限制、语言障碍、扩展性和跨浏览器兼容性等问题,提供低延迟、高质量的多语言语音交互。
核心要点
- Amazon Nova Sonic提供统一的语音到语音架构,支持实时低延迟的人机对话。
- WebRTC通过自适应比特率调整和前向纠错功能,在弱网络条件下也能维持流畅的语音交流。
- AWS提供的解决方案自动扩展并具有高弹性,适用于连接车辆、智能工厂、机器人和智能家居等场景。
结构提纲
按章节快速跳转。
- §引言
本文探讨了构建实时语音流应用面临的挑战及解决方案。
Nova Sonic提供统一的语音到语音架构,WebRTC通过自适应比特率调整和前向纠错功能,确保在弱网络条件下的流畅语音交流。
本文展示了如何部署Nova Sonic和Kinesis Video Streams作为管理的WebRTC服务,适用于多种应用场景。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- 实时语音流应用
金句 / Highlights
值得收藏与分享的关键句。
WebRTC通过自适应比特率调整和前向纠错功能,在弱网络条件下也能维持流畅的语音交流。
Nova Sonic提供统一的语音到语音架构,支持实时低延迟的人机对话。
AWS提供的解决方案自动扩展并具有高弹性,适用于连接车辆、智能工厂、机器人和智能家居等场景。
使用 Amazon Nova Sonic 和 WebRTC 构建实时语音流应用程序 | Amazon Web Services
URL 源:https://aws.amazon.com/blogs/machine-learning/build-real-time-voice-streaming-applications-with-amazon-nova-sonic-and-webrtc/
发布时间:2026-05-13T09:46:19-08:00
Markdown 内容: 构建端到端的实时流媒体应用并实现语音互动面临诸多挑战:网络带宽限制可能导致高延迟和关键时间应用中的音质下降。语言障碍限制了多语言语音通信中的人机有效互动。可扩展性和弹性需要在性能和基础设施成本之间取得艰难的平衡。跨浏览器和移动设备兼容性需要付出巨大的开发努力,尤其是对于初创公司而言。
本文介绍了一种基于 Amazon Nova 2 Sonic (Nova Sonic) 和 Amazon Kinesis Video Streams WebRTC (WebRTC) 的解决方案,以应对这些挑战。WebRTC 负责在网络不稳定的情况下动态调整比特率,有助于在减少断连的同时保持音频质量。Nova Sonic 提供有效的语言对话,使用户能够以他们选择的语言进行更自然的互动。这两个服务均由 AWS 全面管理,因此它们可以自动扩展,并具有高弹性。AWS 还提供了开源示例,您可以将其作为自己的应用程序的起点。
本文将介绍该解决方案的架构、实现模式以及两个实际场景示例。
Nova Sonic 和 WebRTC
传统的语音代理管道通常涉及语音识别、语言处理和语音合成的单独模块。Nova Sonic 提供了一个统一的语音到语音架构,使用户与 AI 代理之间的低延迟实时语音对话成为可能。

通过统一的语音理解和生成,Nova Sonic 可提供自然、类人的对话人工智能。Nova Sonic 模型提供了不同的说话风格和外部代理的工具接口。您可以使用它来构建一个更具响应性和直观性的语音界面,具有更高的上下文感知能力。

典型的流媒体管道由三个主要组件组成:媒体源、媒体服务器和媒体消费者。上图显示了这些组件及其相应的协议,例如 RTMP、RTSP、HLS、MPEG-DASH 和 WebRTC。
Web 实时通信 (WebRTC) 是一种现代化的公共协议,通过提供实时的点对点直接连接,无需额外的插件或软件安装,革新了直播流媒体。这种方法消除了中间服务器的需求,并显著降低了延迟。在所有媒体流协议中,WebRTC 提供了最低的延迟,如下图所示。

WebRTC 还包括内置功能,如 自适应比特率 (ABR) 流、前向纠错 (FEC) 和 抖动缓冲区 管理。这些功能可以自动调整带宽消耗,并解决弱连接中的丢包或抖动问题。即使在网络条件不佳的情况下,您也可以保持流畅的对话。
WebRTC 的开源性质和广泛的浏览器兼容性(Chrome、Firefox、Safari、Edge、Android、iOS 等)将加速解决方案的采用,并鼓励持续改进。它也非常适合具有 AI 功能的媒体流的实时处理。
解决方案架构
您可能希望针对以下场景部署具有多语言语音交互的实时流媒体解决方案:联网车辆,具备实时翻译能力,帮助驾驶员。智能工厂,通过语音激活的质量控制系统支持跨文化的操作员沟通。机器人 应用程序,提供多语言客户服务互动。智能家居 设备,提供不同语言的即时语音控制,以便通过实时音频翻译和视觉指导获得全球技术支持。
下图展示了如何结合 Kinesis Video Streams 作为管理的 WebRTC 服务一起部署 Nova Sonic 解决方案。它展示了与流行来源(如检索增强生成 (RAG)、模型上下文协议 (MCP) 和 Strands Agents)的工具集成。

[1] 在客户端应用上,用户通过连接到 Kinesis Video Streams WebRTC 信令通道来建立 WebRTC 协商过程,从而启动双向 WebRTC 连接。音频和视频数据通过双向 WebRTC 连接传输。
[2] 在交换了 会话描述协议 (SDP) offer/answer 和 交互式连接建立 (ICE) 候选人 的信令消息后,客户端和服务器发起双向对等连接尝试。然后,视频和音频数据可以通过成功的 RTC 连接以低延迟传输。
媒体通道处理具有自适应比特率控制和编解码器协商的实时音视频流。数据通道提供可靠有序的应用程序数据传输,例如文本、文件和控制消息。两者都使用数据报传输层安全 (DTLS) 加密以及 NAT 穿越实用程序 (STUN)/通过 NAT 的中继穿越 (TURN) 协议来实现网络地址转换 (NAT) 穿越。
语音到语音事件处理器协调与 Nova Sonic 的输入事件 和 输出事件 交互。在我们的解决方案中,这些事件被分类为通过 WebRTC 媒体通道传输的媒体事件,以及通过 WebRTC 数据通道传输的文本数据。
您使用 Python SDK 建立一个 HTTP/2 连接,以实现与 Nova Sonic 的双向流通信。此连接支持实时媒体数据通信,并尽量减少用户的延迟。
除了使用预训练知识进行语音到语音音频对话外,Nova Sonic 还支持 异步工具调用,以访问 MCP 服务器、Strands 代理或 RAG。本文档通过示例演示了工具使用功能。
如果您已经在使用 Nova Sonic,您会注意到该架构与 WebSocket 解决方案类似。我将向您展示关键区别。
解决方案对比
与 WebSocket 部署 选项相比,这个基于 WebRTC 的语音到语音解决方案提供了适用于移动和物联网设备的不同网络层。这些设备通常需要低延迟连接而不需要高带宽网络。该解决方案还集成了定制化的语音活动检测 (VAD) 层,以增强用户体验。
音频流协议从 WebSocket 改为 WebRTC
语音数据通过 WebRTC 媒体通道以流的方式传输,即通过 安全实时传输协议 (SRTP) 格式的对等连接音频轨道,而不是 WebSocket 消息。我们使用 aiortc Python 库实现了 WebRTC 特性(如 SDP offer/answer、DTLS、流控制传输协议 (SCTP)、SRTP 和对等连接)。

人类语音检测机制
React WebRTC 客户端持续捕获音频并将其发送到 Python WebRTC 服务器。为了抑制噪音、提高语音准确性并减少 Nova Sonic 的音频令牌,该解决方案在服务器端应用了 语音活动检测 (VAD)。基于 Python WebRTCVAD 库 的代码实现如图所示。该库基于高斯混合模型 (GMM),轻量、稳定且快速,适合 WebRTC 帧级音频处理。您还可以使用其他库,例如 Silero VAD、Pyannote VAD。

音频数据格式适配
WebRTC 定义了特定的音频和视频格式标准。当通过 WebRTC 连接发送和接收音频数据时,必须进行一些格式适配:[[1]](https://github.com/aws-samples/sample-nova-sonic-speech2speech-webrtc/blob/main/docs/AudioDataAdaption.md#interleaved-layout-unpacking) 交错立体声帧需要提取左声道或右声道;[[2]](https://github.com/aws-samples/sample-nova-sonic-speech2speech-webrtc/blob/main/docs/AudioDataAdaption.md#sampling-rate-48khz-to-16khz) 48kHz 或其他采样率将重新采样为 16kHz,以符合 Nova Sonic API 的要求;[[3]](https://github.com/aws-samples/sample-nova-sonic-speech2speech-webrtc/blob/main/docs/AudioDataAdaption.md#type-conversion-from-int16-to-float32) Int16 数据值将转换为 Float32,以增强计算精度。有关更多信息,请参阅 GitHub 文档。
解决方案概述
此 GitHub 仓库 提供了一个通用示例和两个具体场景示例:智能家居示例和联网汽车示例。您可以根据自己的应用程序调整这些模式。
智能家居示例
在智能家居场景中,您可以通过与 Nova Sonic 对话来控制物联网设备。为了展示完整的命令管道,解决方案使用 Amazon Bedrock 知识库 来检索 MQTT 主题并生成 AI 响应。然后它连接到 AWS IoT Core 的 MCP 服务器 以传递命令消息。完整的架构如图所示。

对于设置步骤,请参阅 GitHub 上的 智能家庭 readme。
车联网示例
在车联网场景中,系统建立了实时监控以检测驾驶员的危险手机使用行为。系统使用语音助手询问是否需要帮助,并验证驾驶员的注意力。监督人员可以通过独立的视频通道访问实时监控流,确认车辆和驾驶员的安全状态。以下架构解决了这一场景:

车联网场景中的完整媒体管道如下图所示。并发的 WebRTC 连接彼此独立,具有专用的 TLS 加密。

对于设置步骤,请参阅 GitHub 上的 车联网 readme。
结论
在这篇文章中,我们向您展示了如何构建一个基于 WebRTC 的解决方案,该方案结合了 Amazon Nova 2 Sonic 和 Amazon Kinesis Video Streams WebRTC。此解决方案解决了直播流媒体中的常见障碍,例如不稳定网络下的性能下降以及缺乏对话智能。您可以以此为基础,为智能设备和车联网用户构建自己的低延迟、智能、稳健且灵活的语音助手应用程序。
要开始并了解更多内容:
- 阅读 语音到语音博客,了解最新的 Amazon Nova 2 Sonic 功能。
- 探索 GitHub 上的 语音到语音仓库,了解更多场景。
- 查看 Amazon Kinesis Video Streams 开发者指南,了解更多直播流用例。
- * *