开源AI语音机器人小智Xiaozhi-ESP32:低成本构建个人智能助理

开源AI语音机器人小智Xiaozhi-ESP32:低成本构建个人智能助理

目录

项目概述:开源AI语音交互解决方案

核心功能:全面而实用的特性

系统架构:模块化设计

核心组件

状态管理

硬件与部署:灵活的选择方案

硬件需求

部署方式

代码解析:清晰的结构设计

工程结构

核心类设计

入口函数

使用方法:快速上手指南

环境准备

基础配置

优势对比:与传统方案的比较

应用场景:广泛的适用领域

总结:开创性的AIoT开源项目


仅需50元成本,ESP32开发板就能变身智能语音助手,GitHub星标超20k的xiaozhi-ESP32项目正掀起AI硬件DIY热潮。

如今,人工智能与物联网技术的结合让智能设备日益普及。今天介绍的Xiaozhi-ESP32是一个基于ESP32开发板的开源AI聊天机器人项目,它让你能够用低成本硬件打造个人专属的语音智能助手。

项目概述:开源AI语音交互解决方案

Xiaozhi-ESP32是一个基于ESP-IDF开发框架的开源硬件项目,旨在利用低成本硬件打造个人专属的AI聊天机器人。它通过WebSocket或UDP协议与LLM、TTS API服务连接,实现实时语音交互功能,无需在设备上运行LLM。

该项目由国内开发者"虾哥"创建,采用MIT开源协议,允许用户自由使用、修改和分发代码,只需包含原作者的版权声明和许可声明即可。这一特性使其特别适合学生、创客和开发者进行AI+IoT项目实践。

核心设计理念是通过模块化、可扩展的架构,在资源受限的嵌入式设备上实现流畅的语音交互。该方案平衡了性能与成本,让更多人能够接触并学习AI技术。

Image

核心功能:全面而实用的特性

Xiaozhi-ESP32集成了多种先进功能,使其在开源智能硬件中表现突出:

  • 语音唤醒与交互:支持离线语音唤醒,同时也可通过BOOT键实现点击和长按两种触发方式,提供灵活的交互选择
  • 多语言识别:支持国语、粤语、英语、日语、韩语五种语言的语音识别,借助SenseVoice模型实现高效准确的识别
  • AI对话与合成:集成多种大语言模型(如Qwen、DeepSeek、Doubao),支持大模型TTS(包括火山引擎或CosyVoice),实现自然流畅的语音对话
  • 显示功能:支持OLED/LCD显示屏,可实时显示信号强度、对话内容,还支持LCD显示图片表情
  • 物联网控制:内置ThingManager类管理物联网设备,可通过语音命令控制智能家居设备
  • 声纹识别:能够识别是谁在喊AI的名字,基于3D Speaker模型,提供个性化体验
  • 记忆功能:具备短期记忆能力,每轮对话后会进行自我总结,增强交互连续性
  • 网络连接:除了常规的Wi-Fi连接,还支持ML307 Cat.1 4G网络,增加使用场景灵活性

Image

系统架构:模块化设计

Xiaozhi-ESP32采用模块化架构,中央应用控制器负责协调各个子系统。该架构使系统能够与不同的硬件配置协同工作,同时保持一致的功能。

核心组件

系统由几个关键组件协同工作:

  • 应用程序控制器:管理设备状态并协调所有其他组件,是系统核心
  • 电路板抽象层:提供独立于硬件的物理组件访问,使核心应用程序无需了解组件具体实现细节即可与它们交互
  • 通信协议:通过WebSocket或MQTT处理客户端-服务器通信
  • 显示系统:管理所连接显示器上的视觉反馈
  • 音频处理:处理音频输入/输出和处理

状态管理

系统通过明确定义的状态机进行操作,控制设备响应用户交互和系统事件的行为。状态包括启动、激活、升级、空闲、连接、监听、说话和Wi-Fi配置等不同模式。

硬件与部署:灵活的选择方案

硬件需求

Xiaozhi-ESP32兼容多款ESP32开发板,以下是核心硬件要求:

  • 主控板:ESP32-S3或ESP32-C3开发板(如ESP32-WROOM或ESP32-S3)
  • 音频模块:麦克风模块用于语音输入,扬声器模块用于语音输出
  • 显示模块:可选配OLED或LCD显示屏
  • 网络模块:支持Wi-Fi或ML307 Cat.1 4G通信

面包板效果图

部署方式

项目提供两种运行方式:

  • 在线版本:接入xiaozhi.me服务器,个人用户可免费试用,适合普通用户
  • 离线版本:在本地个人电脑上搭建服务器,需要一定的技术背景,更适合开发者

代码解析:清晰的结构设计

了解项目代码结构有助于二次开发,项目主要使用C++语言实现。

工程结构

项目仓库包含多个文件和文件夹,主要结构如下:

  • **main/**:主要源码文件夹,包含应用程序核心逻辑
  • **docs/**:文档文件,包含README文档使用的图片资料和服务器websocket交互协议
  • **scripts/**:脚本文件,包含音频编码测试脚本、烧录调试脚本等
  • 配置文件:包括分区配置和SDK默认配置

核心类设计

整个工程的类图主要围绕Application、Board、ThingManager三个大类进行实现:

  • Application类:作为整个应用程序的核心管理类,负责协调和控制各个功能模块的运行
  • Board类:是一个抽象基类,定义了硬件设备的接口,为不同的硬件平台提供统一的操作方法
  • ThingManager类:作为物联网设备管理类,负责管理多个Thing对象

入口函数

整个工程的入口函数在xiaozhi-esp32/main/main.cc中,初始化默认事件循环和NVS后,通过Application::GetInstance().Start()直接启动应用。

extern "C" void app_main(void) {     // 初始化默认事件循环     ESP_ERROR_CHECK(esp_event_loop_create_default());     // 初始化 NVS flash 以存储 WiFi 配置     esp_err_t ret = nvs_flash_init();     // ... 更多初始化代码 } 

使用方法:快速上手指南

环境准备

要开始使用Xiaozhi-ESP32,需要先准备开发环境:

  1. 安装开发环境:推荐使用Arduino IDE或PlatformIO进行代码编写和烧录
  2. 配置硬件:将麦克风模块、扬声器及其他所需传感器连接到ESP32开发板上
  3. 获取源码:从GitHub仓库下载项目代码

基础配置

配置设备主要涉及以下步骤:

  1. 网络配置:设置Wi-Fi或4G网络连接参数
  2. 服务配置:配置LLM和TTS服务参数
  3. 设备注册:在管理后台注册设备并获取访问凭证

优势对比:与传统方案的比较

与商业智能助手相比,Xiaozhi-ESP32具有明显优势:

特性商业智能助手Xiaozhi-ESP32
成本

高昂

使用低成本ESP32,经济实惠

数据隐私

数据传输至云端,有隐患

本地运行,无需云端支持,隐私性更高

功能定制

功能固定,扩展困难

完全开源,可自由扩展功能

技术门槛

专业配置

入门简单,适合学习与开发

应用场景:广泛的适用领域

Xiaozhi-ESP32可应用于多种场景:

  • 智能家居控制:通过语音控制灯光、窗帘、空调等家电设备
  • 个人语音助手:提供天气查询、日程提醒、语音备忘等功能
  • 教育与实践:作为物联网和人工智能开发的优秀学习案例
  • 工业物联网:各类传感器设备返回定制化的状态报告

总结:开创性的AIoT开源项目

Xiaozhi-ESP32是一个兼具功能性和学习价值的开源项目,它降低了AI语音交互的开发门槛,让更多人能体验并学习AI技术。项目采用模块化架构设计,功能丰富且持续更新,社区活跃。

无论是智能家居控制、个人语音助手开发,还是AI+IoT技术学习,Xiaozhi-ESP32都是一个理想的选择。其开源特性也允许开发者根据自己的需求定制功能,为智能硬件开发提供了更多可能性。


GitHub项目地址:

 https://github.com/78/xiaozhi-esp32

Read more

大模型调参新姿势:基于Llama Factory的Web UI交互式微调全攻略

大模型调参新姿势:基于Llama Factory的Web UI交互式微调全攻略 作为一名长期与大模型打交道的算法工程师,你是否也厌倦了反复修改配置文件、重启训练的繁琐流程?今天我要分享的基于Llama Factory的Web UI交互式微调方案,将彻底改变你的工作方式。这个开源框架能让你通过可视化界面实时调整超参数、观察效果变化,大幅提升微调效率。目前ZEEKLOG算力平台已提供预装该工具的镜像,可快速部署验证。 为什么需要交互式微调? 传统大模型微调流程存在几个典型痛点: 1. 调试周期长:每次修改参数都需要重启训练,等待时间成本高 2. 反馈滞后:无法实时观察参数变化对模型表现的影响 3. 操作繁琐:需要频繁编辑配置文件或命令行参数 Llama Factory通过以下设计解决了这些问题: * 内置Web UI界面,所有参数可视化调整 * 支持训练过程实时监控 * 集成多种微调方法(LoRA、全参数微调等) * 兼容主流开源模型(LLaMA、Qwen、ChatGLM等) 快速部署Llama Factory环境 在具备GPU的环境中(如ZEEKLOG算

OpenREALM:无人机实时映射框架的技术深度解析

OpenREALM:无人机实时映射框架的技术深度解析

在无人机应用日益广泛的当下,精准、高效的实时映射技术成为推动行业发展的关键。传统无人机映射方案往往存在数据处理滞后、对复杂地形适应性差等问题,难以满足精准农业、应急救援等场景的实时决策需求。OpenREALM 作为一款开源的无人机实时映射框架,创新性地融合了视觉 SLAM、单目稠密重建等前沿技术,实现了从 2D 图像拼接至 3D 表面重建的多模式映射功能。 原文链接:https://arxiv.org/pdf/2009.10492 代码链接:https://github.com/laxnpander/OpenREALM 沐小含持续分享前沿算法论文,欢迎关注... 一、引言:无人机映射技术的现状与挑战 1.1 应用背景与核心需求 人类对世界的勘测需求推动了映射技术的持续发展,而无人机的兴起为空中勘测提供了全新的解决方案。空中影像已广泛应用于精准农业、城市规划、灾害风险管理等关键领域,这些应用场景不仅对数据分辨率有较高要求,更在可用性、成本和映射效率方面提出了严苛标准。传统的有人机勘测存在操作复杂、成本高昂等局限,而无人机凭借轻量化设计、自主飞行能力强等优势,

SteamVR Unity插件终极指南:从零打造沉浸式VR体验

SteamVR Unity插件终极指南:从零打造沉浸式VR体验 【免费下载链接】steamvr_unity_pluginSteamVR Unity Plugin - Documentation at: https://valvesoftware.github.io/steamvr_unity_plugin/ 项目地址: https://gitcode.com/gh_mirrors/st/steamvr_unity_plugin 想要在Unity中快速构建专业级的虚拟现实应用吗?SteamVR Unity插件为您提供了完整的解决方案!这个由Valve官方维护的强大工具集,让开发者能够轻松对接各类主流VR设备,从HTC Vive到Oculus Rift,从Windows MR到Valve Index,一套代码即可兼容所有平台。无论您是VR开发新手还是经验丰富的专业人士,本指南都将带您深入探索这个插件的核心功能和使用技巧。✨ 🚀 为什么选择SteamVR Unity插件? 跨平台兼容性优势 想象一下,您开发的VR应用能够无缝运行在市面上所有主流头显设备上,无需为每个平台单独适配