小智机器人
1.引言 最近有一个很火的开源项目小智机器人-xiaozhi-esp32。 类似于小度音箱和小爱音箱,你可以和小智进行语音沟通,但是小智的服务端对接了大模型(千问、DeepSeek等)。 所以它是一个智能体,可以和用户进行更丰富和有趣的对话。 2.特点 2.1 开源MIT协议,可以用于商用 2.2 支持语音唤醒 需要特定硬件 2.3 基于流式 ASR + LLM + TTS 架构的语音交互 2.4 OLED / LCD 显示屏,支持表情显示 2.5 设备端为ESP32-C3、ESP32-S3、ESP32-P4 芯片平台 价格低廉(最便宜大概50元左右,一般情况小于200元) 立创开发板 立创的这块开发板还带有摄像头,也就是说可以进行图像识别。爱动手的可以买元器件自己装,懒人可以直接在淘宝和京东上买成品。 2.6 后端也有开源实现 xinnan-tech/xiaozhi-esp32-server Python 服务器 joey-zhou/xiaozhi-esp32-server-java Java 服务器 AnimeAIChat/xiaozhi-server-go Golang 服务器 其实虾哥的版本,只开源了客户端和通讯协议,Server的实现都来自第三方 2.7 支持MCP扩展大模型能力 可以实现智能家居控制、PC桌面操作、知识搜索、邮件收发等 小智原生已经带有播放音乐、天气预报、新闻等功能 为了将MCP服务接入小智,萌叔开发了 vearne/xiaozhi-mcp-pipe,欢迎使用。 2.8 有记忆功能 参考 mem0 和 mem0-research 3. 原理&技术 3.1 原理 ESP32芯片的性能非常弱,几百MHz,<1MB的内存,因此几乎所有的功能都是在服务端实现的。 1)【Client】ESP32硬件通过麦克风采集原始音频数据,通过Websocket协议传到Server 2)【Server】对音频数据进行语音识别,转换为文字 3)【Server】使用文字与大模型进行交互,得到回答(文字),回答可能包含指令(控制与之连接的其他外围设备或IoT设备,例如智能灯泡、传感器等) 4)【Server】文字通过TTS转成音频数据,通过Websocket协议再发到ESP32硬件 5)【Client】ESP32硬件通过扬声器播放给用户 3.2 技术 以xinnan-tech/xiaozhi-esp32-server为例说明 LLM 语言模型 使用方式 支持平台 免费平台 openai 接口调用 阿里百炼、火山引擎豆包、深度求索、智谱ChatGLM、Gemini 智谱ChatGLM、Gemini ollama 接口调用 Ollama - dify 接口调用 Dify - fastgpt 接口调用 Fastgpt - coze 接口调用 Coze - 实际上,任何支持 openai 接口调用的 LLM 均可接入使用。 ...