自然对话纵享丝滑!Nova Sonic搭MCP构建语音交互应用

随着人工智能技术的飞速发展,自然语言处理和语音交互技术正在深刻改变人机交互的方式。语音交互正从简单的“机械应答”向更自然的“类人对话”演进。

传统的语音系统通常采用模块化架构,将语音处理流程割裂为ASR(自动语音识别)、NLP(自然语言处理)和TTS(文本转语音)等独立模块,这种管道式处理方法存在信息衰减、响应延迟和情感缺失等核心痛点。

因此,如何实现自然的语音交互与多工具协同成为技术突破的关键。Amazon Nova Sonic通过将语音理解和生成统一到单一模型中,提供了一种简化的解决方案,用于创建自然、类人的语音交互,与需要编排多个模型的传统方法不同。

本文将深入探讨Amazon Nova Sonic基础模型与MCP(Model Context Protocol,模型上下文协议)的结合,介绍基于Amazon Nova Sonic和MCP构建实时语音交互应用的技术实践,涵盖技术原理、实际开发部署等,为开发者提供全面的技术指南。

Amazon Nova Sonic

模型应用场景与行业价值

Amazon Nova Sonic模型凭借其低延迟、自然对话流和工具调用能力,适用于广泛的应用场景。

车载智能座舱

Amazon Nova Sonic模型凭借其在自然度、实时性、鲁棒性、上下文感知和工具调用等方面的优势,为构建新一代智能座舱提供了强大的技术支撑,使得车载语音助手不再是简单的指令执行工具,而是能够与用户进行自然、高效、个性化交互的智能伙伴,极大地提升了驾驶的安全性和乐趣。

通过与MCP等工具协议的结合,端到端语音模型可以直接解析用户的语音请求,并触发相应的车辆控制API或第三方服务调用(如调节空调、播放音乐、发送消息、查询附近餐厅等)。这使得语音成为控制整个智能座舱生态的中心枢纽。

企业客服与电销自动化

在客户服务领域,Amazon Nova Sonic可自动处理咨询、退货、订单查询等高频需求,支持与CRM系统集成实时调取用户数据。例如,电信行业AI助手能根据用户语音情绪自动升级服务优先级,并在对话中完成套餐变更操作。

教育与语言学习

作为智能语言教练,Amazon Nova Sonic模型可以提供实时发音纠正与场景化对话练习。例如,Education First(EF)利用其分析非母语学习者的口音偏差,并通过动态调整语速和重复关键短语辅助学习。

医疗与健康管理

支持医生通过语音快速录入病历,或为患者提供症状自检指导。在远程问诊中,模型可识别患者咳嗽声等生理信号,结合电子健康档案生成初步诊断建议。

关键技术概念介绍

Amazon Nova Sonic

语音交互的颠覆性模型

Amazon Nova Sonic通过单一模型架构实现语音理解与生成的端到端处理,解决了传统多模型拼接的延迟与信息丢失问题。其核心优势包括以下方面。

1.端到端一体化模型

Amazon Nova Sonic摒弃传统级联式语音系统的模块化设计,将语音输入到输出的全流程统一在单一神经网络中完成。

这种设计消除了不同模块间的信息割裂,保留对话中的声学语境(如语气、节奏、停顿),显著提升交互连贯性。例如,用户说话时的犹豫或打断会被实时解析并调整响应策略,而非机械式等待静音间隙。

2.实时双向流式交互

通过Amazon Bedrock提供的双向流式API(InvokeModelWithBidirectionalStream),模型支持用户与AI同时进行语音输入输出,平均响应时间仅1.09秒,且支持用户中途打断对话而不丢失上下文。技术实现上,采用5:15的文本——语音标记混合生成比例,确保语义连贯性与实时性平衡。

3.多语言与噪声鲁棒性

支持英语(美式、英式)多语言交互,在多语言LibriSpeech基准测试中平均词错误率(WER)低至4.2%。模型能识别主说话人并过滤背景噪声,适用于工厂、户外等复杂场景。

4.情感感知与动态调节

模型可解析用户语音中的情绪(如兴奋、愤怒、担忧),并动态调整回应风格。例如,当客服对话中用户语气转为焦虑时,Amazon Nova Sonic会降低语速、增加安抚性词汇,同时触发企业数据库查询相关解决方案。

5.上下文感知能力

32K token的滚动窗口支持长达8分钟的连续对话,可识别语气、停顿甚至背景噪音。

6.原生工具调用(Tool-Use)

直接解析语音请求并触发API调用(如航班预订、数据查询),通过工具结果反馈优化响应逻辑。

MCP:实时语音交互中的大模型

与Agent工具标准化连接

MCP作为开放协议,为端到端语音模型或者相关Agent提供了工具发现、安全调用与数据融合的标准化框架。在实时语音对话场景下,其价值更为突出:

  • 虚拟化工具网关:通过MCP Gateway统一管理分散的API服务,解决工具碎片化问题。例如在用户询问订单状态时,可以实时调用CRM系统、物流接口,确保对话的即时性和准确性。

  • 动态上下文注入:在语音交互中自动关联企业数据,通过RAG增强生成结果的事实准确性。这对speech-to-speech模型尤为重要,因为用户在实时对话中需要准确、及时的信息响应,而不是模型生成的模糊答复。

  • 实时性能优化:MCP的标准化调用机制能够显著降低工具调用延迟,这在实时语音对话中至关重要,可以保持对话的自然流畅性,避免因等待外部数据而产生的停顿。

方案介绍

本节将详细介绍基于Amazon Nova Sonic和MCP的语音交互方案实现,方案实现了双向音频流、通过MCP的工具集成以及响应式Web界面。方案实时音频对话系统的总体架构分为前端和后端两大部分,采用WebSocket实现实时通信。

该方案基于以下主要技术构建:

  • 运行环境:Node.js(v18.0.0+)with TypeScript

  • Web框架:Node.js用于HTTP/WebSocket服务器

  • 实时通信:IO用于双向WebSocket连接

  • 音频处理:用于基于浏览器的音频捕获/播放的WebAudio API

  • AI集成:适用于Amazon Bedrock Runtime客户端的亚马逊云科技开发工具包

  • 工具集成:MCP SDK(@modelcontextprotocol/sdk)

具有以下关键组件:

  • 处理WebSocket连接并与Amazon Bedrock集成的Node.js/Express服务器。

  • 用于实时音频可视化和交互的现代Web界面。

  • 用于自然对话流程的双向音频流。

  • 支持中断检测和即时处理。

  • 通过模型MCP与外部工具集成。

  • 支持多种语音角色和多语言界面。

技术架构

本方案实现了一个基于WebSocket的双向音频流应用,与Amazon Nova Sonic模型集成,用于实时语音转语音对话。系统采用现代Web技术栈构建,支持双向实时音频流、多语言界面以及动态工具调用。

以下是基于您提供的内容生成的架构图,展示了一个使用Amazon Nova Sonic模型的语音交互系统。

上图系统架构展示了一个完整的语音交互流程:

客户端:

  • 用户通过麦克风提供语音输入。

  • 浏览器使用WebSocket技术处理实时通信。

  • 系统将响应转换为音频并通过扬声器输出。

服务器:

  • 使用Express框架构建的后端服务。

  • 集成Socket.IO实现双向实时通信。

大模型服务:

  • 利用Amazon Nova Sonic模型进行语音处理。

  • 负责语音识别、理解和生成响应。

  • 负责处理用户中断及响应。

  • 负责对接MCP tools进行工具调用。

方案架构实现

音频处理

音频处理管道通过基于WebSocket的流式处理架构实现与AI的双向实时语音转语音对话,主要由四个主要阶段组成:

  • Audio Capture:客户端麦克风输入和预处理。

  • 实时流式处理:基于WebSocket的双向音频传输

  • 服务器处理:Amazon Nova Sonic语音转语音模型处理

  • Audio Playback:具有可视化功能的客户端缓冲音频输出

用户的语音输入经由浏览器WebSocket发送到服务器,服务器与Amazon Nova Sonic模型交互后,将结果返回给浏览器,最终转换为音频输出给用户。这种架构支持实时的语音对话体验。系统实现了一个完整的音频处理管道,调用序列如下图所示。

1.音频捕获:浏览器以16kHz采样率从用户麦克风捕获音频。

2.音频处理:对音频进行处理、分析和编码以便传输。

3.WebSocket传输:音频数据实时流式传输到服务器。

4.Amazon Nova Sonic处理:服务器通过Amazon Bedrock将音频转发到Amazon Nova Sonic。

5.响应生成:Amazon Nova Sonic处理输入并生成响应。

6.工具集成:如果需要,通过MCP框架调用工具。

7.音频播放:响应流回客户端并播放给用户。

接收和处理Tool事件

Amazon Nova Sonic可以支持Function Call具备调用外部工具的能力,首先定义函数描述Schema,将用户输入和函数描述一起输入调用LLM,解析LLM的输出,如果有输出函数名和参数则执行该函数,再将函数结果反馈给LLM,实现下一轮调用,直至输出最终结果。

在整个对话过程中,如果用户输入与ToolConfiguration中的工具规格之一匹配,Amazon Nova Sonic将触发ToolUse事件。

例如,如果用户问“今天天气怎么样?”,如下图所示,在收到用户ASR(脚本)事件后,Amazon Nova Sonic将发送一个ToolUse事件,其中包含配置中指定的toolName getWeatherTool。

Amazon Nova Sonic与MCP交互

Amazon Nova Sonic要实现MCP这种方式的工具调用,首先需要将函数或工具的描述信息schema输入给LLM,只不过Function Call是在本地生成函数描述的,而MCP则是远程从MCP Server中自动拉取的工具描述,远程MCP Server端有哪些工具的描述,是基于Server端工具在开发时用注解的方式描述函数名、用途和参数信息来自动生成的。

和Function Call机制一样,Sonic识别需要调用哪个MCP工具,并将要调用的工具名、参数以.json格式结构化文本输出,然后是由LLM所在的Host去调用。

与Amazon Bedrock上其他Amazon Nova以及Claude模型类似,可以在调用模型推理时,传递tools configure配置信息,从而触发模型function Calling,与第三方系统或者工具集成。

在与Amazon Nova Sonic启动新会话时,您可以在发送到Sonic PromptStart的第二个事件中提供Tool配置,该Tool配置是通过MCP Client的list Tools等SDK,从MCP Server端获取的tools工具schema,包含调用stdio endpoint command path/arguments,或者Streamable Http endpoint的base_url、headers等schema信息。

Amazon Nova Sonic模型tools参数获取该信息后,即可Amazon Bedrock上其他LLM一样进行function calling。

  • Amazon Nova Sonic模型:模型能够识别并发起工具调用事件。

  • 双向流客户端:接收模型的工具调用事件,并负责与工具处理器进行通信。

  • 工具处理器(ToolHandler):负责分发和处理工具请求,是系统的中央协调器。它可以:

  • 调用内置工具

  • 将请求转发给MCP服务管理器

  • 内置工具:系统自带的基础工具,如日期查询、天气查询等,可能需要调用外部API获取数据。

  • MCP服务管理器:管理和协调多个MCP服务器,负责将请求路由到适当的服务器并收集结果。

  • MCP服务器:提供专门的功能服务,如搜索工具(服务器1)和文件处理(服务器2)等。

核心组件和调用流程

MCP集成由三个主要组件组成,它们协同工作,为AI提供工具功能:

  • McpManager:管理MCP服务器进程的生命周期。

  • ToolHandler:编排工具执行并管理已注册的工具。

  • McpConfigLoader:加载和验证服务器配置。

工具处理器(ToolHandler)

ToolHandler充当工具注册和执行的中央业务流程协调程序。它维护来自所有连接的MCP服务器的可用工具的注册表负责:

  • 注册MCP工具

  • 处理工具调用请求

  • 执行工具逻辑

  • 返回结果

// 工具处理流程public async processToolUse(toolName: string, toolUseContent: object): Promise<Object> {  // 1. 检查是否是MCP工具  if (this.mcpTools.has(toolName)) {    const toolInfo = this.mcpTools.get(toolName);    // 2. 调用对应工具的处理函数    return await toolInfo.handler(toolUseContent);  }
  // 3. 处理内置工具  switch (tool) {    case"getdateandtimetool":      returnthis.getDateAndTime();    case"getweathertool":      // 解析参数并调用天气API      returnthis.fetchWeatherData(parsedContent.latitude, parsedContent.longitude);    default:      thrownew Error(`不支持的工具 ${tool}`);  }}

左右滑动查看完整示意

MCP管理器(Mcp Manager)

MCP Manager处理MCP服务器从初始化到清理的整个生命周期负责:

  • 加载MCP配置

  • 连接MCP服务器

  • 注册服务器提供的工具

  • 调度工具调用

调度工具调用// 连接MCP服务器并注册工具async connectToServer(serverName: string, config: McpServerConfig): Promise<McpTool[]> {  // 1. 创建客户端  const client = new Client({...});
  // 2. 创建传输层  const transport = new StdioClientTransport({...});
  // 3. 连接服务器  await client.connect(transport);
  // 4. 获取工具列表  const toolsResult = await client.listTools();
  // 5. 注册工具到ToolHandler  this.registerServerTools(serverName, serverTools, config.autoApprove || []);}

左右滑动查看完整示意

MCP Tool调用流程

工具调用的完整流程如下。

配置加载:

  • McpConfigLoader从配置文件加载MCP服务器配置。

服务器连接:

  • McpManager连接到配置的MCP服务器。

  • 获取服务器提供的工具列表。

工具注册:

  • 将工具注册到ToolHandler。

  • 为每个工具创建处理函数。

会话初始化:

  • 创建一个会话并设置工具配置。

  • 在createPromptStartEvent中包含可用工具信息。

工具调用:

  • AI模型发送toolUse事件。

  • 客户端接收并分发到事件处理器。

  • handleToolUse记录工具调用信息。

  • handleToolEnd触发工具执行。

工具执行:

  • toolHandler.processToolUse调用对应工具。

  • 内置工具直接执行内部逻辑。

  • MCP工具通过对应服务器调用。

结果返回:

  • 获取工具执行结果。

  • 通过createToolResultEvents创建结果事件。

  • 将结果发送回流。

以下是本方案获取MCP Server信息及加载tools的代码示例。

/**   * 初始化所有启用的 MCP 服务器   */  async initializeServers(): Promise<void> {    const servers = Object.entries(this.config.mcpServers);    console.log(`发现 ${servers.length} 个 MCP 服务器配置`);    await Promise.all(      servers.map(async ([serverName, serverConfig]) => {        if (serverConfig.disabled !== true) {          try {            await this.connectToServer(serverName, serverConfig);          } catch (error) {            console.error(`连接到 MCP 服务器 ${serverName} 失败:`, error);          }        } else {          console.log(`MCP 服务器 ${serverName} 已禁用,跳过连接`);        }      })    );  }  /**   * 连接到指定的 MCP 服务器   */  async connectToServer(    serverName: string,    config: McpServerConfig  ): Promise<McpTool[]> {    console.log(`正在连接 MCP 服务器: ${serverName}`);    try {      // 创建客户端      const client = new Client({        name: `nova-sonic-mcp-client-${serverName}`,        version: "1.0.0",        capabilities: {          prompts: {},          resources: {},          tools: {},        },      });      let transport;      // 根据 command 类型选择不同的 transport      if (config.command === "restful") {        // 使用 StreamableHTTPClientTransport        if (!config.baseUrl) {          thrownew Error("使用 restful 模式时必须提供 baseUrl");        }        transport = new StreamableHTTPClientTransport({          baseUrl: config.baseUrl,          headers: config.headers || {}, // 可选的 HTTP 头          fetch: globalThis.fetch, // 使用全局 fetch        });      } else {        // 使用原有的 StdioClientTransport        let command = config.command;        let args = [...config.args];        if (config.command === "node") {          command = process.execPath;        }        transport = new StdioClientTransport({          command: command,          args: args,          env: {            ...getDefaultEnvironment(),            ...config.env,          },          stderr: "pipe",        });        transport.stderr?.on("data", (data) =>          console.info(`[MCP] Stdio stderrfor server: `, data.toString())        );      }      // 连接到服务器      await client.connect(transport);      // 保存客户端和传输      this.clients.set(serverName, client);      this.transports.set(serverName, transport);      // 获取工具列表      const toolsResult = await client.listTools();      const serverTools = toolsResult.tools.map((tool) => ({        name: tool.name,        description: tool.description,        inputSchema: tool.inputSchema,        serverName: serverName,      }));      // 保存工具列表      this.tools.set(serverName, serverTools);      // 注册工具到 ToolHandler      this.registerServerTools(        serverName,        serverTools,        config.autoApprove || []      );      console.log(        `已连接到 MCP 服务器 ${serverName},可用工具:`,        serverTools.map(({ name }) => name).join(", ")      );      return serverTools;    } catch (error) {      console.error(`连接到 MCP 服务器 ${serverName} 失败:`, error);      throw error;    }  }  /**   * 注册服务器工具到 ToolHandler   */  privateregisterServerTools(    serverName: string,    tools: McpTool[],    autoApproveList: string[]  ): void {    tools.forEach((tool) => {      // 修改: 默认所有工具都是自动批准的,不再根据 autoApproveList 判断      const isAutoApproved = true;      this.toolHandler.registerMcpTool(        tool.name,        this.callMcpTool.bind(this, serverName, tool.name),        serverName,        tool.description,        isAutoApproved      );    });  }

左右滑动查看完整示意

以下是toolConfiguration部分的示例JSON,其中包括3个MCP Server的示例配置,其中mcp-playwright和server-filesystem是stdio的MCP Server,searchWebsit_McpHttpServer是Streamable Http的MCP Server。

{  "mcpServers": {    "github.com/executeautomation/mcp-playwright": {      "disabled": false,      "command": "npx",      "args": ["-y", "@executeautomation/playwright-mcp-server"]    },    "github.com/modelcontextprotocol/servers/tree/main/src/filesystem": {      "command": "npx",      "args": [        "-y",        "@modelcontextprotocol/server-filesystem",        "/Users/tangqy/Documents/MCP/filesystem-server"      ],      "disabled": false,      "autoApprove": []    }  },  "searchWebsit_McpHttpServer":{      "transportType":"streamable_http",       "command":"restful",       "base_url":"http://ec2-35-93-77-218.us-west-2.compute.amazonaws.com:8080/message",       "headers": {      }    }}

左右滑动查看完整示意

中断处理

Amazon Nova Sonic模型可以有效的处理用户中断,在全双工模式下,用户语音输入是单独的流channel,在该channel的audio chunk处理过程中,通过回调机制/输出检测(模型还在speaking输出)/间隔阀值…etc等机制,确认是否用户中断请求,从而在处理response的另一条流channel中,输出中断标识,从而方便指示客户端处理并响应中断。

其代码示例如下:

socket.on("contentEnd", (data) => {  console.log("Content end received:", data);
  if (data.type === "TEXT") {    if (role === "USER") {      // When user's text content ends, make sure assistant thinking is shown      hideUserThinkingIndicator();      showAssistantThinkingIndicator();    } elseif (role === "ASSISTANT") {      // When assistant's text content ends, prepare for user input in next turn      hideAssistantThinkingIndicator();    }
    // Handle stop reasons    if (data.stopReason && data.stopReason.toUpperCase() === "END_TURN") {      chatHistoryManager.endTurn();    } elseif (      data.stopReason &&      data.stopReason.toUpperCase() === "INTERRUPTED"    ) {      console.log("Interrupted by user");      audioPlayer.bargeIn();    }  } elseif (data.type === "AUDIO") {    // When audio content ends, we may need to show user thinking indicator    if (isStreaming) {      showUserThinkingIndicator();    }  }});

左右滑动查看完整示意

方案部署和使用指南

方案关键技术和依赖项

方案基于以下主要技术构建:

  • 运行时间:Node.js(v18.0.0+)with TypeScript

  • Web框架:Express.js用于HTTP/WebSocket服务器

  • 实时通信:Socket.IO用于双向WebSocket连接

  • 音频处理:用于基于浏览器的音频捕获/播放的WebAudio API

  • AI集成:适用于Amazon Bedrock Runtime客户端的亚马逊云科技开发工具包

  • 工具集成:MCP SDK(@modelcontextprotocol/sdk)

主要依赖项如下表格所示。

安装步骤

部署Amazon Nova Sonic实时语音应用需要以下步骤:

先决条件:

  • Node.js(v18.0.0或更高版本)。

  • 亚马逊云科技账户,并启用Amazon Bedrock访问权限。

  • 已配置Amazon Web Services CLI和适当凭证。

  • 麦克风和扬声器设备。

1.克隆仓库。

git clone https://github.com/aws-samples/sample-nova-sonic-mcpcd sample-nova-sonic-mcp

左右滑动查看完整示意

2.安装依赖。

npm install

3.配置亚马逊云科技凭证。

aws configure --profile default

左右滑动查看完整示意

确保配置正确的区域(如`us-east-1`)和有效的访问密钥。

4.构建TypeScript代码。

npm run build

5.配置MCP服务器(可选):

编辑`mcp_config.json`文件,配置需要的MCP服务器。

{  "mcpServers": {    "github.com/tavily-ai/tavily-mcp": {      "command": "npx",      "args": ["-y", "tavily-mcp@0.1.4"],      "env": {        "TAVILY_API_KEY": "your-api-key"      },      "disabled": false,      "autoApprove": []    }  }}

左右滑动查看完整示意

6.启动应用。

npm start

左右滑动查看完整示意

7.访问界面:在浏览器中打开`http://localhost:3000`

使用指南

主界面概览:

主界面包含以下主要元素:

  • 连接状态指示器:左上角显示当前连接状态,如”已连接服务器”或错误信息。

  • 语音角色选择:顶部中央的下拉菜单,可选择不同AI语音角色。

  • 设置按钮:右上角的齿轮图标,用于打开配置面板。

  • 音频可视化:中央的蓝色圆形区域,显示实时音频波形和语音活动。

  • 控制按钮:

  • 左下角麦克风按钮:控制麦克风开启/关闭。

  • 中央通话按钮:开始/结束对话(红色表示正在对话中)。

  • 右下角文本按钮:切换显示/隐藏文本对话内容。

基本操作

开启对话:

  • 点击界面底部的电话按钮(绿色)开始对话。

  • 系统将自动初始化会话并开启麦克风。

  • 中央区域的脉动球体会根据音频活动动态变化。

语音交互:

  • 对着麦克风说话,语音将被实时处理。

  • 系统会显示语音转录和AI响应。

  • 可以自然地中断AI说话(barge-in功能)。

  • AI响应会通过扬声器播放。

结束对话:

  • 点击红色电话按钮结束当前对话。

  • 系统会自动清理资源并刷新页面。

高级功能

语音角色选择

点击顶部的用户头像打开语音选择菜单。

选择不同的语音角色(如tiffany、matthew、amy)。

新的语音设置将应用于下一次对话。

配置系统

1.提示词配置

2.MCP服务器配置:

点击右上角的设置图标打开配置面板:

  • 提示词:选择预设提示词或自定义提示词。

  • 语言:切换界面语言(中英文)。语言配置选项卡允许用户在支持的UI语言之间切换。

  • MCP服务器:查看已配置的MCP服务器和工具。

MCP设置选项卡显示已配置的MCP服务器和可用工具的状态。

服务器状态显示:

  • 每个MCP服务器的连接状态指示器。

  • 每个服务器的可用工具列表。

  • 服务器运行状况监控。

  • 配置验证结果。

查看文本对话:

  • 点击底部的文本按钮显示/隐藏对话内容。

  • 对话历史会实时更新,包括用户输入和AI响应。

  • 文本为红色表示聊天记录隐藏,绿色表示显示。

使用MCP工具

模型自动调用工具:

  • 在对话中提出需要工具帮助的问题,例如“今天天气如何?

  • 模型会调用相应工具并在响应中融合调用MCP Tool的结果。

以下是使用MCP Tool的实际场景示例:

文件处理示例(使用文件系统工具):

  • 用户语音输入:“请帮我分析项目目录中的CSV数据文件”。

  • AI声音响应:“正在处理您的文件…”(同时显示工具使用指示器)。

  • 系统在后台调用read_file工具读取文件内容

  • AI语音分析结果:“根据文件中的数据,我发现以下趋势…”

总结

本方案实现展示了如何使用Amazon Nova Sonic和WebSockets构建完整的语音对话系统。

通过遵循本文概述的架构和最佳实践,开发者可以创建利用Amazon Bedrock高级语音模型功能的自然、响应式语音界面。Amazon Nova Sonic的统一方法简化了开发过程,而双向流API实现了真正的交互式对话。

通过MCP添加工具集成,这些语音应用程序可以执行复杂任务并访问外部信息,使它们成为各种用例的强大助手。

随着语音界面的不断发展,诸如此类的解决方案将在创建更自然、更直观的用户与技术交互方式方面发挥越来越重要的作用。

资源链接

Amazon Bedrock文档:

https://docs.aws.amazon.com/bedrock/

Amazon Nova Sonic模型指南:

https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids-nova-sonic.html

WebAudio API文档:

https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Audio_API

IO文档:

https://socket.io/docs/v4/

MCP GitHub:

https://github.com/aws/model-context-protocol

Amazon Web Services SDK for JavaScript:

https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/

MCP官方SDK:

https://modelcontextprotocol.io/specification/2025-03-26/basic/transports

五折认证,一次不过,免费重考,并享受官方备考服务。加入AWS AI/ML认证挑战,考取AWS AI认证为您的未来提供动力!

本篇作者

贺杨

亚马逊云科技解决方案架构师,具备17年IT专业服务经验,工作中担任过研发、开发经理、解决方案架构师等多种角色。拥有多年外企研发和售前架构经验,在传统企业架构和中间件解决方案有深入的理解和丰富的实践经验。

唐清原

亚马逊云科技高级解决方案架构师,负责Data Analytic和人工智能与机器学习产品服务架构设计以及解决方案。拥有10多年数据领域研发及架构设计经验,在大数据BI、数据湖、推荐系统、MLOps等平台项目有丰富实战经验。

粟伟

亚马逊云科技资深解决方案架构师,专注游戏行业。开源项目爱好者,致力于云原生应用推广、落地。具有15年以上的信息技术行业专业经验,担任过高级软件工程师,系统架构师等职位。

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

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

听说,点完下面4个按钮

就不会碰到bug了!

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值