XiaoZhi AI - 基于 Fluent Design 的现代化智能语音助手
AI 总结
XiaoZhi AI - 基于 Fluent Design 的现代化智能语音助手
前言
在人工智能快速发展的今天,语音助手已经成为我们日常生活中不可或缺的一部分。然而,大多数开源语音助手项目在用户界面设计上往往缺乏现代感,用户体验也有待提升。基于这样的背景,我决定对开源项目 py-xiaozhi 进行深度重构,打造一个既保留原有功能特性,又具备现代化界面设计的智能语音助手。
经过几天的开发和优化,XiaoZhi AI 正式诞生了。这期间由于没有版本控制,还导致过自己的所有代码被不可逆的脚本删除大量内容的乌龙,气得我……
这是一个采用 Microsoft Fluent Design 设计语言的现代化智能语音助手桌面应用程序,为用户提供优雅、直观的交互体验。
项目概览
XiaoZhi AI 不仅仅是一个简单的界面美化项目,而是对原有架构的全面重构和功能增强。项目采用了现代化的软件工程实践,遵循了严格的代码规范,并引入了多项新技术来提升用户体验。
📸 应用截图
主要界面展示
🎤 主界面
语音交互页面
⚙️ 设置界面
个性化配置
🔌 MCP服务界面
亮色主题
🌙 MCP服务界面
暗色主题
Windows 透明特效展示
✨ Acrylic 亚克力效果
☀️ Acrylic 亮色主题
现代化亚克力效果
🌙 Acrylic 暗色主题
优雅半透明视觉体验
🌟 Aero 毛玻璃效果
☀️ Aero 亮色主题
经典毛玻璃效果
🌙 Aero 暗色主题
怀旧与现代的完美结合
🎨 现代化界面设计,支持多种透明特效
采用 Fluent Design 设计语言,提供流畅动画和直观交互体验
从上面的截图可以看到,XiaoZhi AI 采用了完全现代化的界面设计,支持多种主题和透明效果。整体设计遵循 Fluent Design 原则,提供了流畅的动画效果和直观的用户交互。
✨ 主要特性
🎨 现代化界面设计
Fluent Design 语言:项目完全采用 Microsoft Fluent Design 设计语言,提供了现代化的视觉体验。通过 qfluentwidgets 库,实现了包括亚克力效果、流畅动画、响应式布局等在内的丰富视觉效果。
主题系统:支持明暗主题无缝切换,用户可以根据个人喜好和使用环境选择合适的主题。主题切换采用了平滑的过渡动画,提供了优秀的视觉连续性。
响应式布局:界面采用响应式设计,支持窗口缩放和自适应布局。无论是在小屏幕还是大屏幕上,都能提供最佳的显示效果。
智能语音交互
高精度语音识别:集成了先进的语音识别引擎,支持中文普通话的高精度识别。通过优化的音频处理算法,即使在嘈杂环境下也能保持良好的识别效果。
自然语音合成:采用了自然流畅的语音合成技术,让 AI 助手的回答更加人性化。支持多种语音风格和语速调节,满足不同用户的偏好。
唤醒词检测:支持”小智”唤醒词,用户可以通过语音唤醒助手,实现真正的免手操作体验。唤醒词检测采用了低功耗算法,确保长时间运行的稳定性。
实时对话:提供流式语音交互体验,支持连续对话和上下文理解,让人机交互更加自然流畅。
🛠️ 智能工具集成(MCP协议)
项目实现了完整的 Model Context Protocol(MCP)协议支持,提供了丰富的智能工具集成,让语音助手具备了强大的实用功能。
🎵 音乐播放功能
在线音乐搜索:集成了强大的在线音乐搜索功能,用户可以通过语音指令搜索并播放喜爱的音乐。支持歌曲名、歌手名等多种搜索方式。
完整播放控制:提供了包括播放、暂停、停止、进度控制在内的完整播放功能。界面设计简洁直观,操作便捷高效。
实时歌词显示:支持歌词同步显示,让用户在享受音乐的同时也能跟唱歌词。歌词显示采用了优雅的动画效果,提升了视觉体验。
🌤️ 天气查询服务
实时天气信息:基于用户位置提供准确的实时天气信息,包括温度、湿度、风速、天气状况等详细数据。
多地区支持:支持全球主要城市的天气查询,用户可以查询任意地区的天气情况。
天气预报:提供未来几天的天气预报信息,帮助用户合理安排出行计划。
💻 系统控制功能
应用程序管理:支持通过语音指令启动、关闭系统应用程序。内置了常用应用程序的识别和管理功能。
音量控制:可以通过语音指令调节系统音量,支持精确的音量设置和快速的静音/取消静音操作。
设备状态监控:实时监控系统状态,包括CPU使用率、内存占用、磁盘空间等关键指标。
进程管理:支持查看和管理正在运行的应用程序,可以强制关闭无响应的程序。
⏰ 时间管理工具
倒计时功能:支持设置多个倒计时器,可以为不同任务设置提醒。倒计时结束时会有声音和视觉提醒。
定时提醒:可以设置定时提醒事项,支持一次性和重复性提醒。
活动计时器管理:支持同时管理多个计时器,每个计时器都有独立的标识和状态。
📅 日程管理系统
日历事件创建:支持创建详细的日历事件,包括标题、描述、时间、地点等信息。
事件分类管理:提供多种事件分类(工作、个人、会议、提醒等),方便用户组织和管理不同类型的事件。
智能查询:支持按日期范围、分类等条件查询日历事件,快速找到所需信息。
批量操作:支持批量删除、修改日历事件,提高管理效率。
🔧 系统深度集成
系统托盘支持:应用可以最小化到系统托盘,不占用任务栏空间。托盘图标提供了快速访问常用功能的入口。
全局快捷键:支持自定义全局快捷键,用户可以在任何应用程序中快速调用语音助手功能。快捷键设置灵活,满足不同用户的使用习惯。
开机启动:提供开机自动启动选项,让语音助手始终处于待命状态,随时为用户提供服务。
设备激活管理:实现了完整的设备激活和管理流程,确保软件的正版使用和功能完整性。
🚀 快速开始
系统要求
- 操作系统: Windows 10/11 (x64)
- Python: 3.11 或更高版本
- 内存: 至少 4GB RAM
- 存储: 至少 500MB 可用空间
安装方式
方式一:下载安装包(推荐)
- 前往 Releases 页面
- 下载最新版本的安装包
- 运行安装程序,按照向导完成安装
- 启动 XiaoZhi AI 开始使用
方式二:源码运行
克隆仓库
1
2git clone https://github.com/markcxx/Xiaozhi-ai.git
cd Xiaozhi-ai创建虚拟环境
1
2conda create -n xiaozhi python=3.11
conda activate xiaozhi安装依赖
1
pip install -r requirements.txt
运行程序
1
python Xiaozhi-ai.py
📱 使用指南
首次使用
- 设备激活: 首次启动需要进行设备激活
- 权限设置: 授予麦克风和扬声器权限
- 音频配置: 选择合适的输入输出设备
- 主题选择: 根据喜好选择明暗主题
基本操作
- 语音交互: 点击麦克风按钮或使用快捷键开始对话
- 音乐播放: 说”播放音乐”或”播放[歌曲名]”来播放音乐
- 系统控制: 通过语音控制系统功能
- 设置调整: 在设置界面自定义各项参数
🏗️ 项目架构
1 | XiaoZhi-ai/ |
技术架构
技术栈选择
界面框架:采用 PyQt5 作为主要的 GUI 框架,结合 qfluentwidgets 库实现 Fluent Design 效果。这个组合既保证了跨平台兼容性,又提供了现代化的视觉体验。
语音处理:集成了多种语音引擎,包括语音识别、语音合成和唤醒词检测。通过模块化设计,可以根据需要灵活切换不同的引擎。
音频处理:采用了专业的音频处理库,支持多种音频格式和编码。实现了回声消除、噪声抑制等高级音频处理功能。
网络通信:支持 WebSocket 和 HTTP 协议,实现了与云端服务的实时通信。采用了异步编程模型,确保界面的响应性。
架构设计
项目采用了分层架构设计,主要包括以下几个层次:
- 表示层(View):负责用户界面的展示和交互,采用 MVP 模式实现界面与业务逻辑的分离
- 业务层(Service):包含核心业务逻辑,如语音处理、音乐播放、设备管理等
- 数据层(Common):提供数据访问和配置管理功能,支持本地存储和云端同步
- 组件层(Components):封装可复用的 UI 组件和工具类
扩展性设计
MCP 协议支持:项目实现了 Model Context Protocol(MCP)协议,为未来的 AI 模型集成提供了标准化的接口。这使得项目可以轻松集成不同的 AI 服务和模型。
插件系统:设计了灵活的插件架构,开发者可以通过插件的方式扩展应用功能。插件系统支持热插拔,无需重启应用即可加载新功能。
多语言支持:实现了完整的国际化和本地化框架,支持多语言界面和语音交互。目前主要支持中文,未来可以轻松扩展到其他语言。
开发历程
项目起源
最初接触到 py-xiaozhi 项目时,我被其强大的功能所吸引,但同时也注意到了界面设计上的不足。作为一个追求完美用户体验的开发者,我决定对这个项目进行深度改造,不仅要保留其核心功能,还要为其注入现代化的设计理念。
重构挑战
架构重构:原项目的代码结构相对简单,缺乏清晰的分层设计。重构过程中,我重新设计了整个项目架构,采用了现代化的软件工程实践。
界面重设计:从零开始设计了全新的用户界面,每一个控件、每一个动画都经过了精心设计和调优。这个过程耗费了大量时间,但最终的效果令人满意。
功能增强:在保留原有功能的基础上,新增了音乐播放、主题切换、系统集成等多项功能。每个新功能都经过了充分的测试和优化。
性能优化:针对语音处理、界面渲染等关键环节进行了深度优化,确保应用在各种硬件配置下都能流畅运行。
技术难点
无边框窗口实现:为了实现现代化的界面效果,项目采用了无边框窗口设计。这涉及到窗口拖拽、缩放、阴影等多个技术难点的解决。
音频处理优化:语音助手对音频处理的实时性要求很高,需要在保证音质的同时最小化延迟。通过算法优化和多线程处理,最终实现了理想的效果。
跨平台兼容:虽然目前主要支持 Windows 平台,但在设计时就考虑了跨平台兼容性,为未来扩展到其他平台奠定了基础。
部署与分发
打包方案
项目采用了 Nuitka 作为打包工具,相比传统的 PyInstaller,Nuitka 能够生成更小、更快的可执行文件。通过优化打包配置,最终生成的安装包大小控制在合理范围内。
安装体验
使用 Inno Setup 制作了专业的安装程序,提供了完整的安装向导和卸载功能。安装程序支持静默安装,方便企业用户的批量部署。
许可证策略
项目采用了双许可证策略:
- 开源许可证:源代码采用 MIT 许可证,鼓励开源社区的参与和贡献
- 商业许可证:分发的软件产品采用自定义 EULA,保护商业利益
未来规划
功能扩展
多模态交互:计划集成视觉识别功能,实现语音、文字、图像的多模态交互体验。
智能家居集成:将与主流智能家居平台进行集成,让语音助手成为智能家居的控制中心。
云端服务:开发配套的云端服务,提供数据同步、远程控制等高级功能。
平台扩展
移动端应用:计划开发配套的移动端应用,实现跨设备的无缝体验。
Web 版本:考虑开发 Web 版本,让用户可以在浏览器中使用语音助手功能。
Linux/macOS 支持:逐步完善对 Linux 和 macOS 平台的支持,实现真正的跨平台兼容。
开源贡献
社区参与
项目已在 GitHub 开源,欢迎开发者参与贡献。无论是功能建议、Bug 报告还是代码贡献,都将得到认真对待和及时回应。
技术分享
在开发过程中积累的技术经验,我会通过博客、技术文章等形式与社区分享。希望能够帮助更多开发者解决类似的技术问题。
开发文档
项目提供了完整的开发文档,包括架构设计、API 文档、部署指南等。这些文档将帮助新的贡献者快速上手项目开发。
写在最后
XiaoZhi AI 项目的开发是一个充满挑战但又非常有意义的过程。通过这个项目,我不仅提升了自己的技术能力,也为开源社区贡献了一个实用的工具。
现代化的用户界面设计不仅仅是为了美观,更重要的是提升用户体验。通过采用 Fluent Design 设计语言,XiaoZhi AI 为用户提供了直观、高效的交互体验,让人工智能技术真正服务于日常生活。
项目的成功离不开开源社区的支持,特别是 py-xiaozhi 原项目的贡献者们。在此向所有为开源事业做出贡献的开发者们致敬!
如果你对这个项目感兴趣,欢迎访问 GitHub 仓库 了解更多详情,也欢迎提出宝贵的意见和建议。让我们一起为打造更好的人工智能应用而努力!
项目链接:https://github.com/markcxx/Xiaozhi-ai
原项目链接:https://github.com/huangjunsen0406/py-xiaozhi
技术博客:https://www.markqq.com
联系邮箱:2811016860@qq.com