项目简介
py-xiaozhi 是一个使用 Python 实现的小智语音客户端,旨在通过代码学习和在没有硬件条件下体验 AI 小智的语音功能。
本仓库是基于xiaozhi-esp32移植

功能特点
- • AI语音交互:支持语音输入与识别,实现智能人机交互,提供自然流畅的对话体验。
- • 视觉多模态:支持图像识别和处理,提供多模态交互能力,理解图像内容。
- • 支持智能家居设备控制,包括灯光、音量、温度传感器等
- • 集成Home Assistant智能家居平台,控制灯具、开关、数值控制器和按钮设备
- • 联网音乐播放:基于pygame实现的高性能音乐播放器,支持播放/暂停/停止、进度控制、歌词显示和本地缓存,提供更稳定的音乐播放体验。
- • 语音唤醒:支持唤醒词激活交互,免去手动操作的烦恼(默认关闭需要手动开启)。
- • 自动对话模式:实现连续对话体验,提升用户交互流畅度。
- • 图形化界面:提供直观易用的 GUI,支持小智表情与文本显示,增强视觉体验。
- • 命令行模式:支持 CLI 运行,适用于嵌入式设备或无 GUI 环境。
- • 跨平台支持:兼容 Windows 10+、macOS 10.15+ 和 Linux 系统,随时随地使用。
- • 音量控制:支持音量调节,适应不同环境需求,统一声音控制接口。
- • 会话管理:有效管理多轮对话,保持交互的连续性。
- • 加密音频传输:支持 WSS 协议,保障音频数据的安全性,防止信息泄露。
- • 自动验证码处理:首次使用时,程序自动复制验证码并打开浏览器,简化用户操作。
- • 自动获取 MAC 地址:避免 MAC 地址冲突,提高连接稳定性。
- • 代码模块化:拆分代码并封装为类,职责分明,便于二次开发。
- • 稳定性优化:修复多项问题,包括断线重连、跨平台兼容等。
系统要求
- • 3.9 >= Python版本 <= 3.12
- • 支持的操作系统:Windows 10+、macOS 10.15+、Linux
请先看这里!
- • 仔细阅读 项目文档 启动教程和文件说明都在里面了
- • main是最新代码,每次更新都需要手动重新安装一次pip依赖防止我新增依赖后你们本地没有
从零开始使用小智客户端(视频教程)
配置系统
项目使用分层配置系统,主要包括:
- 1. 基础配置:设置基本运行参数,位于
config/config.json
- 2. 设备激活:设备身份信息,存储在
config/efuse.json
- 4. 物联网设备:支持各种IoT设备的配置,包括温度传感器和Home Assistant集成
详细配置说明请参考 配置说明文档
IoT功能
py-xiaozhi提供丰富的IoT设备控制功能:
- • Home Assistant集成:通过HTTP API接入智能家居系统
支持的设备类型和使用示例请参考 IoT功能说明
状态流转图
+----------------+
| |
v |
+------+ 唤醒词/按钮 +------------+ | +------------+
| IDLE | -----------> | CONNECTING | --+-> | LISTENING |
+------+ +------------+ +------------+
^ |
| | 语音识别完成
| +------------+ v
+--------- | SPEAKING |
完成播放 +------------+
待实现功能
- • 新 GUI(Electron):提供更现代、美观的用户界面,优化交互体验。
常见问题
- • 找不到音频设备:请检查麦克风和扬声器是否正常连接和启用。
- • 唤醒词不响应:请检查
config.json
中的USE_WAKE_WORD
设置是否为true
,以及模型路径是否正确。 - • 网络连接失败:请检查网络设置和防火墙配置,确保WebSocket或MQTT通信未被阻止。
- • 打包失败:确保已安装PyInstaller (
pip install pyinstaller
),并且所有依赖项都已安装。然后重新执行python scripts/build.py
- • IoT设备不响应:检查对应设备的配置信息是否正确,如Home Assistant的URL和Token。
相关第三方开源项目
小智手机端
xiaozhi-esp32-server(开源服务端)
XiaoZhiAI_server32_Unity(Unity开发)
IntelliConnect(Aiot中间件)
open-xiaoai(小爱音响接入小智)
项目结构
├── .github # GitHub 相关配置
├── assets # 资源文件(表情动画等)
├── cache # 缓存目录(音乐等临时文件)
├── config # 配置文件目录
├── documents # 文档目录
├── hooks # PyInstaller钩子目录
├── libs # 依赖库目录
├── scripts # 实用脚本目录
├── src # 源代码目录
│ ├── audio_codecs # 音频编解码模块
│ ├── audio_processing # 音频处理模块
│ ├── constants # 常量定义
│ ├── display # 显示界面模块
│ ├── iot # IoT设备相关模块
│ │ └── things # 具体设备实现目录
│ ├── network # 网络通信模块
│ ├── protocols # 通信协议模块
│ └── utils # 工具类模块
项目地址
github.com/huangjunsen0406/py-xiaozhi
扫码加入技术交流群,备注「开发语言-城市-昵称」
合作请注明

如果你觉得这篇文章不错,别忘了点赞、在看、转发给更多需要的小伙伴哦!我们下期再见!