1. 项目背景与核心目标
这个项目源于山东大学软件学院的项目实训课程,我们团队的任务是开发一个基于云端智能Agent的情绪互动机器人系统。简单来说,就是要做一个能理解人类情绪并做出恰当反应的机器人,而且这个机器人的"大脑"是在云端的。
为什么选择这个方向?现在市面上的智能助手大多只能完成固定指令,比如"播放音乐"、"设置闹钟",但它们无法感知用户的情绪状态。当用户心情低落时,这些助手依然用机械化的方式回应,这显然不够人性化。我们的目标就是让机器人能"察言观色"——通过语音识别情绪,并给出有温度、有同理心的反馈。
技术栈上,我们选择了Milk-V Duo作为硬件平台。这是一款性价比很高的开发板,双核RISC-V架构,支持Linux系统,非常适合做这种需要实时交互的项目。云端部分我们采用了微服务架构,通过HTTP/WebSocket协议与硬件端通信。
提示:选择Milk-V Duo的一个重要原因是它原生支持Python和C++开发,这对学生团队来说大大降低了学习门槛。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计
2.1 整体架构拆解
整个系统分为三个主要模块:
- 硬件交互层:运行在Milk-V Duo上,负责音频采集、播放和基础控制
- 通信中间件:基于WebSocket的双向通信通道
- 云端智能服务:包括情绪识别、对话生成和决策引擎
我们特意把计算密集型的AI模型放在云端,这样硬件端只需要处理简单的信号采集和传输。这种设计有两个明显优势:
- 硬件成本大幅降低(Milk-V Duo售价不到200元)
- 模型可以随时在云端更新,无需重新烧录固件
2.2 通信协议选型
在HTTP和WebSocket之间,我们最终选择了WebSocket作为主要通信协议。虽然HTTP实现起来更简单,但它的短连接特性不适合实时交互场景。当机器人需要持续接收语音流并实时反馈时,WebSocket的全双工通信优势就体现出来了。
具体实现上,我们使用了Python的websockets库。下面是一个简化的连接示例:
python复制import asyncio
import websockets
async def audio_stream_handler(websocket):
try:
async for audio_d
