项目简介
py-xiaozhi 是一个使用 Python 实现的小智语音客户端,旨在通过代码学习和在没有硬件条件下体验 AI 小智的语音功能。
本仓库是基于xiaozhi-esp32移植
功能特点
-
• AI语音交互:支持语音输入与识别,实现智能人机交互,提供自然流畅的对话体验。 -
• 视觉多模态:支持图像识别和处理,提供多模态交互能力,理解图像内容。 -
• IoT 设备集成: -
• 支持智能家居设备控制,包括灯光、音量、温度传感器等 -
• 集成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
-
3. 唤醒词配置:语音唤醒相关设置 -
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
扫码加入技术交流群,备注「开发语言-城市-昵称」
(文:GitHubStore)