只需说句话,Nova Sonic帮你管理待办事项!

数十年来,图形用户界面一直占据主流地位,如今用户愈发期望能与应用程序直接对话交流。Amazon Nova Sonic是Amazon Bedrock上一款先进基础模型(FM),它通过简洁的流式API实现自然流畅、低延迟的双向语音对话功能,助力实现这一愿景。用户不再是单纯操作应用,而是能够借助语音与嵌入式智能,与应用程序展开协作。

本文将以一款智能待办App(Smart Todo App)为例,介绍为应用程序打造真正以语音为核心的交互体验,将常规任务管理转化为流畅便捷的免提式语音对话流程。

基于协作式AI语音助手

重新定义用户交互模式

在产品开发过程中,一些对提升用户体验至关重要的改进,往往会被置于次要地位。这并非因为它们缺乏价值,而是由于在传统键鼠交互模式下,这些功能改进的实现难度较大。诸如智能批量操作、个性化工作流设置、语音引导辅助等功能,常常因用户界面的复杂性,陷入反复研讨却迟迟无法落地的困境。

需要明确的是,语音交互是一种额外的通用交互模式,它既不会取代设备原有的特定操控方式,也绝非仅仅是为有特殊需求的用户提供无障碍解决方案。语音技术不仅能催生全新的交互模式,还能为屏幕阅读器等辅助技术使用者提供一种更加包容、多元的交互途径,让这些用户也能顺畅地与应用程序进行互动。

Amazon Nova Sonic远不止能处理单次语音指令,该模型能够规划多步骤工作流、调用后端工具,并在多轮对话中维持上下文连贯性,让应用程序能够与用户展开高效协作。

下表展示了任务管理、客户关系管理(CRM)、技术支持中心等不同应用领域的语音交互示例。

Amazon Nova Sonic可精准识别用户意图、调用所需API,并向用户反馈确认执行结果,全程无需填写任何表单。这有助于打造一个效率倍增的全新应用环境,其中交互不再依赖传统的界面元素,而是以具体的上下文信息作为交互的核心依据。需要明确的是,它并非要用语音取代传统用户界面,而是致力于通过语音技术,为用户解锁更多全新的功能体验。

示例应用概览

借助智能待办App,用户可创建待办事项清单,并在清单内管理相关笔记。该应用提供了一个简洁灵活的交互界面,便于用户跟踪任务进度和整理笔记内容。集成语音功能后,这款应用实现了免提操作模式,让用户能够获得更自然更高效的交互体验。

在该应用中,用户只需开口下达指令,例如:

  • 添加一条备注,提醒我跟进项目章程的相关事宜

  • 归档所有已完成的任务

每一条指令背后,都对应着一系列精准的操作,例如新建笔记、整理内容或更新任务状态等,这些操作均通过语音指令完成,整个过程自然流畅、高效便捷。

Amazon Nova Sonic

双向API的工作原理

Amazon Nova Sonic采用实时双向流式传输架构。

通过InvokeModelWithBidirectionalStream启动会话后,音频输入与模型响应将依托持续连接的数据流实现同步传输。

1.会话启动:客户端发送一个包含模型配置(如温度系数、topP参数)的sessionStart事件。

2.提示词与内容启动:客户端发送结构化事件,用于标识后续传输的数据类型为音频、文本还是工具输入。

3.音频流式传输:麦克风采集的音频以base64编码的音频输入事件形式进行流式传输。

4.模型响应:模型在处理输入的过程中,会异步流式返回以下响应内容:

  • 自动语音识别(ASR)结果

  • 工具调用指令

  • 文本响应

  • 用于播放的音频输出

5.会话结束:客户端发送contentEnd、promptEnd及sessionEnd事件,来终止会话。

Amazon Nova Sonic架构图

借助这种事件驱动型的架构,用户能够在语音助手输出内容时打断它(实现中途插入操作),轻松开启多轮对话,还能让系统根据实时情况动态调整适配。

解决方案架构

本解决方案采用无服务器应用架构模式,其中用户界面为一款React单页应用。该React单页应用与运行在服务端容器的后端Web API相集成。智能待办APP基于一套兼具可扩展性与安全性的亚马逊云科技架构进行部署,该架构专为支持实时语音交互而设计。

下图展示了各项亚马逊云科技服务如何协作,以满足语音应用双向流传输需求的架构概览。

该解决方案架构包括以下核心亚马逊云科技服务:

1.Amazon Bedrock:基于Amazon Nova Sonic基础模型,实现实时双向语音交互。

2.Amazon CloudFront:一款可低延迟分发应用至全球各地的内容分发网络(CDN)。该服务将/(root)流量路由至托管于Amazon S3存储桶中的React前端应用,同时将/api和/novasonic路径流量路由至应用负载均衡器(Application Load Balancer,ALB)。

3.Amazon Fargate for Amazon ECS:运行后端容器化服务,负责处理WebSocket连接及支持长连接双向流式传输的REST API。

4.应用负载均衡器(ALB):将Web流量/api(HTTPS REST API调用)转发至负责处理智能待办应用API的后端ECS服务;同时将/novasonic(WebSocket连接)转发至基于Amazon Nova Sonic管理实时语音流的ECS服务。

5.Amazon VPC:为后端服务提供网络隔离与安全防护。公有子网托管应用负载均衡器,私有子网则部署运行WebSocket和REST API的ECS Fargate任务。

6.NAT网关:允许私有子网内的Amazon ECS任务更安全地访问互联网,以执行诸如Cognito JWT token验证端点等操作。

7.Amazon S3:托管用于用户交互的React前端应用。

8.Amazon WAF:助力防护应用负载均衡器免受恶意流量侵袭,并在应用层强制执行安全规则。

9.Amazon Cognito:负责身份验证管理及token签发。

10.Amazon DynamoDB:存储待办事项清单、笔记等应用数据。

下图展示了系统如何支持低延迟双向流式传输,从而响应用户请求的处理流程。

请求处理工作流

部署解决方案

如需评估本解决方案,您可参阅GitHub代码库中提供的智能待办APP的示例代码。

GitHub代码库:

https://github.com/aws-samples/sample-amazon-q-developer-vibe-coded-projects/tree/main/NovaSonicVoiceAssistant

智能待办APP由多个相互独立的Node.js项目构成,其中包括一个CDK基础设施项目、一个React前端应用以及后端API服务。该部署流程可确保正确构建各类组件,并集成Amazon Cognito、Amazon DynamoDB、Amazon Bedrock等亚马逊云科技服务。

准备条件

1.具备相应权限的亚马逊云科技账户,需遵循安全最佳实践,包括最小权限原则。

2.本地已安装并运行Docker Engine,用于在本地构建容器镜像。

3.Amazon Web Services CLI已配置亚马逊云科技管理员凭证。

4.已安装Node.js(版本≥20.x及npm)。

5.已在Amazon Bedrock中启用Amazon Nova Sonic。更多信息,请参阅《添加或移除对Amazon Bedrock基础模型的访问权限》。

《添加或移除对Amazon Bedrock基础模型的访问权限》

https://docs.aws.amazon.com/bedrock/latest/userguide/model-access-modify.html

部署步骤

1.克隆以下代码库。

git clone https://github.com/aws-samples/sample-amazon-q-developer-vibe-coded-projects.gitcd NovaSonicVoiceAssistant

左右滑动查看完整示意

2.首次部署时,请执行以下自动化脚本。

npm run deploy:first-time

左右滑动查看完整示意

该脚本将执行以下操作:

  • 使用npm(Node包管理器)安装依赖包。

  • 借助本地已安装的Docker Engine构建组件及容器镜像。

  • 使用CDK部署基础设施(执行流程为:CDK BootStrap→CDK Synth→CDK Deploy)。

  • 使用Amazon Cognito的设置更新环境变量。

  • 基于更新后的环境变量重新构建用户界面。

  • 部署最终的基础设施(执行CDK Deploy)。

验证部署结果

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

1.访问CDK输出结果中提供的Amazon CloudFront网址。

注:图示网址仅供参考,每次部署都会生成唯一专属网址。

部署成功的截图

2.通过注册板块创建账户,完成创建新用户。

创建用户并登录

3.测试语音功能,以验证其与Amazon Nova Sonic的集成效果。下图展示了已登录用户与Amazon Bedrock Agent的对话交互过程。该AI Agent可调用现有API,用户界面也会实时更新,以同步呈现Agent的操作状态。

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

智能待办App中的语音交互功能

清理

您可以使用以下命令,来移除这些堆栈。

# move to the infra folder, assuming you are in the project’s root foldercd infra# Removes the AWS stacknpm run destroy

左右滑动查看完整示意

后续步骤

语音绝非仅仅是为提升无障碍体验而增设的附加项,它正日益成为复杂业务流程中的核心交互方式。

事实证明,通过语音交流的效率远高于手动选择操作,特别是在应用能进行语音反馈的情况下,这种优势更为显著。

您可借助以下资源,开启探索之旅:

  • 示例代码库:提供可直接在本地运行的Amazon Nova Sonic完整集成方案,您可从中了解实时语音交互、意图识别及多步骤流程的端到端实现方法。

  • Amazon Nova Sonic hands-on workshop:这项引导式实验课程将指导您在个人亚马逊云科技账户中,部署Amazon Nova Sonic以及测试原生语音功能。

  • Amazon Nova Sonic文档:涵盖API参考、流式传输示例及最佳实践方案,帮助您设计并部署语音驱动的工作流程。

示例代码库:

https://github.com/aws-samples/sample-amazon-q-developer-vibe-coded-projects/tree/main/NovaSonicVoiceAssistant

Amazon Nova Sonic hands-on workshop:

https://catalog.us-east-1.prod.workshops.aws/workshops/5238419f-1337-4e0f-8cd7-02239486c40d/en-US

Amazon Nova Sonic文档:

https://docs.aws.amazon.com/nova/latest/userguide/speech.html

本篇作者

Manu Mishra

亚马逊云科技的高级解决方案架构师,专注于AI、数据与分析及安全领域。他的专业能力覆盖战略规划与实操技术指导,负责审阅并指导内部团队工作及外部客户项目。Manu致力于携手亚马逊云科技客户制定技术战略,助力达成高价值的业务成果,确保技术方案与企业目标高度契合。

AK Soni

亚马逊云科技企业级技术支持团队的高级技术客户经理。他凭借前瞻性指导,协助企业客户落地符合行业最佳实践的创新云技和人工智能与机器学习解决方案,助力客户达成业务目标。他拥有超过19年的企业应用架构与开发经验,凭借在生成式AI技术领域的专业能力,助力客户优化业务运营,突破现有技术瓶颈。

Raj Bagwe

亚马逊云科技的高级解决方案架构师,常驻美国加利福尼亚州旧金山。他在亚马逊云科技任职超6年,致力于协助客户攻克各类复杂的技术挑战,专业领域涵盖云架构设计、安全防护与系统迁移等。

新用户注册海外区域账户,可获得最高200美元服务抵扣金,覆盖Amazon Bedrock生成式AI相关服务。“免费计划”账户类型,确保零花费,安心试用。

星标不迷路,开发更极速!

关注后记得星标「亚马逊云开发者」

听说,点完下面4个按钮

就不会碰到bug了!

点击阅读原文查看博客!获得更详细内容!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1099158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手把手教你辨别Proteus元件库中的蜂鸣器类型

蜂鸣器仿真总出问题?一文搞懂Proteus里那些“名字一样、行为不同”的Buzzer!你有没有遇到过这种情况:在Proteus里搭好电路,单片机代码也写得没问题,结果一运行——该响的蜂鸣器一声不吭?或者更离谱的是&…

Windows平台PyTorch安装全流程:配合Miniconda-Python3.11镜像

Windows平台PyTorch安装全流程:配合Miniconda-Python3.11镜像 在深度学习项目开发中,最让人头疼的往往不是模型设计本身,而是环境搭建过程中那些“明明代码没问题却跑不起来”的诡异问题。尤其是在Windows系统上,Python版本冲突、…

Linux终端常用命令:管理Miniconda中的PyTorch环境

Linux终端高效管理Miniconda中的PyTorch环境 在AI项目开发中,你是否曾遇到过这样的场景:刚配置好的PyTorch环境,换一台机器就跑不起来?或者同事复现你的实验时,因为某个包版本不一致导致结果完全不同?更别提…

MPRPC项目(第九天,新增服务以及controller实现)

一、新增服务提供 两个都与用户登录没有什么区别 1、friend.proto syntax "proto3";package fixbug;option cc_generic_services true;message ResultCode{int32 errcode 1;bytes errmsg 2; }message GetFriendListRequest{uint32 userid 1; } message GetFri…

CUDA安装成功但torch.version.cuda为空?重装PyTorch试一试

CUDA安装成功但torch.version.cuda为空?重装PyTorch试一试 在深度学习开发中,你是否曾遇到这样的场景:系统明明已经正确安装了NVIDIA驱动和CUDA工具包,nvidia-smi也能清晰列出GPU信息,可一旦进入Python环境执行import …

PCB过孔与电流对照一览表快速理解手册

过孔载流能力全解析:一张表看懂PCB大电流设计的关键你有没有遇到过这种情况——电路板上某个MOSFET突然烧了,查来查去发现不是器件问题,而是地回路的过孔被击穿了?或者在调试一个10A输出的DC-DC模块时,红外热像仪一扫&…

CUDA安装后ldconfig未更新?手动添加库路径解决问题

CUDA安装后ldconfig未更新?手动添加库路径解决问题 在部署深度学习环境时,你是否遇到过这样的场景:明明已经安装了完整的CUDA Toolkit,NVIDIA驱动也正常工作,PyTorch或TensorFlow却始终无法启用GPU?运行 to…

傅里叶变换杀回来了!搞定图像分割、降噪、跨域,顶刊思路赶紧跟上!

傅里叶变换作为经典的频域分析工具,已成为图像处理领域突破性能瓶颈的核心技术之一。其能够将图像从空域分解为频域分量,精准分离信号与噪声、结构与细节,为解决玻璃分割边界模糊、海洋雪噪声干扰、跨域分布偏移等传统难题提供了全新思路。为…

CUDA安装后nvidia-smi可用但torch.cuda.is_available()为False怎么办

CUDA安装后nvidia-smi可用但torch.cuda.is_available()为False怎么办 在深度学习开发中,你可能遇到过这样令人困惑的场景:服务器上运行 nvidia-smi 能清晰看到GPU信息,驱动正常加载,显存使用情况一目了然——一切看起来都完美无缺…

Markdown文档记录实验过程:搭配Miniconda环境变量说明

基于 Miniconda 与 Markdown 的 AI 实验可复现实践 在今天的人工智能研究中,一个让人哭笑不得的常见场景是:某位同学兴冲冲地展示训练结果,“模型准确率达到了98%!”——但当其他人尝试复现时,却卡在环境依赖上&#x…

Android16 默认关闭touch声音

项目需要把touch声音屏蔽掉,比如触摸反馈的声音,USB触摸切换的声音。 查看Android提供的标准API: mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); private void setSoundEffectsEnabled(boolean enabled) {if (enabled) {mAudioManage…

WinDbg调试USB驱动通信过程:实战项目完整示例

深入内核:用 WinDbg 实战定位 USB 音频驱动延迟问题你有没有遇到过这样的场景?一款高保真 USB 音频设备在播放时突然“咔哒”一声,出现爆音或卡顿。用户反馈说“像是断了一拍”,而你的应用层日志却干干净净,没有任何错…

高等线性代数、数学分析复习大纲

高等线性代数 graph TD%% 基础核心F[数域] --> V[向量空间]V --> LI[线性无关]LI --> BASIS[基与维数]V --> LM[线性映射]LM --> IMKER[像与核]IMKER --> RNT[秩零化度定理]%% 矩阵部分BASIS -->…

Miniconda-Python3.11环境变量详解:掌握HOME、PATH等关键字段

Miniconda-Python3.11环境变量详解:掌握HOME、PATH等关键字段 在现代数据科学和AI开发中,一个常见的痛点是:为什么代码在我机器上跑得好好的,换台机器就报错? 问题往往不在于代码本身,而在于“环境”——Py…

小白也能学会的PyTorch安装教程GPU版本详细步骤

小白也能学会的PyTorch安装教程GPU版本详细步骤 在如今深度学习遍地开花的时代,无论是做图像识别、语音合成还是大模型训练,几乎都绕不开一个名字——PyTorch。它以简洁直观的设计和强大的 GPU 加速能力,成了科研圈和工业界的“香饽饽”。但对…

企业级AI开发规范:基于Miniconda的环境声明式配置方案

企业级AI开发规范:基于Miniconda的环境声明式配置方案 在当今AI研发节奏日益加快的背景下,一个看似微不足道却频繁引发项目延误的问题正困扰着无数团队——“为什么我的代码在你机器上跑不起来?”这个问题背后,往往不是算法逻辑错…

基于STM32的LED阵列扫描控制实战案例

从零打造一个会“说话”的LED屏:基于STM32的汉字点阵扫描实战你有没有在地铁站、公交站或者工厂车间里,看到过那种滚动显示文字的红色LED屏幕?它们不声不响,却把信息传递得清清楚楚。这些看似简单的设备背后,其实藏着一…

GitHub Projects项目管理:跟踪Miniconda-Python3.11开发进度

GitHub Projects项目管理:跟踪Miniconda-Python3.11开发进度 在现代AI与数据科学项目中,一个常见的困境是:实验明明在本地运行完美,却在同事的机器上频频报错。这种“在我这儿能跑”的问题,根源往往不是代码缺陷&#…

零基础学习Proteus+单片机仿真系统搭建

从零开始搭建单片机仿真系统:Proteus Keil 实战入门你是否曾因为没有开发板、买不起元器件,或者接错线烧了芯片而放弃动手实践?你是否觉得单片机编程太抽象,写完代码却不知道“它到底跑没跑”?别担心——一台电脑&…

HTML动态加载PyTorch训练进度条的前端实现方法

HTML动态加载PyTorch训练进度条的前端实现方法 在深度学习项目中,模型训练往往需要数小时甚至数天时间。你有没有过这样的经历:盯着终端里不断滚动的日志,却无法判断“还剩多久”?或者远程服务器上的实验跑着跑着就断开了连接&…