目 录CONTENT

文章目录

使用 Amazon Nova Sonic 让您的 Web 应用实现免提操作

Administrator
2025-11-15 / 0 评论 / 0 点赞 / 1 阅读 / 0 字

📢 转载信息

原文链接:https://aws.amazon.com/blogs/machine-learning/make-your-web-apps-hands-free-with-amazon-nova-sonic/

原文作者:Manu Mishra, AK Soni, and Raj Bagwe


几十年来,图形用户界面(GUI)一直是主流,但如今的用户越来越希望能够与他们的应用程序进行对话。Amazon Nova Sonic 是来自 Amazon Bedrock 的一项前沿基础模型,它通过简单的流式 API 提供自然、低延迟的双向语音对话,帮助实现这一转变。用户可以通过语音和嵌入式智能与应用程序协作,而不仅仅是操作它们。

在本文中,我们将展示如何为参考应用程序——Smart Todo App(智能待办事项应用)——添加一个真正的“语音优先”体验,将日常任务管理转变为流畅的免提对话。

通过协作式 AI 语音代理重新思考用户交互

重要的可用性增强功能常常被推迟——并非因为它们没有价值,而是因为它们在传统的鼠标键盘界面中难以实现。像智能批量操作、个性化工作流或语音引导协助等功能,经常被讨论但因 UI 复杂性而被搁置。这关乎将语音作为一种额外的、通用的交互模式——而不是替代特定于设备的控件或仅用于辅助功能的解决方案。语音不仅能实现新的交互模式,它还通过提供额外的、包容性的应用交互方式,使使用辅助技术的用户(如屏幕阅读器用户)受益。

Amazon Nova Sonic 的能力远不止于一次性的语音命令。该模型可以规划多步骤工作流、调用后端工具,并在多轮对话中保持上下文,以便您的应用程序能够与用户协作

下表展示了来自不同应用领域(如任务管理、CRM 和服务台)的语音交互示例:

语音交互(示例短语) 意图/目标 系统操作/行为 确认/用户体验
将我所有的任务标记为已完成。 批量完成任务 查找用户的未完成任务 → 标记完成
→ 如果配置了,则存档
所有 12 个未完成任务均已标记完成。
为准备第三季度预算创建一个计划:将其分解为步骤、指定所有者并设定截止日期。 创建多步骤工作流 生成计划 → 创建任务 → 分配
所有者 → 设定截止日期 → 呈现审查选项
创建了包含 6 个任务的计划。需要通知
所有者吗?
查找亚太地区 ARR 超过 100 万美元的企业潜在客户并起草个性化外联信息。 构建目标潜在客户列表并起草
外联信息
查询 CRM → 汇总过滤后的列表 →
起草个性化消息供审查
起草了 24 条个性化外联消息。审查并发送?
将过去 24 小时内打开的所有 P1 票据设为最高优先级并分配给值班人员。 分诊和分配 过滤票据 → 设置优先级 → 分配
给值班人员 → 记录更改
12 个 P1 票据已设置优先级并分配给
值班团队。

Amazon Nova Sonic 理解意图、调用所需的 API 并确认结果——无需填写表单。这有助于创造一个生产力倍增、上下文成为界面的环境。这并非要取代传统 UI,而是要通过语音解锁新的功能。

示例应用概览

通过 Smart Todo 参考应用,用户可以在待办事项列表中创建待办事项和管理笔记。该应用为任务跟踪和笔记整理提供了一个专注而灵活的界面。通过添加语音功能,该应用成为一种免提体验,解锁了更自然、更高效的交互。在 Smart Todo App 中,用户可以这样说:

  • “为项目章程添加一条跟进笔记。”
  • “存档所有已完成的任务。”

在每个命令的背后,都执行着专注的操作——如创建新笔记、整理内容或更新任务状态——这些操作通过语音以一种感觉自然而高效的方式执行。

Amazon Nova Sonic 双向 API 的工作原理

Amazon Nova Sonic 实现了实时、双向的流式架构。在通过 InvokeModelWithBidirectionalStream 初始化会话后,音频输入和模型响应会通过一个开放的流同时流动:

  • 会话开始 – 客户端发送一个 sessionStart 事件,其中包含模型配置(例如,温度和 topP)。
  • 提示和内容开始 – 客户端发送结构化事件,指示即将到来的数据是音频、文本还是工具输入。
  • 音频流式传输 – 麦克风音频作为 base64 编码的音频输入事件流式传输。
  • 模型响应 – 随着模型处理输入,它会异步地流式传输以下响应:
    • 自动语音识别 (ASR) 结果
    • 工具使用调用
    • 文本响应
    • 用于播放的音频输出
  • 会话关闭 – 通过发送 contentEndpromptEndsessionEnd 事件来明确关闭对话。

Nova Sonic 架构图

您可以使用这种事件驱动的方法来中断助手(即“抢插”/barge-in)、启用多轮对话并支持实时适应性。

解决方案架构

对于此解决方案,我们采用了无服务器应用程序架构模式,其中 UI 是一个 React 单页应用程序。React 单页应用与在服务器端容器上运行的后端 Web API 集成。Smart Todo App 使用可扩展且安全意识强的 AWS 架构进行部署,该架构旨在支持实时语音交互。下图概述了协同工作的 AWS 服务,以支持支持语音功能的应用程序的双向流式传输需求。

关键 AWS 服务包括:

  • Amazon Bedrock – 通过 Amazon Nova Sonic 基础模型支持实时、双向语音交互。
  • Amazon CloudFront – 一个 内容分发网络 (CDN),以低延迟在全球分发应用程序。它将 /(root) 流量路由到托管在 Amazon S3 存储桶上的 React 应用程序,并将 /api/novasonic 流量路由到应用程序负载均衡器。
  • AWS Fargate for Amazon Amazon Elastic Container Service (Amazon ECS) – 运行用于 WebSocket 处理和 REST API 的后端容器化服务,能够支持长期存在的双向流。
  • 应用程序负载均衡器 (ALB) – 将 Web 流量 /api(HTTPS REST API 调用)转发到后端 ECS 服务,处理 Smart Todo App API,并将 /novasonicWebSocket 连接)转发到管理与 Amazon Nova Sonic 实时语音流的 ECS 服务。
  • Amazon Virtual Private Cloud (Amazon VPC) – 为后端服务提供网络隔离和安全。公有子网托管应用程序负载均衡器 (ALB),私有子网托管运行 WebSocket 和 REST API 的 ECS Fargate 任务。
  • NAT 网关允许私有子网中的 Amazon ECS 任务更安全地连接到互联网,用于执行 Cognito JWT 令牌验证端点等操作。
  • Amazon Simple Storage Service (Amazon S3) – 托管用于用户交互的 React 前端。
  • AWS WAF – 帮助保护应用程序负载均衡器 (ALB) 免受恶意流量攻击,并在应用程序层强制执行安全规则。
  • Amazon Cognito – 管理身份验证并颁发令牌。
  • Amazon DynamoDB – 存储应用程序数据,如待办事项列表和笔记。

下图说明了如何以支持低延迟双向流的方式来提供用户请求。

请求工作流程

部署解决方案

为了评估此解决方案,我们在 GitHub 仓库中提供了 Smart Todo App 的示例代码。

Smart Todo App 由多个独立的 Node.js 项目组成,包括一个 CDK 基础设施项目、一个 React 前端应用程序以及后端 API 服务。部署工作流程确保组件被正确构建并与 Amazon Cognito、Amazon DynamoDB 和 Amazon Bedrock 等 AWS 服务集成。

先决条件

部署步骤

  1. 克隆以下仓库:
git clone https://github.com/aws-samples/sample-amazon-q-developer-vibe-coded-projects.git cd NovaSonicVoiceAssistant
  1. 对于首次部署,请使用以下自动化脚本:
npm run deploy:first-time

此脚本将执行以下操作:

  • 使用 npm(node 包管理器)安装依赖项
  • 使用本地安装的 docker 引擎构建组件和容器镜像
  • 使用 CDK 部署基础设施 (CDK BootStrap ==> CDK Synth ==> CDK Deploy)
  • 使用 Amazon Cognito 设置更新环境变量
  • 使用更新后的环境变量重建 UI
  • 部署最终基础设施 (CDK Deploy)

验证部署

部署成功后,请完成以下步骤:

  1. 访问 CDK 输出中提供的 Amazon CloudFront URL。
    注意:图中显示的 URL 仅供参考,每次部署都会获得一个唯一的 URL。

    成功部署的屏幕截图

  2. 通过“创建账户”部分注册新用户。

    创建用户并登录

  3. 测试语音功能以验证与 Amazon Nova Sonic 的集成。下图说明了已登录用户与 Amazon Bedrock 代理之间的对话。AI 代理能够调用现有 API,UI 会实时更新以反映代理的操作。

    向应用程序授予麦克风访问权限

    Smart Todo App 中的语音交互

清理

您可以使用以下命令移除堆栈。

# 移动到 infra 文件夹,假设您在项目根目录 cd infra # 移除 AWS 堆栈 npm run destroy

后续步骤

语音不仅仅是一个辅助性的附加功能——它正成为复杂工作流的主要界面。
事实证明,说话比选择更快——特别是当您的应用程序会与您对话时。

请尝试以下资源以开始使用。

  • 示例代码仓库 – 一个您可以本地运行的、可用的 Amazon Nova Sonic 集成。了解端到端如何实现实时语音交互、意图处理和多步骤流程。
  • Amazon Nova Sonic 实践操作研讨会 – 一个指导性实验,引导您完成在您的 AWS 账户中部署 Amazon Nova Sonic 并测试原生语音功能。
  • Amazon Nova Sonic 文档 – 提供 API 参考、流式传输示例和最佳实践,以帮助您设计和部署由语音驱动的工作流。
  • 联系您的 AWS 客户经理,了解有关 AI 驱动的解决方案如何变革您的运营的更多信息。



🚀 想要体验更好更全面的AI调用?

欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。

0

评论区