基于 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 功能(用户可随时打断)
- 多轮对话上下文管理
- 温度控制: 语音调节车内温度
- 车窗控制: 开关前后左右车窗、天窗
- 车灯控制: 控制大灯、雾灯、车内灯等
- 状态查询: 实时获取车速、位置、油量、温度等信息
- 高德地图: 天气查询、路线规划、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(包含 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
- Nova Sonic (语音交互)
- Claude Sonnet 4.5 (中文翻译)
- Stability SD3.5 Large (图片生成)
用户: "Jarvis"
系统: [唤醒音效]
用户: "今天北京天气怎么样?"
系统: "北京今天晴,温度 15-25℃,空气质量良好。"
用户: "帮我规划一下从三里屯到国贸的路线"
系统: "好的,为您规划驾车路线。全程约 5.2 公里,预计需要 15 分钟..."
用户: "把温度调到 22 度"
系统: "好的,已将车内温度设置为 22 度。"
- API 密钥管理: 使用 AWS Secrets Manager
- 网络安全: 启用 HTTPS 和 WSS
- 访问控制: 实现身份验证和授权
- 数据加密: 加密敏感数据
- 日志审计: 记录所有操作日志
- CloudWatch Logs: 应用日志和错误日志
- CloudWatch Metrics: 性能指标和告警
- OpenTelemetry: 分布式追踪
- ALB 访问日志: HTTP 请求日志
- 麦克风无法访问: 检查浏览器权限设置
- WebSocket 连接失败: 检查防火墙和端口配置
- AWS 凭证错误: 验证 AWS CLI 配置
- MCP 服务器连接失败: 检查 Docker 容器状态
详细的故障排查步骤请参考 DEPLOYMENT.md
欢迎提交 Issue 和 Pull Request!
本项目采用 MIT 许可证。
注意: 本项目为演示系统,生产环境使用前请进行充分测试和安全加固。
如需部署,请参考 DEPLOYMENT.md