Token导航 LogoToken导航TokenDH.com
novasonicmcp (Statnativ) logo
音视频未说明官方级别未说明来源级核验

novasonicmcp (Statnativ)

MCP Server

基于WebSocket的双向音频流应用,集成Amazon Nova Sonic模型实现实时语音对话,支持多语言界面和多种AI语音角色。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
语音识别实时通信TypeScriptWebSocket

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

statnativ

提供方

statnativ

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

亚马逊Nova Sonic和MCP

该项目实现了一个基于WebSocket的双向音频流应用程序,该应用程序与Amazon Nova Sonic模型集成,用于实时语音对话。该应用程序通过现代web界面实现自然的对话交互,同时利用亚马逊强大的Nova Sonic模型来处理和生成响应。

英语| 中文

项目概述

Amazon Nova Sonic是AWS Bedrock提供的高级语音模型,能够处理自然的人声输入并生成高质量的语音响应。本项目演示了如何构建一个完整的应用系统,包括:

  • 双向实时音频流:支持连续的语音输入和输出,以获得自然的对话体验
  • 多语言支持:内置中英文双语界面,可轻松切换
  • 多种语音选项:支持各种AI语音角色(蒂芙尼、马修、艾米等)
  • 工具集成系统:通过MCP(模型上下文协议)支持扩展功能
  • WebSocket实时通信:确保低延迟音频传输和处理
  • 响应式web界面:适应不同设备的现代用户界面
  • 音频可视化:实时音频波形显示,增强用户体验
  • CLI模式支持:能够通过命令行使用预先录制的音频进行交互

该系统由一个处理双向流媒体和AWS Bedrock集成的服务器以及一个管理音频流和用户交互的现代web客户端组成。它支持实时音频流,与Amazon Nova Sonic模型集成,双向通信处理,以及具有聊天历史管理功能的响应式web界面。

使用说明

系统要求

  • Node.js(v18.0.0或更高版本)
  • 启用了Bedrock访问的AWS帐户
  • AWS CLI配置了适当的凭据
  • 支持WebAudio API的现代浏览器
  • 用于音频捕获和播放的麦克风和扬声器

依赖项

该项目使用以下主要依赖项:

{
  "dependencies": {
    "@aws-sdk/client-bedrock-runtime": "^3.787.0",
    "@aws-sdk/credential-providers": "^3.787.0",
    "@modelcontextprotocol/sdk": "^1.9.0",
    "@smithy/node-http-handler": "^4.0.4",
    "@smithy/types": "^4.2.0",
    "axios": "^1.8.4",
    "cors": "^2.8.5",
    "express": "^4.18.0",
    "rxjs": "^7.8.2",
    "socket.io": "^4.8.1"
  }
}

安装步骤

  1. 克隆存储库:
git clone 
cd aws-nova-sonic-mcp
  1. 安装依赖项:
npm install
  1. 配置AWS凭据:
# Configure AWS CLI with your credentials
aws configure --profile default
  1. 构建TypeScript代码:
npm run build

快速开始

  1. 启动服务器:
npm start
  1. 在浏览器中打开:
http://localhost:3000
  1. 在提示时授予麦克风权限。
  1. 单击通话按钮开始对话。

Application Interface

加载应用程序后,您将看到如上所示的界面。界面分为以下主要部分:

  • 顶部状态栏:显示连接状态和语音角色选择器
  • 中心互动区:大型蓝色圆形音频可视化显示区
  • 底部控制栏:麦克风控制、通话控制和文本显示按钮

配置选项

系统提示

您可以通过界面上的配置按钮自定义系统提示。系统提供多个预设模板,您还可以编写自定义提示。

// Custom system prompt example
const SYSTEM_PROMPT =
  "You are an assistant. The user and you will have a spoken conversation...";
socket.emit("systemPrompt", SYSTEM_PROMPT);

语音配置

支持多个AI语音角色,可以从用户头像下拉菜单中选择:

// Voice configuration example
socket.emit("voiceConfig", { voiceId: "tiffany" });

语言设置

支持中英文界面切换:

// Language setting options
const currentLanguage = "en"; // English, can be set to "zh" for Chinese
updateUITexts(); // Update interface text

MCP服务器配置

通过配置MCP服务器 mcp_config.json 文件:

{
  "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": []
    }
  }
}

命令行界面(CLI)模式

您可以使用CLI模式处理预先录制的音频文件:

# Run in CLI mode
npm run cli -- --input=/path/to/audio.wav

故障排除

  1. 麦克风访问问题
  • 问题:浏览器显示“麦克风权限被拒绝”
  • 解决方案:
  // Check microphone permissions
  const permissions = await navigator.permissions.query({ name: "microphone" });
  if (permissions.state === "denied") {
    console.error("Microphone access permission required");
    // Display instructions to guide users to enable permissions
  }
  1. 音频播放问题
  • 问题:无音频输出
  • 解决方案:
  // Verify if AudioContext is initialized
  if (audioContext.state === "suspended") {
    await audioContext.resume();
  }

  // Check audio player
  if (!audioPlayer.initialized) {
    await audioPlayer.start();
  }
  1. 连接问题
  • 检查服务器日志
  • 验证AWS凭据配置
  • 验证WebSocket连接:
  socket.on("connect_error", (error) => {
    console.error("Connection failed:", error);
  });
  1. 会话超时问题
  • 问题:会话在一段时间不活动后断开连接
  • 解决方案:系统具有5分钟的自动会话清理功能,可以在 server.ts

客户端音频处理

  • 使用WebAudio API捕获和处理音频
  • 16kHz采样率,单声道PCM格式
  • 实时音频可视化显示
  • 音频中断(Barge in)支持,允许用户随时中断AI响应

服务器端音频处理

  • 使用HTTP/2流媒体进行高效通信
  • 支持多个会话的并发处理
  • 自动会话清理机制,防止资源泄漏

基础设施

该应用程序在Node.js服务器上运行,具有以下关键组件:

  • Express.js服务器处理WebSocket连接和HTTP请求
  • 插座。IO用于实时通信
  • 用于语音转语音模型处理的Nova Sonic客户端
  • 用于扩展功能的MCP工具集成系统

Web界面功能

该应用程序提供了一个具有以下功能的现代web界面:

主界面

Main Interface

主界面包含以下关键元素:

  • 连接状态指示器:左上角显示当前连接状态,如“已连接到服务器”或错误消息
  • 语音角色选择:顶部中央下拉菜单,用于选择不同的AI语音角色
  • 设置按钮:打开配置面板的右上齿轮图标
  • 音频可视化:中央蓝色圆形区域显示实时音频波形和语音活动
  • 控制按钮:

- 左下麦克风按钮:控制麦克风打开/关闭 - 中心呼叫按钮:开始/结束对话(红色表示正在进行对话) - 右下文本按钮:切换文本对话内容的显示/隐藏

对话界面

  • 实时显示对话历史
  • 支持显示/隐藏文本对话内容
  • 显示用户和助手语音活动的音频可视化
  • 多语言用户界面支持(英语和中文)

配置面板

Configuration Panel - Prompts Configuration Panel - Language Configuration Panel - MCP Servers

配置面板包含三个主要选项卡:

  1. 提示选项卡

- 提供系统提示模板选择下拉菜单 - 显示当前系统提示文本内容 - 支持自定义提示编辑

  1. 语言选项卡

- 提供界面语言选择(支持英文和中文) - 简单直观的语言切换界面

  1. MCP服务器选项卡

- 显示所有已配置的MCP服务器 - 包括服务器URL、命令、参数和启用状态 - 显示每个服务器提供的可用工具的数量 - 可以展开以查看详细的工具信息

语音角色选择

Voice Personas

  • 支持多种AI语音角色选项:

- 蒂芙尼(女)-默认声音,自然友好的语调 - 马修(男)-平静专业的男声 - Amy(女)-清晰活泼的女声

  • 每个语音角色都有一个表示性别的图标
  • 用户可以随时切换语音,更改会立即应用于下一个AI响应

安全考虑

  • 所有AWS凭据都应得到适当保护,不得直接嵌入代码中
  • WebSocket连接配置了CORS保护
  • API安全访问可以通过令牌机制实现
  • 考虑在生产环境中启用HTTPS
  • MCP工具的执行需要适当的安全限制

贡献指南

欢迎为该项目捐款:

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据ISC许可证获得许可-有关详细信息,请参阅许可证文件。

相关资源

目录标签

目录标签

语音识别实时通信TypeScriptWebSocket本地部署多语言支持AWS集成

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP