Skip to content

Repository files navigation

🚗 车载智能语音助手系统

基于 Amazon Bedrock Nova Sonic 和 AgentCore 的智能车载语音助手,支持实时语音交互、MCP 工具调用、多语言对话和车辆控制。

📋 系统概述

完整的车载智能语音助手解决方案,集成 AWS AI 服务和 MCP (Model Context Protocol) 生态系统。采用端云协同架构,本地处理音频采集和唤醒词检测,云端进行语音理解和工具调用。

核心特性

  • 端到端语音交互: 基于 Nova Sonic 的实时语音处理,支持 Barge-in(用户打断)
  • 智能工具调用: 通过 AgentCore Gateway 集成多个 MCP 服务器
  • 车载场景优化: 针对驾驶场景的优先级处理和安全设计
  • 多语言支持: 自动检测并响应中文、英语、日语、韩语等
  • 记忆管理: 基于 AgentCore Memory 的用户偏好记忆

🏗️ 系统架构

┌─────────────────────────────────────────────────────────────────────────┐
│                              端侧 (本地)                                 │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐    │
│  │ 唤醒词检测   │  │ 音频采集    │  │ FastAPI    │  │ Cloudscape  │    │
│  │ (Porcupine) │  │ WebSocket   │  │ 后端服务    │  │ Web UI      │    │
│  └─────────────┘  └─────────────┘  └─────────────┘  └─────────────┘    │
└─────────────────────────────────────────────────────────────────────────┘
                                    │
                                    ▼ WebSocket (wss://)
┌─────────────────────────────────────────────────────────────────────────┐
│                              云端 (AWS)                                  │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐    │
│  │ Nova Sonic  │  │ AgentCore   │  │ AgentCore   │  │ Lambda      │    │
│  │ 语音模型    │◄─►│ Gateway     │◄─►│ Memory      │  │ 函数        │    │
│  │ (Bedrock)   │  │ (MCP 网关)  │  │ (用户记忆)  │  │ (工具)      │    │
│  └─────────────┘  └─────────────┘  └─────────────┘  └─────────────┘    │
└─────────────────────────────────────────────────────────────────────────┘
                                    │
                                    ▼ MCP Protocol
┌─────────────────────────────────────────────────────────────────────────┐
│                           MCP 服务器 (EC2/容器)                          │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐    │
│  │ 高德地图    │  │ Tavily      │  │ 12306       │  │ Fetch       │    │
│  │ MCP Server  │  │ MCP Server  │  │ MCP Server  │  │ MCP Server  │    │
│  └─────────────┘  └─────────────┘  └─────────────┘  └─────────────┘    │
└─────────────────────────────────────────────────────────────────────────┘

🎯 核心功能

语音交互

  • 实时语音识别和合成
  • "Jarvis" 唤醒词激活
  • Barge-in 功能(用户可随时打断)
  • 多轮对话上下文管理

车辆控制

  • 温度控制: 语音调节车内温度
  • 车窗控制: 开关前后左右车窗、天窗
  • 车灯控制: 控制大灯、雾灯、车内灯等
  • 状态查询: 实时获取车速、位置、油量、温度等信息

MCP 工具集成

  • 高德地图: 天气查询、路线规划、POI 搜索、地理编码
  • Tavily 搜索: 实时网络搜索、信息提取
  • 12306 出行: 火车票查询、车次信息
  • AI 图片生成: 基于 Stability SD3.5 的图片生成(支持中文描述)
  • 股票查询: 实时股票信息查询和卡片展示

智能特性

  • 用户偏好记忆
  • 驾驶场景优先级处理
  • 多语言自动检测
  • 错误恢复和网络容错

📂 项目结构

Cockpit_AgentCore_Sonnic_Clear/
│
├── backend/                          # Python 后端服务
│   ├── main.py                       # FastAPI 应用入口
│   ├── agentcore/                    # AgentCore 集成模块
│   ├── audio/                        # 音频处理模块
│   ├── vehicle/                      # 车载场景适配
│   ├── language/                     # 多语言支持
│   ├── error_handling/               # 错误处理
│   ├── monitoring/                   # 监控可观测性
│   ├── websocket/                    # WebSocket 处理
│   └── config/                       # 配置管理
│
├── frontend/                         # Cloudscape 前端
│   ├── templates/index.html          # 主页面
│   └── static/                       # 静态资源
│       ├── js/                       # JavaScript 模块
│       └── css/                      # 样式文件
│
├── mcp-servers/                      # MCP 服务器集合
│   ├── amap/                         # 高德地图 MCP 服务器
│   ├── tavily/                       # Tavily 搜索 MCP 服务器
│   ├── 12306/                        # 12306 出行 MCP 服务器
│   ├── fetch/                        # 网络服务 MCP 服务器
│   ├── lambda-imagegeneration/       # Lambda 图片生成服务
│   ├── lambda-stock/                 # Lambda 股票查询服务
│   ├── lambda-cardgeneration/        # Lambda 卡片生成服务
│   └── docker-compose.yaml           # Docker Compose 配置
│
├── deploy/                           # 部署脚本和配置
│   ├── cloudformation-template.yaml  # CloudFormation 模板
│   ├── deploy-safe.sh                # 安全部署脚本
│   ├── deploy-webapp-to-ec2.sh       # Web 应用部署脚本
│   ├── ec2-setup.sh                  # EC2 环境设置
│   ├── gateway-setup.sh              # Gateway 设置
│   ├── ssm_system_prompt_setup.py    # System Prompt 部署
│   └── ssm_tool_config_setup.py      # 工具配置部署
│
├── config/                           # 配置文件
│   ├── config.yaml                   # 主配置
│   └── gateway-config.yaml           # Gateway 配置
│
├── data/                             # 数据文件
│   ├── preferences.json              # 用户偏好
│   └── user_preferences.json         # 用户配置
│
├── requirements.txt                  # Python 依赖
├── DEPLOYMENT.md                     # 部署指南
└── README.md                         # 本文档

🚀 快速开始

详细的部署步骤请参考 DEPLOYMENT.md

本地开发

# 1. 克隆项目
cd Cockpit_AgentCore_Sonnic_Clear

# 2. 创建虚拟环境
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

# 3. 安装依赖
pip install -r requirements.txt

# 4. 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填入必要的配置

# 5. 启动服务
python -m uvicorn backend.main:app --host 0.0.0.0 --port 9000

# 6. 访问 Web UI
open http://localhost:9000

AWS 云端部署

# 一键部署到 AWS(包含 ALB、EC2、Lambda 等)
cd deploy
./deploy-safe.sh \
  -k your-key-pair \
  --amap-key YOUR_AMAP_KEY \
  --tavily-key YOUR_TAVILY_KEY

💰 成本估算

基于 us-east-1 区域的月度成本(按需定价):

服务 配置 月度成本 (USD)
ALB 1 个 ~$16
EC2 (t3.medium) 24/7 运行 ~$30
EBS (30GB gp3) 存储 ~$2.4
Lambda (3 函数) 100K 调用/月 ~$0.2
S3 10GB 存储 ~$0.23
CloudWatch Logs 5GB/月 ~$2.5
Data Transfer 10GB/月 ~$0.9
总计 ~$49/月

🛠️ 技术栈

后端

  • Python 3.12
  • FastAPI
  • WebSocket
  • boto3 (AWS SDK)
  • PyAudio
  • Porcupine (唤醒词检测)

前端

  • Cloudscape Design System
  • Web Audio API
  • WebSocket API
  • Vanilla JavaScript

云服务

  • Amazon Bedrock (Nova Sonic)
  • AgentCore Gateway
  • AgentCore Memory
  • AWS Lambda
  • Amazon S3
  • SSM Parameter Store
  • CloudWatch

AI 模型

  • Nova Sonic (语音交互)
  • Claude Sonnet 4.5 (中文翻译)
  • Stability SD3.5 Large (图片生成)

📖 使用示例

语音交互

用户: "Jarvis"
系统: [唤醒音效]

用户: "今天北京天气怎么样?"
系统: "北京今天晴,温度 15-25℃,空气质量良好。"

用户: "帮我规划一下从三里屯到国贸的路线"
系统: "好的,为您规划驾车路线。全程约 5.2 公里,预计需要 15 分钟..."

用户: "把温度调到 22 度"
系统: "好的,已将车内温度设置为 22 度。"

🔒 安全建议

  1. API 密钥管理: 使用 AWS Secrets Manager
  2. 网络安全: 启用 HTTPS 和 WSS
  3. 访问控制: 实现身份验证和授权
  4. 数据加密: 加密敏感数据
  5. 日志审计: 记录所有操作日志

📊 监控和日志

  • CloudWatch Logs: 应用日志和错误日志
  • CloudWatch Metrics: 性能指标和告警
  • OpenTelemetry: 分布式追踪
  • ALB 访问日志: HTTP 请求日志

🔧 故障排查

常见问题

  1. 麦克风无法访问: 检查浏览器权限设置
  2. WebSocket 连接失败: 检查防火墙和端口配置
  3. AWS 凭证错误: 验证 AWS CLI 配置
  4. MCP 服务器连接失败: 检查 Docker 容器状态

详细的故障排查步骤请参考 DEPLOYMENT.md

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

本项目采用 MIT 许可证。

🙏 致谢


注意: 本项目为演示系统,生产环境使用前请进行充分测试和安全加固。

如需部署,请参考 DEPLOYMENT.md

About

基于 Amazon Bedrock Nova Sonic 与 AgentCore 的车载智能语音助手:端侧用 Porcupine 做 Jarvis 唤醒词检测与音频采集,经 WebSocket 送云端 Nova Sonic 做实时语音交互并支持 Barge-in 打断;通过 AgentCore Gateway 挂载高德地图、Tavily 搜索、12306、图片生成等 MCP 工具,AgentCore Memory 记录用户偏好,可语音控制温度、车窗与车灯。FastAPI 后端 + Cloudscape 前端,CloudFormation 部署。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages