# 像素小助手项目 **Repository Path**: shen19970101/pixel-assistant-project ## Basic Information - **Project Name**: 像素小助手项目 - **Description**: 像素小助手项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-13 - **Last Updated**: 2026-05-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🤖 像素小助手 一个复古像素风格的AI小助手应用,支持文本和语音交互! ## ✨ 特性 - 🎨 **16×16像素显示** - 经典复古风格 - 💬 **对话交互** - 文本聊天,支持历史记录 - 🎭 **11种表情** - 待机、开心、思考、聆听、说话、加载、困惑、兴奋、悲伤、惊讶、喜爱 - ✨ **6种动画** - 呼吸、眨眼、说话、扫描、波浪、弹跳 - 🔍 **消息搜索** - 快速搜索历史消息 - ⚙️ **设置功能** - 自定义应用行为 - 💾 **本地存储** - 自动保存聊天历史 - 🤖 **智能回复** - 关键词识别,情感联动 - 🎤 **语音交互** - 完整的语音识别和合成 - 🎵 **音频可视化** - 聆听和说话动画 - 🌊 **悬浮窗模式** - 迷你悬浮窗,随时呼出 ⭐ New - 🎯 **快捷操作** - 拖拽移动,点击展开 ⭐ New ## 📱 界面预览 ### 主界面 ``` ┌─────────────────────────┐ │ ⚡ 像素小助手 [🔍][🎨][🌊][⚙️] │ ├─────────────────────────┤ │ │ │ ┌───────────┐ │ │ │ 像素显示 │ │ │ └───────────┘ │ │ 小助手 │ │ │ │ [对话消息列表] │ │ [时间] │ │ ┌─────────────────┐ │ │ │ 用户消息 │ │ │ └─────────────────┘ │ │ ┌───────────┐ │ │ │ AI回复 │ │ │ └───────────┘ │ │ │ ├─────────────────────────┤ │ [🔴按住] [输入框] [发送] │ └─────────────────────────┘ ``` ### 悬浮窗模式 ``` ┌─────┐ │╭───╮│ 迷你模式 ││ ││ │╰───╯│ └─────┘ ↓ 点击展开 ┌─────────────────┐ │ ┌─────────┐ │ │ │ 像素显示│ │ │ └─────────┘ │ │ 像素小助手 │ │ [对话][语音][收起]│ └─────────────────┘ ``` ## 🚀 快速开始 ### 前置要求 - Flutter 3.0+ - Dart 3.0+ ### 权限配置 #### Android (android/app/src/main/AndroidManifest.xml) ```xml ``` #### iOS (ios/Runner/Info.plist) ```xml NSSpeechRecognitionUsageDescription 需要语音识别权限来进行语音交互 NSMicrophoneUsageDescription 需要麦克风权限来进行语音输入 ``` ### 安装运行 ```bash # 1. 进入项目目录 cd pixel_assistant # 2. 安装依赖 flutter pub get # 3. 运行应用 flutter run ``` ## 📁 项目结构 ``` pixel_assistant/ ├── lib/ │ ├── main.dart ⭐ Updated │ ├── config/ │ │ └── theme_config.dart │ └── features/ │ ├── pixel_display/ │ │ ├── data/ │ │ │ ├── models/ │ │ │ │ ├── pixel_face.dart │ │ │ │ └── face_data.dart │ │ │ └── repositories/ │ │ │ └── face_repository.dart │ │ └── presentation/ │ │ ├── providers/ │ │ │ └── pixel_provider.dart │ │ ├── widgets/ │ │ │ ├── pixel_canvas.dart │ │ │ ├── pixel_animator.dart │ │ │ └── animated_pixel_display.dart │ │ └── pages/ │ │ └── face_test_page.dart │ ├── chat/ │ │ ├── data/ │ │ │ ├── models/ │ │ │ │ └── chat_message.dart │ │ │ └── repositories/ │ │ │ └── chat_repository.dart │ │ ├── domain/ │ │ │ └── services/ │ │ │ ├── ai_service.dart │ │ │ └── search_service.dart │ │ └── presentation/ │ │ ├── providers/ │ │ │ └── chat_provider.dart │ │ ├── widgets/ │ │ │ ├── message_bubble.dart │ │ │ └── message_list.dart │ │ └── pages/ │ │ ├── chat_page.dart ⭐ Updated │ │ ├── search_page.dart │ │ └── settings_page.dart │ ├── speech/ │ │ ├── domain/ │ │ │ └── services/ │ │ │ └── speech_service.dart │ │ └── presentation/ │ │ ├── providers/ │ │ │ └── speech_provider.dart │ │ ├── widgets/ │ │ │ └── speech_button.dart │ │ └── pages/ │ │ └── speech_settings_page.dart │ └── floating/ ⭐ New │ ├── domain/ │ │ └── services/ │ │ └── floating_service.dart │ └── presentation/ │ ├── providers/ │ │ └── floating_provider.dart │ ├── widgets/ │ │ └── floating_pixel.dart │ └── pages/ │ └── floating_page.dart ├── assets/ ├── test/ └── pubspec.yaml ``` ## 🎭 表情说明 | 表情 | ID | 图标 | 触发场景 | |------|----|------|---------| | 待机 | idle | 😴 | 空闲无操作时 | | 开心 | happy | 😊 | 回答完成时 | | 思考 | thinking | 🤔 | 处理请求时 | | 聆听 | listening | 🎧 | 语音输入时 | | 说话 | speaking | 🗣️ | 语音输出时 | | 加载 | loading | ⏳ | 网络请求时 | | 困惑 | confused | 😕 | 无法理解时 | | 兴奋 | excited | 🤩 | 发现好东西时 | | 悲伤 | sad | 😢 | 表达遗憾时 | | 惊讶 | surprised | 😮 | 意外发现时 | | 喜爱 | love | 😍 | 表达喜爱时 | ## ✨ 动画说明 | 动画 | 类型 | 说明 | |------|------|------| | 呼吸 | breathe | 待机时的缓慢缩放 | | 眨眼 | blink | 周期性眼睛闭合 | | 说话 | talk | 嘴巴张合动画 | | 扫描 | scan | 上下扫描线 | | 波浪 | wave | 两侧波浪起伏 | | 弹跳 | bounce | 上下弹跳 | ## 🌊 悬浮窗功能 ### 使用方式 1. **打开悬浮窗设置** - 点击AppBar的🌊图标 2. **显示悬浮窗** - 点击"显示悬浮窗"按钮 3. **拖动移动** - 按住悬浮窗可以拖动位置 4. **点击展开** - 点击悬浮窗可以展开/收起 5. **快捷操作** - 在展开界面可以快速操作 ### 展开界面功能 - **对话** - 返回主界面进行对话 - **语音** - 快速启动语音对话 - **收起** - 收起悬浮窗 ## 🎤 语音功能 ### 使用方式 1. **按住麦克风按钮** - 开始聆听 2. **释放麦克风按钮** - 停止聆听,发送消息 3. **自动语音回复** - AI会语音回复你 ### 设置选项 - **语速** - 调整语音播放速度 (0.1 - 2.0) - **音调** - 调整语音音调 (0.5 - 2.0) - **音量** - 调整语音音量 (0.0 - 1.0) ## 🎮 智能对话 ### 关键词触发 - **你好** - 问候回复 - **你是谁** - 自我介绍 - **笑话** - 讲个笑话 - **学习** - 学习相关回复 - **再见** - 告别回复 ### 情感识别 - **开心/高兴/快乐** → 开心表情 - **疑问/困惑/不懂** → 困惑表情 - **伤心/难过/失望** → 悲伤表情 - **惊讶/哇** → 惊讶表情 - **喜欢/爱** → 喜爱表情 - **很棒/厉害/兴奋** → 兴奋表情 ## 🛠️ 技术栈 - **框架**: Flutter 3.x - **语言**: Dart 3.x - **状态管理**: Provider 6.x - **本地存储**: SharedPreferences - **语音识别**: speech_to_text 6.x - **语音合成**: flutter_tts 3.x ## 📅 开发进度 - ✅ **第一阶段**: 基础框架 - 完成 - 项目结构搭建 - 像素画布组件 - 6种基础表情 - 对话界面 - Provider状态管理 - ✅ **第二阶段**: 像素动画 - 完成 - 动画控制器 - 6种动画效果 - 5种新表情 - 表情测试页面 - 流畅的表情切换 - ✅ **第三阶段**: 对话功能 - 完成 - 本地存储服务 - 智能AI服务 - 对话历史保存 - 消息搜索功能 - 设置页面 - 消息时间显示 - 情感识别联动 - ✅ **第四阶段**: 语音交互 - 完成 - 语音识别集成 - 语音合成集成 - 聆听动画 - 说话动画 - 完整语音对话流程 - 语音设置页面 - 按住说话按钮 - ✅ **第五阶段**: 悬浮窗模式 - 进行中 - 悬浮窗服务 - 迷你像素显示 - 拖拽移动功能 - 点击展开/收起 - 快捷操作界面 - 悬浮窗设置页面 - ⏳ **第六阶段**: 优化完善 - 性能优化 - 更多表情和动画 - 主题切换 - 导出APK ## 📝 说明 目前使用模拟AI,内置关键词回复和情感识别。后续可以接入真实AI后端服务。 语音功能需要设备支持语音识别和麦克风权限。 悬浮窗为应用内悬浮,真正的系统悬浮窗需要额外权限配置。 ## 🤖 使用提示 ### 文本对话 1. 在输入框输入消息 2. 点击发送按钮或按回车 3. 看到表情从思考→开心→待机的变化 ### 语音对话 1. **按住**麦克风按钮开始说话 2. 看到聆听动画和实时识别 3. **释放**麦克风按钮发送消息 4. 看到说话动画和听到语音回复 5. 开心眨眼 → 待机呼吸 ### 悬浮窗使用 1. 点击AppBar的🌊图标进入悬浮窗设置 2. 点击"显示悬浮窗"按钮 3. 在屏幕上看到迷你悬浮窗 4. 拖拽悬浮窗可以移动位置 5. 点击悬浮窗可以展开/收起 6. 在展开界面可以进行快捷操作 ### 其他功能 1. 🔍 搜索历史消息 2. 🎨 测试表情动画 3. ⚙️ 配置语音和应用选项 4. 发送包含特定关键词的消息,可以看到对应的表情反馈 ## 📄 License MIT License